[0/6] crypto/ionic: introduce AMD Pensando ionic crypto driver

Message ID 20240419195310.21432-1-andrew.boyer@amd.com (mailing list archive)
Headers
Series crypto/ionic: introduce AMD Pensando ionic crypto driver |

Message

Andrew Boyer April 19, 2024, 7:53 p.m. UTC
  This patchset introduces a new crypto PMD for AMD Pensando hardware
accelerators. It allows applications running directly on the AMD Pensando
DSC to offload cryptographic operations to hardware cryptographic blocks.

Andrew Boyer (6):
  crypto/ionic: introduce AMD Pensando ionic crypto driver
  crypto/ionic: add device and admin command handlers
  common/ionic: add crypto vdev support
  crypto/ionic: add device object and vdev support
  crypto/ionic: add datapath and capabilities support
  crypto/ionic: add documentation and connect to build

 MAINTAINERS                              |    7 +
 doc/guides/cryptodevs/features/ionic.ini |   40 +
 doc/guides/cryptodevs/index.rst          |    1 +
 doc/guides/cryptodevs/ionic.rst          |   39 +
 drivers/common/ionic/ionic_common.h      |    2 +
 drivers/common/ionic/ionic_common_uio.c  |   48 +-
 drivers/common/ionic/version.map         |    1 +
 drivers/crypto/ionic/ionic_crypto.h      |  361 ++++++++
 drivers/crypto/ionic/ionic_crypto_caps.c |   55 ++
 drivers/crypto/ionic/ionic_crypto_cmds.c |  651 ++++++++++++++
 drivers/crypto/ionic/ionic_crypto_if.h   | 1021 ++++++++++++++++++++++
 drivers/crypto/ionic/ionic_crypto_main.c |  993 +++++++++++++++++++++
 drivers/crypto/ionic/ionic_crypto_ops.c  |  606 +++++++++++++
 drivers/crypto/ionic/ionic_crypto_vdev.c |  128 +++
 drivers/crypto/ionic/meson.build         |   16 +
 drivers/crypto/meson.build               |    1 +
 16 files changed, 3969 insertions(+), 1 deletion(-)
 create mode 100644 doc/guides/cryptodevs/features/ionic.ini
 create mode 100644 doc/guides/cryptodevs/ionic.rst
 create mode 100644 drivers/crypto/ionic/ionic_crypto.h
 create mode 100644 drivers/crypto/ionic/ionic_crypto_caps.c
 create mode 100644 drivers/crypto/ionic/ionic_crypto_cmds.c
 create mode 100644 drivers/crypto/ionic/ionic_crypto_if.h
 create mode 100644 drivers/crypto/ionic/ionic_crypto_main.c
 create mode 100644 drivers/crypto/ionic/ionic_crypto_ops.c
 create mode 100644 drivers/crypto/ionic/ionic_crypto_vdev.c
 create mode 100644 drivers/crypto/ionic/meson.build
  

Comments

Akhil Goyal April 24, 2024, 6:21 p.m. UTC | #1
Hi Andrew,
> This patchset introduces a new crypto PMD for AMD Pensando hardware
> accelerators. It allows applications running directly on the AMD Pensando
> DSC to offload cryptographic operations to hardware cryptographic blocks.
> 
> Andrew Boyer (6):
>   crypto/ionic: introduce AMD Pensando ionic crypto driver
>   crypto/ionic: add device and admin command handlers
>   common/ionic: add crypto vdev support
>   crypto/ionic: add device object and vdev support
>   crypto/ionic: add datapath and capabilities support
>   crypto/ionic: add documentation and connect to build
I did not review the patches completely yet,
but the patches are not organized properly.

Your 1st patch says introduce the new driver, 
But it is just adding a hardware specific header file.

Your 1st patch should add the base framework of the PMD
Which is compiled in the DPDK build system.
You can also add some part of documentation for introducing the new driver.
MAINTAINERS file should also be updated for every new directory where it is introduced.

Once you have the base probe and remove added in your first patch,
You can add each of the driver ops in subsequent patches.
You can break queue pair related stuff in a single patch and session related stuff in another one.
Capabilities can be a separate patch.
enqueue/dequeue can also be separate patches as well if they are big.

Add documentation changes in each of the patches wherever needed.
You may refer https://patches.dpdk.org/project/dpdk/list/?series=17483&state=%2A&archive=both

> 
>  MAINTAINERS                              |    7 +
>  doc/guides/cryptodevs/features/ionic.ini |   40 +
>  doc/guides/cryptodevs/index.rst          |    1 +
>  doc/guides/cryptodevs/ionic.rst          |   39 +
>  drivers/common/ionic/ionic_common.h      |    2 +
>  drivers/common/ionic/ionic_common_uio.c  |   48 +-
>  drivers/common/ionic/version.map         |    1 +
>  drivers/crypto/ionic/ionic_crypto.h      |  361 ++++++++
>  drivers/crypto/ionic/ionic_crypto_caps.c |   55 ++
>  drivers/crypto/ionic/ionic_crypto_cmds.c |  651 ++++++++++++++
>  drivers/crypto/ionic/ionic_crypto_if.h   | 1021 ++++++++++++++++++++++
>  drivers/crypto/ionic/ionic_crypto_main.c |  993 +++++++++++++++++++++
>  drivers/crypto/ionic/ionic_crypto_ops.c  |  606 +++++++++++++
>  drivers/crypto/ionic/ionic_crypto_vdev.c |  128 +++
>  drivers/crypto/ionic/meson.build         |   16 +
>  drivers/crypto/meson.build               |    1 +
>  16 files changed, 3969 insertions(+), 1 deletion(-)
>  create mode 100644 doc/guides/cryptodevs/features/ionic.ini
>  create mode 100644 doc/guides/cryptodevs/ionic.rst
>  create mode 100644 drivers/crypto/ionic/ionic_crypto.h
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_caps.c
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_cmds.c
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_if.h
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_main.c
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_ops.c
>  create mode 100644 drivers/crypto/ionic/ionic_crypto_vdev.c
>  create mode 100644 drivers/crypto/ionic/meson.build
> 
> --
> 2.17.1