[dpdk-dev] [PATCH v3 00/27] OCTEON TX2 common and mempool driver

jerinj at marvell.com jerinj at marvell.com
Mon Jun 17 17:55:10 CEST 2019


From: Jerin Jacob <jerinj at marvell.com>

This patch set adds initial driver support for OCTEON TX2 SoC.

OCTEON TX2 is an armv8.2 SoC with integrated HW based mempool, ethdev,
cryptodev, compressdev, and eventdev devices.

This patch set adds common driver and mempool device driver for OCTEON TX2 SoC.
There will be three more patch series in this release
to support ethdev, eventdev and cryptodev devices

More details about the OCTEON TX2 platform may found in
[PATCH 15/27] doc: add Marvell OCTEON TX2 platform guide
under doc/guides/platform/octeontx2.rst file.

This patches series also available at https://github.com/jerinjacobk/dpdk.git
for quick download and review.

# Note on check patch issues
1) The mailbox prototype is the same as Linux kernel.
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/octeontx2/af/mbox.h#L123
In order to keep the base code intact, mailbox prototype expressed as
macros with warnings
2) There are a few warnings from tooling about expected to add new
symbols in the EXPERIMENTAL
section. Since these API will be called only by octeontx2 client drivers
and prototype are not exported to the application, those warnings are
not relevant, Discussion at http://patches.dpdk.org/patch/53590/

v3:

1) Replace the reference to v19.08 from v19.05
2) remove rte_panic from driver code
3) rebase to dpdk.org master(as of 17-June)

v2:

1) Added CONFIG_RTE_MAX_VFIO_GROUPS for octeontx2 config in patch 1
2) Rebased to master to accommodate latest rename like ETHER_ADDR_LEN to RTE_ETHER_ADDR_LEN
3) Added pmd.raw.octeontx2.dpi log message in patch 5
4) Update platform guide with debugfs documentation in patch 15
5) Fix arm64 build issue with patch 25(Aaron Conole)
"mempool/octeontx2: add optimized dequeue operation for arm64"

Cc: Thomas Monjalon <thomas at monjalon.net>
 
Jerin Jacob (22):
  common/octeontx2: add build infrastructure and HW definition
  common/octeontx2: add IO handling APIs
  common/octeontx2: add mbox request and response definition
  common/octeontx2: add mailbox base support infra
  common/octeontx2: add runtime log infra
  common/octeontx2: add mailbox send and receive support
  common/octeontx2: introduce common device class
  common/octeontx2: introduce irq handling functions
  common/octeontx2: handle intra device operations
  common/octeontx2: add VF mailbox IRQ and msg handler
  doc: add Marvell OCTEON TX2 platform guide
  mempool/octeontx2: add build infra and device probe
  drivers: add init and fini on octeontx2 NPA object
  mempool/octeontx2: add NPA HW operations
  mempool/octeontx2: add NPA IRQ handler
  mempool/octeontx2: add context dump support
  mempool/octeontx2: add mempool alloc op
  mempool/octeontx2: add mempool free op
  mempool/octeontx2: add remaining slow path ops
  mempool/octeontx2: add fast path mempool ops
  mempool/octeontx2: add devargs for max pool selection
  doc: add Marvell OCTEON TX2 mempool documentation

Nithin Dabilpuram (4):
  common/octeontx2: add AF to PF mailbox IRQ and msg handlers
  common/octeontx2: add PF to VF mailbox IRQ and msg handlers
  common/octeontx2: add uplink message support
  common/octeontx2: add FLR IRQ handler

Pavan Nikhilesh (1):
  mempool/octeontx2: add optimized dequeue operation for arm64

 MAINTAINERS                                   |   10 +
 config/common_base                            |    5 +
 config/defconfig_arm64-octeontx2-linuxapp-gcc |    3 +
 doc/guides/mempool/index.rst                  |    1 +
 doc/guides/mempool/octeontx2.rst              |   90 +
 .../octeontx2_packet_flow_hw_accelerators.svg | 2804 +++++++++++++++++
 .../img/octeontx2_resource_virtualization.svg | 2418 ++++++++++++++
 doc/guides/platform/index.rst                 |    1 +
 doc/guides/platform/octeontx2.rst             |  496 +++
 doc/guides/rel_notes/release_19_08.rst        |    2 +
 drivers/common/Makefile                       |    5 +
 drivers/common/meson.build                    |    2 +-
 drivers/common/octeontx2/Makefile             |   37 +
 drivers/common/octeontx2/hw/otx2_nix.h        | 1379 ++++++++
 drivers/common/octeontx2/hw/otx2_npa.h        |  305 ++
 drivers/common/octeontx2/hw/otx2_npc.h        |  472 +++
 drivers/common/octeontx2/hw/otx2_rvu.h        |  212 ++
 drivers/common/octeontx2/hw/otx2_sso.h        |  209 ++
 drivers/common/octeontx2/hw/otx2_ssow.h       |   56 +
 drivers/common/octeontx2/hw/otx2_tim.h        |   34 +
 drivers/common/octeontx2/meson.build          |   25 +
 drivers/common/octeontx2/otx2_common.c        |  248 ++
 drivers/common/octeontx2/otx2_common.h        |  121 +
 drivers/common/octeontx2/otx2_dev.c           | 1052 +++++++
 drivers/common/octeontx2/otx2_dev.h           |   97 +
 drivers/common/octeontx2/otx2_io_arm64.h      |   95 +
 drivers/common/octeontx2/otx2_io_generic.h    |   63 +
 drivers/common/octeontx2/otx2_irq.c           |  254 ++
 drivers/common/octeontx2/otx2_irq.h           |   25 +
 drivers/common/octeontx2/otx2_mbox.c          |  416 +++
 drivers/common/octeontx2/otx2_mbox.h          | 1483 +++++++++
 .../rte_common_octeontx2_version.map          |   39 +
 drivers/mempool/Makefile                      |    1 +
 drivers/mempool/meson.build                   |    2 +-
 drivers/mempool/octeontx2/Makefile            |   39 +
 drivers/mempool/octeontx2/meson.build         |   23 +
 drivers/mempool/octeontx2/otx2_mempool.c      |  438 +++
 drivers/mempool/octeontx2/otx2_mempool.h      |  208 ++
 .../mempool/octeontx2/otx2_mempool_debug.c    |  135 +
 drivers/mempool/octeontx2/otx2_mempool_irq.c  |  303 ++
 drivers/mempool/octeontx2/otx2_mempool_ops.c  |  760 +++++
 .../rte_mempool_octeontx2_version.map         |    8 +
 mk/rte.app.mk                                 |    6 +
 43 files changed, 14380 insertions(+), 2 deletions(-)
 create mode 100644 doc/guides/mempool/octeontx2.rst
 create mode 100644 doc/guides/platform/img/octeontx2_packet_flow_hw_accelerators.svg
 create mode 100644 doc/guides/platform/img/octeontx2_resource_virtualization.svg
 create mode 100644 doc/guides/platform/octeontx2.rst
 create mode 100644 drivers/common/octeontx2/Makefile
 create mode 100644 drivers/common/octeontx2/hw/otx2_nix.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_npa.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_npc.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_rvu.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_sso.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_ssow.h
 create mode 100644 drivers/common/octeontx2/hw/otx2_tim.h
 create mode 100644 drivers/common/octeontx2/meson.build
 create mode 100644 drivers/common/octeontx2/otx2_common.c
 create mode 100644 drivers/common/octeontx2/otx2_common.h
 create mode 100644 drivers/common/octeontx2/otx2_dev.c
 create mode 100644 drivers/common/octeontx2/otx2_dev.h
 create mode 100644 drivers/common/octeontx2/otx2_io_arm64.h
 create mode 100644 drivers/common/octeontx2/otx2_io_generic.h
 create mode 100644 drivers/common/octeontx2/otx2_irq.c
 create mode 100644 drivers/common/octeontx2/otx2_irq.h
 create mode 100644 drivers/common/octeontx2/otx2_mbox.c
 create mode 100644 drivers/common/octeontx2/otx2_mbox.h
 create mode 100644 drivers/common/octeontx2/rte_common_octeontx2_version.map
 create mode 100644 drivers/mempool/octeontx2/Makefile
 create mode 100644 drivers/mempool/octeontx2/meson.build
 create mode 100644 drivers/mempool/octeontx2/otx2_mempool.c
 create mode 100644 drivers/mempool/octeontx2/otx2_mempool.h
 create mode 100644 drivers/mempool/octeontx2/otx2_mempool_debug.c
 create mode 100644 drivers/mempool/octeontx2/otx2_mempool_irq.c
 create mode 100644 drivers/mempool/octeontx2/otx2_mempool_ops.c
 create mode 100644 drivers/mempool/octeontx2/rte_mempool_octeontx2_version.map

-- 
2.21.0



More information about the dev mailing list