From mboxrd@z Thu Jan 1 00:00:00 1970 From: Subject: [PATCH v9 00/13] Introducing NXP dpaa2_sec based cryptodev pmd Date: Thu, 20 Apr 2017 11:14:14 +0530 Message-ID: <1492667067-21968-1-git-send-email-akhil.goyal@nxp.com> References: <1492616268-6307-1-git-send-email-akhil.goyal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , , , To: Return-path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0054.outbound.protection.outlook.com [104.47.42.54]) by dpdk.org (Postfix) with ESMTP id AF40D2BAE for ; Thu, 20 Apr 2017 07:44:44 +0200 (CEST) In-Reply-To: <1492616268-6307-1-git-send-email-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" From: Hemant Agrawal 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~0002: Cryptodev PMD 0003 : MC dpseci object 0004 : Crytodev PMD basic ops 0005~0006: Run Time Assembler(RTA) common headers for CAAM hardware 0007~0009: Crytodev PMD ops 0010 : Documentation 0011 : MAINTAINERS 0012~0013: 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 v9: - correction as per pablo's comments changes in v8: - Rebased over next-crypto and latest DPAA2 PMD patches - minor error handling corrections changes in v7: - Rebased over 17.02RC1 and latest DPAA2 PMD patches - Handled comments from Pablo and John changes in v6: - Rebased over latest DPAA2 PMD and over crypto-next - Handled comments from Pablo and John - split one patch for correcting check-git-log.sh changes in v5: - v4 discarded because of incorrect patchset changes in v4: - Moved patch for documentation in the end - Moved MC object DPSECI from base DPAA2 series to this patch set for better understanding - updated documentation to remove confusion about external libs. changes in v3: - Added functional test cases - Incorporated comments from Pablo :: References :: [1] http://dpdk.org/ml/archives/dev/2017-April/063480.html Akhil Goyal (13): cryptodev: add cryptodev type for dpaa2 sec crypto/dpaa2_sec: add dpaa2 sec poll mode driver crypto/dpaa2_sec: add mc dpseci object support crypto/dpaa2_sec: add basic crypto operations crypto/dpaa2_sec: add run time assembler for descriptor formation crypto/dpaa2_sec: add sample descriptors for NXP dpaa2 sec ops bus/fslmc: add packet frame list entry definitions crypto/dpaa2_sec: add crypto operation support crypto/dpaa2_sec: statistics support doc: add NXP dpaa2 sec in cryptodev maintainers: claim responsibility for dpaa2 sec pmd test/test: add dpaa2 sec crypto performance test test/test: add dpaa2 sec crypto functional test MAINTAINERS | 6 + config/common_base | 8 + config/defconfig_arm64-dpaa2-linuxapp-gcc | 12 + doc/guides/cryptodevs/dpaa2_sec.rst | 232 ++ doc/guides/cryptodevs/features/dpaa2_sec.ini | 34 + doc/guides/cryptodevs/index.rst | 1 + doc/guides/nics/dpaa2.rst | 2 + drivers/Makefile | 1 + drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 25 + drivers/bus/fslmc/rte_bus_fslmc_version.map | 1 + drivers/crypto/Makefile | 2 + drivers/crypto/dpaa2_sec/Makefile | 78 + drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 1656 +++++++++++++ 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 | 2565 ++++++++++++++++++++ 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 ++ drivers/crypto/dpaa2_sec/mc/dpseci.c | 551 +++++ drivers/crypto/dpaa2_sec/mc/fsl_dpseci.h | 739 ++++++ drivers/crypto/dpaa2_sec/mc/fsl_dpseci_cmd.h | 249 ++ .../crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 4 + lib/librte_cryptodev/rte_cryptodev.h | 3 + mk/rte.app.mk | 5 + test/test/test_cryptodev.c | 105 + test/test/test_cryptodev_blockcipher.c | 3 + test/test/test_cryptodev_blockcipher.h | 1 + test/test/test_cryptodev_perf.c | 23 + 45 files changed, 14378 insertions(+) create mode 100644 doc/guides/cryptodevs/dpaa2_sec.rst create mode 100644 doc/guides/cryptodevs/features/dpaa2_sec.ini 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/mc/dpseci.c create mode 100644 drivers/crypto/dpaa2_sec/mc/fsl_dpseci.h create mode 100644 drivers/crypto/dpaa2_sec/mc/fsl_dpseci_cmd.h create mode 100644 drivers/crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map -- 1.9.1