[dpdk-dev] [PATCH v5 00/40] Introduce NXP DPAA Bus, Mempool and PMD

Shreyansh Jain shreyansh.jain at nxp.com
Thu Sep 28 13:33:04 CEST 2017


Change Log:
============

v5:
 - rebased over net-next/master (9d660ac)	
 - restructuring debugging macros. Removed a few and combined
   others. DPAA now reflects the dynamic logging with segragated
   DP logging
 - updated documentation for missing configuration option
 - fixed map file; shared build was broken earlier
 - other minor fixes from review comments

v4:
 - Some checkpatch fixes which were reported by checkpatch at dpdk
 - adding extra stats feature patch (patch 41)

v3:
 - Rebasing over 17.11-rc0 (85238f50)
 - Checkpatch fixes
   (There are still 2 errors which I think are false positives)
 - Implement rte_bus.find_device() interface
 - Various other minor updates/cleanups

v2:
 - Fixing various comments from Ferruh, but broadly:
  -) Logging is been changed to reflect rte_log_register
  -) Logs across Bus, Mempool and PMD updated
  -) fixed incorrect feature claimed in dpaa.ini
 - Removed 24/40/48 bit swapping macro from EAL.
   These are defined in dpaa/bus now (compat.h)
 - Added missing memory cleanup operation
 - Updated documentation with some missing information

Introduction
============

RFC was posted here -> [R3]
V4 was posted here  -> [R7]

This patch series adds NXP's QorIQ-Layerscape DPAA Architecture based
bus driver, mempool driver and PMD. This version of driver supports NXP
LS1043A/LS1023A, LS1046A/LS1026A family of network SoCs. [R1]

DPAA, or Datapath Acceleration Architecture [R2], is a set of hardware
components designed for high-speed network packet processing. This
architecture provides the infrastructure to support simplified sharing of
networking interfaces and accelerators by multiple CPU cores, and the
accelerators themselves.

This patchset introduces the following:
1. DPAA Bus (drivers/bus/dpaa)
 The core of DPAA bus is implemented using 3 main hardware blocks: QMan,
 or Queue Manager; BMan, or Buffer Manager and FMan, or Frame Manager.
 The patches introduce necessary layers to expose the DPAA hardware
 blocks for interfacing with RTE framework.

2. DPAA Mempool (drivers/mempool/dpaa)
 BMan, or Buffer Manager, block of DPAA features a hardware offloaded
 mempool. These patches add support for a driver to manage the BMan
 block. This driver allows for mempool creation, deletion, buffer
 acquire and release, as per the RTE APIs.

3. DPAA PMD (drivers/net/dpaa)
 The Poll Mode Driver for DPAA NIC Interfaces.

Patch Layout
============

01: Add DPAA SoC build configuration
02~16: Add DPAA Bus support and features, incrementally
17: Add Documentation
18~21: Add DPAA Mempool support
22~40: Add PMD and its various features, incrementally

References
==========

[R1] http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-layerscape-arm-processors:QORIQ-ARM
[R2] http://www.nxp.com/assets/documents/data/en/white-papers/QORIQDPAAWP.pdf
[R3] RFC: http://dpdk.org/ml/archives/dev/2017-May/066675.html
[R4] v1: http://dpdk.org/ml/archives/dev/2017-June/068020.html
[R5] v2: http://dpdk.org/ml/archives/dev/2017-July/070113.html
[R6] v3: http://dpdk.org/ml/archives/dev/2017-August/073269.html
[R7] v4: http://dpdk.org/ml/archives/dev/2017-September/074936.html

Hemant Agrawal (3):
  bus/dpaa: add compatibility and helper macros
  net/dpaa: support firmware version get API
  net/dpaa: support extended statistics

Shreyansh Jain (37):
  config: add NXP DPAA SoC build configuration
  bus/dpaa: introduce NXP DPAA Bus driver skeleton
  bus/dpaa: add OF parser for device scanning
  bus/dpaa: introducing FMan configurations
  bus/dpaa: add FMan hardware operations
  bus/dpaa: enable DPAA IOCTL portal driver
  bus/dpaa: add layer for interrupt emulation using pthread
  bus/dpaa: add routines for managing a RB tree
  bus/dpaa: add QMAN interface driver
  bus/dpaa: add QMan driver core routines
  bus/dpaa: add BMAN driver core
  bus/dpaa: support FMAN frame queue lookup
  bus/dpaa: add BMan hardware interfaces
  bus/dpaa: add fman flow control threshold setting
  bus/dpaa: integrate DPAA Bus with hardware blocks
  doc: add NXP DPAA PMD documentation
  bus/dpaa: add DPAA mempool logging macros
  mempool/dpaa: support NXP DPAA Mempool
  config: enable compilation of DPAA Mempool driver
  bus/dpaa: add DPAA PMD logging macros
  net/dpaa: add NXP DPAA PMD driver skeleton
  config: enable NXP DPAA PMD compilation
  net/dpaa: support Tx and Rx queue setup
  net/dpaa: support MTU update
  net/dpaa: support jumbo frames
  net/dpaa: support link status update
  net/dpaa: support device info and speed capability
  net/dpaa: support promiscuous toggle
  net/dpaa: support multicast toggle
  net/dpaa: support MAC address update
  net/dpaa: support basic stats
  net/dpaa: support flow control
  net/dpaa: support hashed RSS
  net/dpaa: support packet type parsing
  net/dpaa: support checksum offload
  net/dpaa: support Scattered Rx
  net/dpaa: add packet dump for debugging

 MAINTAINERS                                       |    9 +
 config/common_base                                |    5 +
 config/defconfig_arm64-dpaa-linuxapp-gcc          |   59 +
 doc/guides/nics/dpaa.rst                          |  377 ++++
 doc/guides/nics/features/dpaa.ini                 |   24 +
 doc/guides/nics/index.rst                         |    1 +
 drivers/bus/Makefile                              |    3 +
 drivers/bus/dpaa/Makefile                         |   76 +
 drivers/bus/dpaa/base/fman/fman.c                 |  611 +++++
 drivers/bus/dpaa/base/fman/fman_hw.c              |  590 +++++
 drivers/bus/dpaa/base/fman/netcfg_layer.c         |  214 ++
 drivers/bus/dpaa/base/fman/of.c                   |  576 +++++
 drivers/bus/dpaa/base/qbman/bman.c                |  394 ++++
 drivers/bus/dpaa/base/qbman/bman.h                |  550 +++++
 drivers/bus/dpaa/base/qbman/bman_driver.c         |  323 +++
 drivers/bus/dpaa/base/qbman/bman_priv.h           |  125 ++
 drivers/bus/dpaa/base/qbman/dpaa_alloc.c          |  104 +
 drivers/bus/dpaa/base/qbman/dpaa_sys.c            |  136 ++
 drivers/bus/dpaa/base/qbman/dpaa_sys.h            |   61 +
 drivers/bus/dpaa/base/qbman/process.c             |  331 +++
 drivers/bus/dpaa/base/qbman/qman.c                | 2497 +++++++++++++++++++++
 drivers/bus/dpaa/base/qbman/qman.h                |  888 ++++++++
 drivers/bus/dpaa/base/qbman/qman_driver.c         |  288 +++
 drivers/bus/dpaa/base/qbman/qman_priv.h           |  310 +++
 drivers/bus/dpaa/dpaa_bus.c                       |  465 ++++
 drivers/bus/dpaa/include/compat.h                 |  385 ++++
 drivers/bus/dpaa/include/dpaa_bits.h              |   65 +
 drivers/bus/dpaa/include/dpaa_list.h              |  101 +
 drivers/bus/dpaa/include/dpaa_rbtree.h            |  143 ++
 drivers/bus/dpaa/include/fman.h                   |  458 ++++
 drivers/bus/dpaa/include/fsl_bman.h               |  375 ++++
 drivers/bus/dpaa/include/fsl_fman.h               |  181 ++
 drivers/bus/dpaa/include/fsl_fman_crc64.h         |  263 +++
 drivers/bus/dpaa/include/fsl_qman.h               | 2021 +++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h                |  107 +
 drivers/bus/dpaa/include/netcfg.h                 |   96 +
 drivers/bus/dpaa/include/of.h                     |  190 ++
 drivers/bus/dpaa/include/process.h                |  107 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map         |   57 +
 drivers/bus/dpaa/rte_dpaa_bus.h                   |  173 ++
 drivers/bus/dpaa/rte_dpaa_logs.h                  |  107 +
 drivers/mempool/Makefile                          |    2 +
 drivers/mempool/dpaa/Makefile                     |   58 +
 drivers/mempool/dpaa/dpaa_mempool.c               |  286 +++
 drivers/mempool/dpaa/dpaa_mempool.h               |   77 +
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map |    8 +
 drivers/net/Makefile                              |    2 +
 drivers/net/dpaa/Makefile                         |   61 +
 drivers/net/dpaa/dpaa_ethdev.c                    | 1112 +++++++++
 drivers/net/dpaa/dpaa_ethdev.h                    |  182 ++
 drivers/net/dpaa/dpaa_rxtx.c                      |  760 +++++++
 drivers/net/dpaa/dpaa_rxtx.h                      |  297 +++
 drivers/net/dpaa/rte_pmd_dpaa_version.map         |    4 +
 mk/machine/dpaa/rte.vars.mk                       |   61 +
 mk/rte.app.mk                                     |    6 +
 55 files changed, 16762 insertions(+)
 create mode 100644 config/defconfig_arm64-dpaa-linuxapp-gcc
 create mode 100644 doc/guides/nics/dpaa.rst
 create mode 100644 doc/guides/nics/features/dpaa.ini
 create mode 100644 drivers/bus/dpaa/Makefile
 create mode 100644 drivers/bus/dpaa/base/fman/fman.c
 create mode 100644 drivers/bus/dpaa/base/fman/fman_hw.c
 create mode 100644 drivers/bus/dpaa/base/fman/netcfg_layer.c
 create mode 100644 drivers/bus/dpaa/base/fman/of.c
 create mode 100644 drivers/bus/dpaa/base/qbman/bman.c
 create mode 100644 drivers/bus/dpaa/base/qbman/bman.h
 create mode 100644 drivers/bus/dpaa/base/qbman/bman_driver.c
 create mode 100644 drivers/bus/dpaa/base/qbman/bman_priv.h
 create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_alloc.c
 create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_sys.c
 create mode 100644 drivers/bus/dpaa/base/qbman/dpaa_sys.h
 create mode 100644 drivers/bus/dpaa/base/qbman/process.c
 create mode 100644 drivers/bus/dpaa/base/qbman/qman.c
 create mode 100644 drivers/bus/dpaa/base/qbman/qman.h
 create mode 100644 drivers/bus/dpaa/base/qbman/qman_driver.c
 create mode 100644 drivers/bus/dpaa/base/qbman/qman_priv.h
 create mode 100644 drivers/bus/dpaa/dpaa_bus.c
 create mode 100644 drivers/bus/dpaa/include/compat.h
 create mode 100644 drivers/bus/dpaa/include/dpaa_bits.h
 create mode 100644 drivers/bus/dpaa/include/dpaa_list.h
 create mode 100644 drivers/bus/dpaa/include/dpaa_rbtree.h
 create mode 100644 drivers/bus/dpaa/include/fman.h
 create mode 100644 drivers/bus/dpaa/include/fsl_bman.h
 create mode 100644 drivers/bus/dpaa/include/fsl_fman.h
 create mode 100644 drivers/bus/dpaa/include/fsl_fman_crc64.h
 create mode 100644 drivers/bus/dpaa/include/fsl_qman.h
 create mode 100644 drivers/bus/dpaa/include/fsl_usd.h
 create mode 100644 drivers/bus/dpaa/include/netcfg.h
 create mode 100644 drivers/bus/dpaa/include/of.h
 create mode 100644 drivers/bus/dpaa/include/process.h
 create mode 100644 drivers/bus/dpaa/rte_bus_dpaa_version.map
 create mode 100644 drivers/bus/dpaa/rte_dpaa_bus.h
 create mode 100644 drivers/bus/dpaa/rte_dpaa_logs.h
 create mode 100644 drivers/mempool/dpaa/Makefile
 create mode 100644 drivers/mempool/dpaa/dpaa_mempool.c
 create mode 100644 drivers/mempool/dpaa/dpaa_mempool.h
 create mode 100644 drivers/mempool/dpaa/rte_mempool_dpaa_version.map
 create mode 100644 drivers/net/dpaa/Makefile
 create mode 100644 drivers/net/dpaa/dpaa_ethdev.c
 create mode 100644 drivers/net/dpaa/dpaa_ethdev.h
 create mode 100644 drivers/net/dpaa/dpaa_rxtx.c
 create mode 100644 drivers/net/dpaa/dpaa_rxtx.h
 create mode 100644 drivers/net/dpaa/rte_pmd_dpaa_version.map
 create mode 100644 mk/machine/dpaa/rte.vars.mk

-- 
2.9.3



More information about the dev mailing list