Add the Nitrox PMD to support Nitrox crypto device. --- v7: * Removed rte_wmb() and rte_rmb() usage in all places. * Added rte_smp_wmb() before pending count update in enqueue operation and rte_smp_rmb() before reading softreq from pending queue. * Added rte_io_wmb() before the ring doorbell to ensure all the DMA buffers & descriptors stores are completed.
v6: * Updated Nitrox cryptodev html guide. * Updated release notes 19.11. v5: * Combined related changes together and merged into single patch. * Defined macros for PCI vendor and device ids. * Checking return value of nitrox_sym_pmd_destroy() in pci remove. * Removed wrapper macro over RTE_CRYPTODEV_NAME_MAX_LEN. * Added cryptodev feature flags in the code and documentation in a patch where they are supported. * Added capabilities in the patch where they are supported. * Implemented nitrox_sym_dev_config() and validating the number of queue pairs requested in the config. * Used RTE_SET_USED() in place of __rte_unused and added comments in empty functions. * Removed empty lines which are not required. v4: * Added wmb between pending_count store and sr pointer store in enqueue operation. This is required to safely read sr in dequeue operation. v3: * Add SHA224 and SHA256 HMAC algorithms v2: * Fix compilation error on AARCH64. * Fix checkpatch warning "UNNECESSARY_ELSE: else is not generally useful after a break or return". Nagadheeraj Rottela (8): crypto/nitrox: add Nitrox PMD library crypto/nitrox: create Nitrox symmetric cryptodev crypto/nitrox: add software queue management functionality crypto/nitrox: add hardware queue management functionality crypto/nitrox: add session management operations crypto/nitrox: add burst enqueue and dequeue operations crypto/nitrox: add cipher auth crypto chain processing test/crypto: add tests for Nitrox PMD MAINTAINERS | 7 + app/test/test_cryptodev.c | 52 ++ app/test/test_cryptodev.h | 1 + app/test/test_cryptodev_aes_test_vectors.h | 48 +- app/test/test_cryptodev_blockcipher.c | 9 +- app/test/test_cryptodev_blockcipher.h | 1 + config/common_base | 5 + doc/guides/cryptodevs/features/nitrox.ini | 40 ++ doc/guides/cryptodevs/index.rst | 1 + doc/guides/cryptodevs/nitrox.rst | 51 ++ doc/guides/rel_notes/release_19_11.rst | 5 + drivers/crypto/Makefile | 1 + drivers/crypto/meson.build | 4 +- drivers/crypto/nitrox/Makefile | 34 ++ drivers/crypto/nitrox/meson.build | 19 + drivers/crypto/nitrox/nitrox_csr.h | 40 ++ drivers/crypto/nitrox/nitrox_device.c | 124 ++++ drivers/crypto/nitrox/nitrox_device.h | 22 + drivers/crypto/nitrox/nitrox_hal.c | 236 ++++++++ drivers/crypto/nitrox/nitrox_hal.h | 165 +++++ drivers/crypto/nitrox/nitrox_logs.c | 14 + drivers/crypto/nitrox/nitrox_logs.h | 15 + drivers/crypto/nitrox/nitrox_qp.c | 115 ++++ drivers/crypto/nitrox/nitrox_qp.h | 104 ++++ drivers/crypto/nitrox/nitrox_sym.c | 728 +++++++++++++++++++++++ drivers/crypto/nitrox/nitrox_sym.h | 13 + drivers/crypto/nitrox/nitrox_sym_capabilities.c | 99 +++ drivers/crypto/nitrox/nitrox_sym_capabilities.h | 12 + drivers/crypto/nitrox/nitrox_sym_ctx.h | 84 +++ drivers/crypto/nitrox/nitrox_sym_reqmgr.c | 635 ++++++++++++++++++++ drivers/crypto/nitrox/nitrox_sym_reqmgr.h | 23 + drivers/crypto/nitrox/rte_pmd_nitrox_version.map | 3 + mk/rte.app.mk | 1 + 33 files changed, 2692 insertions(+), 19 deletions(-) create mode 100644 doc/guides/cryptodevs/features/nitrox.ini create mode 100644 doc/guides/cryptodevs/nitrox.rst create mode 100644 drivers/crypto/nitrox/Makefile create mode 100644 drivers/crypto/nitrox/meson.build create mode 100644 drivers/crypto/nitrox/nitrox_csr.h create mode 100644 drivers/crypto/nitrox/nitrox_device.c create mode 100644 drivers/crypto/nitrox/nitrox_device.h create mode 100644 drivers/crypto/nitrox/nitrox_hal.c create mode 100644 drivers/crypto/nitrox/nitrox_hal.h create mode 100644 drivers/crypto/nitrox/nitrox_logs.c create mode 100644 drivers/crypto/nitrox/nitrox_logs.h create mode 100644 drivers/crypto/nitrox/nitrox_qp.c create mode 100644 drivers/crypto/nitrox/nitrox_qp.h create mode 100644 drivers/crypto/nitrox/nitrox_sym.c create mode 100644 drivers/crypto/nitrox/nitrox_sym.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_capabilities.c create mode 100644 drivers/crypto/nitrox/nitrox_sym_capabilities.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_ctx.h create mode 100644 drivers/crypto/nitrox/nitrox_sym_reqmgr.c create mode 100644 drivers/crypto/nitrox/nitrox_sym_reqmgr.h create mode 100644 drivers/crypto/nitrox/rte_pmd_nitrox_version.map -- 2.13.6