From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: [PATCH v2 00/11] Introducing NXP DPAA2 SEC based cryptodev PMD Date: Fri, 23 Dec 2016 01:46:49 +0530 Message-ID: <20161222201700.20020-1-akhil.goyal@nxp.com> References: <20161205125540.6419-1-akhil.goyal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , , , , , , Akhil Goyal To: Return-path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0088.outbound.protection.outlook.com [104.47.42.88]) by dpdk.org (Postfix) with ESMTP id 0255610D71 for ; Thu, 22 Dec 2016 15:51:16 +0100 (CET) In-Reply-To: <20161205125540.6419-1-akhil.goyal@nxp.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 :: Patch Layout :: 0001 : lib: Add rte_device pointer in cryptodevice. This patch may not be needed as some parallel work is going on on the mailing list. 0002~0003: Run Time Assembler(RTA) common library for CAAM hardware 0004 : Documentation 0005~0009: Crytodev PMD 0010 : Performance Test 0011 : MAINTAINERS :: Pending/ToDo :: - More functionality and algorithms are still work in progress -- Hash followed by Cipher mode -- session-less API -- Chained mbufs - Functional tests would be enhanced in v3 changes in v2: - Removed chechpatch error/warnings (one extern warning is coming which is not removed) - Moved flib to dpaa2_sec/hw - Improved patch set in an organized way - Improved Documentation for dpaa2_sec PMD - Removed unsupported algos from compatibility structure - corrected hw/compat.h to use rte_* APIs and MACROS - Corrected DPAA2_SEC PMD to use rte_device instead of PCI device (some parallel work is still in progress.) - updated MAINTAINERS file for DPAA2_SEC PMD - updated config file for DPAA2_SEC :: References :: [1] http://dpdk.org/ml/archives/dev/2016-December/051364.html Akhil Goyal (11): librte_cryptodev: Add rte_device pointer in cryptodevice crypto/dpaa2_sec: Run time assembler for Descriptor formation crypto/dpaa2_sec/hw: Sample descriptors for NXP DPAA2 SEC operations. doc: Adding NXP DPAA2_SEC in cryptodev lib: Add cryptodev type for DPAA2_SEC crypto: Add DPAA2_SEC PMD for NXP DPAA2 platform crypto/dpaa2_sec: Add DPAA2_SEC PMD into build system crypto/dpaa2_sec: Enable DPAA2_SEC PMD in the configuration crypto/dpaa2_sec: statistics support app/test: add dpaa2_sec crypto test crypto/dpaa2_sec: Update MAINTAINERS entry for dpaa2_sec PMD MAINTAINERS | 6 + app/test/test_cryptodev_perf.c | 12 + config/defconfig_arm64-dpaa2-linuxapp-gcc | 12 + doc/guides/cryptodevs/dpaa2_sec.rst | 233 ++ doc/guides/cryptodevs/index.rst | 1 + drivers/bus/fslmc/fslmc_vfio.c | 3 +- drivers/bus/fslmc/rte_fslmc.h | 5 +- drivers/common/dpaa2/dpio/dpaa2_hw_pvt.h | 25 + drivers/crypto/Makefile | 1 + drivers/crypto/dpaa2_sec/Makefile | 74 + drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 1668 +++++++++++++ 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 | 424 ++++ drivers/crypto/dpaa2_sec/hw/desc/common.h | 96 + drivers/crypto/dpaa2_sec/hw/desc/ipsec.h | 1502 ++++++++++++ drivers/crypto/dpaa2_sec/hw/rta.h | 918 +++++++ .../crypto/dpaa2_sec/hw/rta/fifo_load_store_cmd.h | 310 +++ drivers/crypto/dpaa2_sec/hw/rta/header_cmd.h | 215 ++ drivers/crypto/dpaa2_sec/hw/rta/jump_cmd.h | 172 ++ drivers/crypto/dpaa2_sec/hw/rta/key_cmd.h | 187 ++ drivers/crypto/dpaa2_sec/hw/rta/load_cmd.h | 300 +++ drivers/crypto/dpaa2_sec/hw/rta/math_cmd.h | 366 +++ drivers/crypto/dpaa2_sec/hw/rta/move_cmd.h | 405 +++ drivers/crypto/dpaa2_sec/hw/rta/nfifo_cmd.h | 161 ++ drivers/crypto/dpaa2_sec/hw/rta/operation_cmd.h | 549 +++++ drivers/crypto/dpaa2_sec/hw/rta/protocol_cmd.h | 680 ++++++ drivers/crypto/dpaa2_sec/hw/rta/sec_run_time_asm.h | 771 ++++++ .../crypto/dpaa2_sec/hw/rta/seq_in_out_ptr_cmd.h | 172 ++ drivers/crypto/dpaa2_sec/hw/rta/signature_cmd.h | 40 + drivers/crypto/dpaa2_sec/hw/rta/store_cmd.h | 150 ++ .../crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 4 + lib/librte_cryptodev/rte_cryptodev.h | 4 + mk/rte.app.mk | 7 + 36 files changed, 12602 insertions(+), 2 deletions(-) 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