Message ID | 20221027032505.1948351-1-zhangfei.gao@linaro.org |
---|---|
Headers | show |
Series | crypto/uadk: introduce uadk crypto driver | expand |
> 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@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. Thanks.
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@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.