Hi All,
On 4/10/2017 6:00 PM, akhil.go...@nxp.com wrote:
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
:: 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