From mboxrd@z Thu Jan 1 00:00:00 1970 From: Akhil Goyal Subject: Re: [PATCH v7 00/13] Introducing NXP dpaa2_sec based cryptodev pmd Date: Mon, 10 Apr 2017 18:06:42 +0530 Message-ID: References: <20170324215754.21751-1-akhil.goyal@nxp.com> <20170410123108.26305-1-akhil.goyal@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit Cc: , , , , , To: Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0043.outbound.protection.outlook.com [104.47.33.43]) by dpdk.org (Postfix) with ESMTP id 643482BAE for ; Mon, 10 Apr 2017 14:36:53 +0200 (CEST) In-Reply-To: <20170410123108.26305-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" Hi All, On 4/10/2017 6:00 PM, akhil.goyal@nxp.com wrote: > From: Akhil Goyal > > 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 v7: > - Rebased over 17.02RC1 and latest DPAA2 PMD patches > - Handled comments from Pablo and John > A typo here. I have rebased the patches over 17.05RC1 and latest DPAA2 PMD patches -Akhil > 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/063504.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/Makefile | 4 + > drivers/bus/fslmc/Makefile | 4 + > 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 | 82 + > drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 1662 +++++++++++++ > 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 ++ > drivers/crypto/dpaa2_sec/mc/dpseci.c | 551 +++++ > drivers/crypto/dpaa2_sec/mc/fsl_dpseci.h | 738 ++++++ > drivers/crypto/dpaa2_sec/mc/fsl_dpseci_cmd.h | 249 ++ > .../crypto/dpaa2_sec/rte_pmd_dpaa2_sec_version.map | 4 + > drivers/mempool/Makefile | 4 + > drivers/mempool/dpaa2/Makefile | 4 + > lib/librte_cryptodev/rte_cryptodev.h | 3 + > mk/rte.app.mk | 5 + > test/test/test_cryptodev.c | 106 + > test/test/test_cryptodev_blockcipher.c | 3 + > test/test/test_cryptodev_blockcipher.h | 1 + > test/test/test_cryptodev_perf.c | 23 + > 49 files changed, 14409 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 >