From: Akhil Goyal <akhil.go...@nxp.com> Based over the DPAA2 PMD driver [1], this series of patches introduces the DPAA2_SEC PMD which provides DPDK crypto driver for NXP's DPAA2 CAAM Hardware accelerator.
SEC is NXP DPAA2 SoC's security engine for cryptographic acceleration and offloading. It implements block encryption, stream cipher, hashing and public key algorithms. It also supports run-time integrity checking, and a hardware random number generator. Besides the objects exposed in [1], another key object has been added through this patch: - DPSECI, refers to SEC block interface This patch set depends on http://dpdk.org/dev/patchwork/patch/19692/ :: Patch Layout :: 0001 : Documentation 0002~0003: Cryptodev PMD 0004~0005: Run Time Assembler(RTA) common headers for CAAM hardware 0006~0007: Crytodev PMD ops 0008 : MAINTAINERS 0009~0010: Performance and Functional tests :: Future Work To Do :: - More functionality and algorithms are still work in progress -- Hash followed by Cipher mode -- session-less API -- Chained mbufs changes in v3: - Added functional test cases - Incorporated comments from Pablo :: References :: [1] http://dpdk.org/ml/archives/dev/2016-December/051364.html Akhil Goyal (10): doc: add NXP dpaa2_sec in cryptodev cryptodev: add cryptodev type for dpaa2_sec crypto/dpaa2_sec: add dpaa2_sec poll mode driver crypto/dpaa2_sec: add run time assembler for descriptor formation crypto/dpaa2_sec: add sample descriptors for NXP dpaa2_sec operations. crypto/dpaa2_sec: add crypto operation support crypto/dpaa2_sec: statistics support crypto/dpaa2_sec: update MAINTAINERS entry for dpaa2_sec pmd app/test: add dpaa2_sec crypto performance test app/test: add dpaa2_sec crypto functional test MAINTAINERS | 6 + app/test/test_cryptodev.c | 106 + app/test/test_cryptodev_blockcipher.c | 3 + app/test/test_cryptodev_blockcipher.h | 1 + app/test/test_cryptodev_perf.c | 23 + config/common_base | 8 + config/defconfig_arm64-dpaa2-linuxapp-gcc | 12 + doc/guides/cryptodevs/dpaa2_sec.rst | 233 ++ doc/guides/cryptodevs/index.rst | 1 + drivers/bus/Makefile | 3 + drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 25 + drivers/common/Makefile | 3 + drivers/crypto/Makefile | 1 + drivers/crypto/dpaa2_sec/Makefile | 77 + drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 1660 +++++++++++++ drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h | 70 + drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h | 368 +++ drivers/crypto/dpaa2_sec/hw/compat.h | 123 + drivers/crypto/dpaa2_sec/hw/desc.h | 2570 ++++++++++++++++++++ drivers/crypto/dpaa2_sec/hw/desc/algo.h | 431 ++++ drivers/crypto/dpaa2_sec/hw/desc/common.h | 97 + drivers/crypto/dpaa2_sec/hw/desc/ipsec.h | 1513 ++++++++++++ drivers/crypto/dpaa2_sec/hw/rta.h | 920 +++++++ .../crypto/dpaa2_sec/hw/rta/fifo_load_store_cmd.h | 312 +++ drivers/crypto/dpaa2_sec/hw/rta/header_cmd.h | 217 ++ drivers/crypto/dpaa2_sec/hw/rta/jump_cmd.h | 173 ++ drivers/crypto/dpaa2_sec/hw/rta/key_cmd.h | 188 ++ drivers/crypto/dpaa2_sec/hw/rta/load_cmd.h | 301 +++ drivers/crypto/dpaa2_sec/hw/rta/math_cmd.h | 368 +++ drivers/crypto/dpaa2_sec/hw/rta/move_cmd.h | 411 ++++ drivers/crypto/dpaa2_sec/hw/rta/nfifo_cmd.h | 162 ++ drivers/crypto/dpaa2_sec/hw/rta/operation_cmd.h | 565 +++++ drivers/crypto/dpaa2_sec/hw/rta/protocol_cmd.h | 698 ++++++ drivers/crypto/dpaa2_sec/hw/rta/sec_run_time_asm.h | 789 ++++++ .../crypto/dpaa2_sec/hw/rta/seq_in_out_ptr_cmd.h | 174 ++ drivers/crypto/dpaa2_sec/hw/rta/signature_cmd.h | 41 + drivers/crypto/dpaa2_sec/hw/rta/store_cmd.h | 151 ++ .../crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 4 + drivers/net/dpaa2/Makefile | 1 + drivers/pool/Makefile | 4 + lib/librte_cryptodev/rte_cryptodev.h | 3 + mk/rte.app.mk | 6 + 42 files changed, 12822 insertions(+) create mode 100644 doc/guides/cryptodevs/dpaa2_sec.rst create mode 100644 drivers/crypto/dpaa2_sec/Makefile create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_logs.h create mode 100644 drivers/crypto/dpaa2_sec/dpaa2_sec_priv.h create mode 100644 drivers/crypto/dpaa2_sec/hw/compat.h create mode 100644 drivers/crypto/dpaa2_sec/hw/desc.h create mode 100644 drivers/crypto/dpaa2_sec/hw/desc/algo.h create mode 100644 drivers/crypto/dpaa2_sec/hw/desc/common.h create mode 100644 drivers/crypto/dpaa2_sec/hw/desc/ipsec.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/fifo_load_store_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/header_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/jump_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/key_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/load_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/math_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/move_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/nfifo_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/operation_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/protocol_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/sec_run_time_asm.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/seq_in_out_ptr_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/signature_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/hw/rta/store_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map -- 2.9.3