[dpdk-dev] [PATCH v3 00/10] Introducing NXP dpaa2_sec based cryptodev pmd

akhil.goyal at nxp.com akhil.goyal at nxp.com
Fri Jan 20 15:04:59 CET 2017


From: Akhil Goyal <akhil.goyal at 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



More information about the dev mailing list