[EXT] [PATCH v7 0/6] crypto/uadk: introduce uadk crypto driver
Zhangfei Gao
zhangfei.gao at linaro.org
Fri Oct 28 03:02:26 CEST 2022
On 2022/10/27 下午6:53, Akhil Goyal wrote:
>> Introduce a new crypto PMD for hardware accelerators based on UADK [1].
>>
>> UADK is a framework for user applications to access hardware accelerators.
>> UADK relies on IOMMU SVA (Shared Virtual Address) feature, which share
>> the same page table between IOMMU and MMU.
>> Thereby user application can directly use virtual address for device dma,
>> which enhances the performance as well as easy usability.
>>
>> [1] https://urldefense.proofpoint.com/v2/url?u=https-
>> 3A__github.com_Linaro_uadk&d=DwIDAg&c=nKjWec2b6R0mOyPaz7xtfQ&r=Dn
>> L7Si2wl_PRwpZ9TWey3eu68gBzn7DkPwuqhd6WNyo&m=AwapMJzvfUDL49W9f
>> mtmvIGZMarGUdjRSliBhG4tep6Uh5wN2zYrZRJ4JpbrVolg&s=MxSabEjMMkeRr0L
>> Z7c1gSmaJmJ1_dIdJIKrst98pKzk&e=
>>
>> Test:
>> sudo dpdk-test --vdev=crypto_uadk (--log-level=6)
>> RTE>>cryptodev_uadk_autotest
>> RTE>>quit
>>
>> Update in v7:
>> 05: fix key_size of SHA384 HMAC
>>
>> Update in v6:
>> Akhil helped review the v5, and address all the comments from Akhil
>> 01: add rel_notes info, update uadk.rst, put struct in header, etc.
>> 02: move struct to header
>> 04: move struct to header, remove RTE_CRYPTODEV_FF_SYM_SESSIONLESS
>> 05: fixed key_size in HMAC mode
>> 06: updated app/test/meson.build and uadk.rst in the mean time.
>>
>> Update in v5
>> Patch 1 fix the build issue when uadk is installed to specific folder
>> And update doc accordingly
>>
>> Update in v4:
>> Akril suggest dpdk use pkg-config, So
>> Enable uadk support x86 local build, and support pkg-config.
>> Use pkg-config feature for the uadk crypto pmd.
>> Add build uadk library steps in doc
>> Test on both x86 and arm.
>> x86 can build and install, but can not test since no device.
>>
>> Resend v3:
>> Rebase on next/for-main, which just merged the series
>> "cryptodev: rework session framework".
>>
>> Update in v3:
>> Split patches according to Akhil's suggestions
>> Please split the patches as below.
>> 1. introduce driver - create files with meson.build and with probe/remove
>> and device ops defined but not implemented.
>> You do not need to write empty functions.
>> Add basic documentation also which defines what the driver is.
>> You can explain the build dependency here.
>> 2. define queue structs and setup/remove APIs
>> 3. Add data path
>> 4. implement cipher op. Add capabilities and documentation of what is
>> supported in each of the patches. Add feature flags etc.
>> 5. implement auth, add capabilities and documentation
>> 6. test app changes.
>>
>> Update in v2:
>> Change uadk_supported_platform to uadk_crypto_version, which matches
>> better
>> than platform.
>> enum uadk_crypto_version {
>> UADK_CRYPTO_V2,
>> UADK_CRYPTO_V3,
>> };
>>
>> Update in v1, compared with rfc
>>
>> Suggested from Akhil Goyal <gakhil at marvell.com>
>> Only consider crypto PMD first
>> Split patch into small (individually compiled) patches.
>> Update MAINTAINERS and doc/guides/cryptodevs/features/uadk.ini
>>
>> Zhangfei Gao (6):
>> crypto/uadk: introduce uadk crypto driver
>> crypto/uadk: support basic operations
>> crypto/uadk: support enqueue/dequeue operations
>> crypto/uadk: support cipher algorithms
>> crypto/uadk: support auth algorithms
>> test/crypto: support uadk PMD
>>
>> MAINTAINERS | 6 +
>> app/test/meson.build | 1 +
>> app/test/test_cryptodev.c | 7 +
>> app/test/test_cryptodev.h | 1 +
>> doc/guides/cryptodevs/features/uadk.ini | 55 +
>> doc/guides/cryptodevs/index.rst | 1 +
>> doc/guides/cryptodevs/uadk.rst | 96 ++
>> doc/guides/rel_notes/release_22_11.rst | 6 +
>> drivers/crypto/meson.build | 1 +
>> drivers/crypto/uadk/meson.build | 30 +
>> drivers/crypto/uadk/uadk_crypto_pmd.c | 1081 +++++++++++++++++
>> drivers/crypto/uadk/uadk_crypto_pmd_private.h | 79 ++
>> drivers/crypto/uadk/version.map | 3 +
>> 13 files changed, 1367 insertions(+)
>> create mode 100644 doc/guides/cryptodevs/features/uadk.ini
>> create mode 100644 doc/guides/cryptodevs/uadk.rst
>> create mode 100644 drivers/crypto/uadk/meson.build
>> create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd.c
>> create mode 100644 drivers/crypto/uadk/uadk_crypto_pmd_private.h
>> create mode 100644 drivers/crypto/uadk/version.map
> Series Applied to dpdk-next-crypto
> Welcome to dpdk.
That's Great
Thanks for your guidance and patience.
Originally, the UADK only consider ARM usage and need cross-compile on x86.
With you guidance, now the UADK support pkg-config, and can build and
install on both ARM and X86.
Thanks Akhil.
More information about the dev
mailing list