Update doc for the new UADK crypto PMD, which relies on UADK library [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.

[1] https://github.com/Linaro/uadk

Signed-off-by: Zhangfei Gao <zhangfei....@linaro.org>
---
 MAINTAINERS                             |  6 ++
 doc/guides/cryptodevs/features/uadk.ini | 54 +++++++++++++++++
 doc/guides/cryptodevs/index.rst         |  1 +
 doc/guides/cryptodevs/uadk.rst          | 77 +++++++++++++++++++++++++
 4 files changed, 138 insertions(+)
 create mode 100644 doc/guides/cryptodevs/features/uadk.ini
 create mode 100644 doc/guides/cryptodevs/uadk.rst

diff --git a/MAINTAINERS b/MAINTAINERS
index 32ffdd1a61..f485cec2ed 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1061,6 +1061,12 @@ M: Fan Zhang <roy.fan.zh...@intel.com>
 F: drivers/crypto/scheduler/
 F: doc/guides/cryptodevs/scheduler.rst
 
+HiSilicon UADK crypto
+M: Zhangfei Gao <zhangfei....@linaro.org>
+F: drivers/crypto/uadk/
+F: doc/guides/cryptodevs/uadk.rst
+F: doc/guides/cryptodevs/features/uadk.ini
+
 Intel QuickAssist
 M: Fan Zhang <roy.fan.zh...@intel.com>
 F: drivers/crypto/qat/
diff --git a/doc/guides/cryptodevs/features/uadk.ini 
b/doc/guides/cryptodevs/features/uadk.ini
new file mode 100644
index 0000000000..1418959bd4
--- /dev/null
+++ b/doc/guides/cryptodevs/features/uadk.ini
@@ -0,0 +1,54 @@
+;
+; Supported features of the 'uadk' crypto driver.
+;
+; Refer to default.ini for the full list of available PMD features.
+;
+[Features]
+Symmetric crypto       = Y
+HW Accelerated         = Y
+
+;
+; Supported crypto algorithms of the 'uadk' crypto driver.
+;
+[Cipher]
+AES CBC (128)  = Y
+AES CBC (192)  = Y
+AES CBC (256)  = Y
+AES ECB (128)  = Y
+AES ECB (192)  = Y
+AES ECB (256)  = Y
+AES XTS (128)  = Y
+AES XTS (256)  = Y
+DES CBC        = Y
+;
+; Supported authentication algorithms of the 'uadk' crypto driver.
+;
+[Auth]
+MD5          = Y
+MD5 HMAC     = Y
+SHA1         = Y
+SHA1 HMAC    = Y
+SHA224       = Y
+SHA224 HMAC  = Y
+SHA256       = Y
+SHA256 HMAC  = Y
+SHA384       = Y
+SHA384 HMAC  = Y
+SHA512       = Y
+SHA512 HMAC  = Y
+
+;
+; Supported AEAD algorithms of the 'uadk' crypto driver.
+;
+[AEAD]
+
+;
+; Supported Asymmetric algorithms of the 'uadk' crypto driver.
+;
+[Asymmetric]
+
+;
+; Supported Operating systems of the 'uadk' crypto driver.
+;
+[OS]
+Linux = Y
diff --git a/doc/guides/cryptodevs/index.rst b/doc/guides/cryptodevs/index.rst
index 39cca6dbde..cb4ce227e9 100644
--- a/doc/guides/cryptodevs/index.rst
+++ b/doc/guides/cryptodevs/index.rst
@@ -30,5 +30,6 @@ Crypto Device Drivers
     scheduler
     snow3g
     qat
+    uadk
     virtio
     zuc
diff --git a/doc/guides/cryptodevs/uadk.rst b/doc/guides/cryptodevs/uadk.rst
new file mode 100644
index 0000000000..15633be010
--- /dev/null
+++ b/doc/guides/cryptodevs/uadk.rst
@@ -0,0 +1,77 @@
+..  SPDX-License-Identifier: BSD-3-Clause
+    Copyright 2022-2023 Huawei Technologies Co.,Ltd. All rights reserved.
+    Copyright 2022-2023 Linaro ltd.
+
+UADK Crypto Poll Mode Driver
+=======================================================
+
+UADK crypto PMD provides poll mode driver
+All cryptographic operations are using UADK crypto API.
+Hardware accelerators using UADK are supposed to be supported.
+
+
+Features
+--------
+
+UADK crypto PMD has support for:
+
+Cipher algorithms:
+
+* ``RTE_CRYPTO_CIPHER_AES_ECB``
+* ``RTE_CRYPTO_CIPHER_AES_CBC``
+* ``RTE_CRYPTO_CIPHER_AES_XTS``
+* ``RTE_CRYPTO_CIPHER_DES_CBC``
+
+Hash algorithms:
+
+* ``RTE_CRYPTO_AUTH_MD5``
+* ``RTE_CRYPTO_AUTH_MD5_HMAC``
+* ``RTE_CRYPTO_AUTH_SHA1``
+* ``RTE_CRYPTO_AUTH_SHA1_HMAC``
+* ``RTE_CRYPTO_AUTH_SHA224``
+* ``RTE_CRYPTO_AUTH_SHA224_HMAC``
+* ``RTE_CRYPTO_AUTH_SHA256``
+* ``RTE_CRYPTO_AUTH_SHA256_HMAC``
+* ``RTE_CRYPTO_AUTH_SHA384``
+* ``RTE_CRYPTO_AUTH_SHA384_HMAC``
+* ``RTE_CRYPTO_AUTH_SHA512``
+* ``RTE_CRYPTO_AUTH_SHA512_HMAC``
+
+Test steps
+-----------
+
+   .. code-block:: console
+
+       1. Build
+       cd dpdk
+       mkdir build
+       meson build (--reconfigure)
+       cd build
+       ninja
+       sudo ninja install
+
+       2. Prepare
+       echo 1024 > 
/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
+       echo 1024 > 
/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
+       echo 1024 > 
/sys/devices/system/node/node2/hugepages/hugepages-2048kB/nr_hugepages
+       echo 1024 > 
/sys/devices/system/node/node3/hugepages/hugepages-2048kB/nr_hugepages
+       mkdir -p /mnt/huge_2mb
+       mount -t hugetlbfs none /mnt/huge_2mb -o pagesize=2MB
+
+       2 Test with crypto_uadk
+       sudo dpdk-test --vdev=crypto_uadk (--log-level=6)
+       RTE>>cryptodev_uadk_autotest
+       RTE>>quit
+
+Dependency
+------------
+
+UADK crypto PMD relies on UADK library [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.
+As a result, user application can directly use virtual address for device dma,
+which enhances the performance as well as easy usability.
+
+[1] https://github.com/Linaro/uadk
-- 
2.36.1

Reply via email to