DPDK patches and discussions
 help / color / mirror / Atom feed
From: Shreyansh Jain <shreyansh.jain@nxp.com>
To: <dev@dpdk.org>
Cc: <ferruh.yigit@intel.com>, <hemant.agrawal@nxp.com>
Subject: [dpdk-dev] [RFC Patch 00/39] Introduce NXP DPAA Bus, Mempool and PMD
Date: Sat, 27 May 2017 15:54:56 +0530	[thread overview]
Message-ID: <1495880735-1651-1-git-send-email-shreyansh.jain@nxp.com> (raw)

Series based on net-next/master (8c79ce3)

:: This is an RFC! ::

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

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: A dependency patch [D1]
02: Add EAL support for 24, 40 and 48 bit operations
03~18: Add DPAA Bus support and features, incrementally
19: Add Documentation
20~22: Add DPAA Mempool support
23~39: Add PMD and its various features, incrementally

Pending
=======
1. Some patches have potential for further breakup
2. There are some checkpatch errors - some which can be removed, and others
   which might have to be ignored.
3. There may be some signoff/authorship changes in subsequent series.

Dependency
==========

This patch is dependent on:

[D1] Patch: http://dpdk.org/dev/patchwork/patch/24478/
     This patch adds macro for Bus logging to RTE logging framework

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

Hemant Agrawal (2):
  eal: add support for 24 40 and 48 bit operations
  bus/dpaa: add compatibility and helper macros

Shreyansh Jain (37):
  eal: add Bus log type
  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: add support for FMAN frame queue lookup
  bus/dpaa: add BMan hardware interfaces
  bus/dpaa: add fman flow control threshold setting
  bus/dpaa: integrate DPAA Bus driver with hardware drivers
  doc: add NXP DPAA PMD documentation
  mempool/dpaa: add support for NXP DPAA Mempool
  drivers: enable compilation of NXP DPAA Mempool driver
  maintainers: claim ownership of NXP DPAA Mempool driver
  net/dpaa: add NXP DPAA PMD driver skeleton
  config: enable NXP DPAA PMD compilation
  net/dpaa: add support for Tx and Rx queue setup
  net/dpaa: add support for MTU update
  net/dpaa: add support for link status update
  net/dpaa: add support for jumbo frames
  net/dpaa: add support for promiscuous toggle
  net/dpaa: add support for multicast toggle
  net/dpaa: add support for basic stats
  net/dpaa: add support for device info
  net/dpaa: support for checksum offload
  net/dpaa: add support for hashed RSS
  net/dpaa: add support for MAC address update
  net/dpaa: add support for packet type parsing
  net/dpaa: add support for Scattered Rx
  net/dpaa: add support for flow control
  net/dpaa: add packet dump for debugging

 MAINTAINERS                                        |    9 +
 config/common_base                                 |    3 +
 config/defconfig_arm64-dpaa-linuxapp-gcc           |   63 +
 doc/guides/nics/dpaa.rst                           |  360 +++
 doc/guides/nics/features/dpaa.ini                  |   22 +
 doc/guides/nics/index.rst                          |    1 +
 drivers/bus/Makefile                               |    3 +
 drivers/bus/dpaa/Makefile                          |   84 +
 drivers/bus/dpaa/base/fman/fman.c                  |  537 +++++
 drivers/bus/dpaa/base/fman/fman_hw.c               |  634 +++++
 drivers/bus/dpaa/base/fman/netcfg_layer.c          |  205 ++
 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             |   65 +
 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            |  314 +++
 drivers/bus/dpaa/dpaa_bus.c                        |  431 ++++
 drivers/bus/dpaa/include/compat.h                  |  330 +++
 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                    |  475 ++++
 drivers/bus/dpaa/include/fsl_bman.h                |  375 +++
 drivers/bus/dpaa/include/fsl_fman.h                |  189 ++
 drivers/bus/dpaa/include/fsl_fman_crc64.h          |  263 +++
 drivers/bus/dpaa/include/fsl_qman.h                | 2038 ++++++++++++++++
 drivers/bus/dpaa/include/fsl_usd.h                 |  107 +
 drivers/bus/dpaa/include/netcfg.h                  |   96 +
 drivers/bus/dpaa/include/of.h                      |  191 ++
 drivers/bus/dpaa/include/process.h                 |  107 +
 drivers/bus/dpaa/rte_bus_dpaa_version.map          |   46 +
 drivers/bus/dpaa/rte_dpaa_bus.h                    |  175 ++
 drivers/bus/dpaa/rte_dpaa_logs.h                   |   95 +
 drivers/mempool/Makefile                           |    2 +
 drivers/mempool/dpaa/Makefile                      |   65 +
 drivers/mempool/dpaa/dpaa_mempool.c                |  265 +++
 drivers/mempool/dpaa/dpaa_mempool.h                |   78 +
 drivers/mempool/dpaa/rte_mempool_dpaa_version.map  |    6 +
 drivers/net/Makefile                               |    2 +
 drivers/net/dpaa/Makefile                          |   68 +
 drivers/net/dpaa/dpaa_ethdev.c                     |  872 +++++++
 drivers/net/dpaa/dpaa_ethdev.h                     |  158 ++
 drivers/net/dpaa/dpaa_rxtx.c                       |  668 ++++++
 drivers/net/dpaa/dpaa_rxtx.h                       |  216 ++
 drivers/net/dpaa/rte_pmd_dpaa_version.map          |    4 +
 .../common/include/generic/rte_byteorder.h         |   78 +
 lib/librte_eal/common/include/rte_log.h            |    1 +
 mk/machine/dpaa/rte.vars.mk                        |   61 +
 mk/rte.app.mk                                      |    6 +
 57 files changed, 16289 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.7.4

             reply	other threads:[~2017-05-27 10:17 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-27 10:24 Shreyansh Jain [this message]
2017-05-27 10:24 ` [dpdk-dev] [RFC Patch 01/39] eal: add Bus log type Shreyansh Jain
2017-05-27 10:28   ` Shreyansh Jain
2017-05-27 10:24 ` [dpdk-dev] [RFC Patch 02/39] eal: add support for 24 40 and 48 bit operations Shreyansh Jain
2017-05-27 10:24 ` [dpdk-dev] [RFC Patch 03/39] config: add NXP DPAA SoC build configuration Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 04/39] bus/dpaa: introduce NXP DPAA Bus driver skeleton Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 05/39] bus/dpaa: add compatibility and helper macros Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 06/39] bus/dpaa: add OF parser for device scanning Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 07/39] bus/dpaa: introducing FMan configurations Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 08/39] bus/dpaa: add FMan hardware operations Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 09/39] bus/dpaa: enable DPAA IOCTL portal driver Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 10/39] bus/dpaa: add layer for interrupt emulation using pthread Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 11/39] bus/dpaa: add routines for managing a RB tree Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 12/39] bus/dpaa: add QMAN interface driver Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 13/39] bus/dpaa: add QMan driver core routines Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 14/39] bus/dpaa: add BMAN driver core Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 15/39] bus/dpaa: add support for FMAN frame queue lookup Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 16/39] bus/dpaa: add BMan hardware interfaces Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 17/39] bus/dpaa: add fman flow control threshold setting Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 18/39] bus/dpaa: integrate DPAA Bus with hardware blocks Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 19/39] doc: add NXP DPAA PMD documentation Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 20/39] mempool/dpaa: add support for NXP DPAA Mempool Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 21/39] drivers: enable compilation of DPAA Mempool driver Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 22/39] maintainers: claim ownership " Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 23/39] net/dpaa: add NXP DPAA PMD driver skeleton Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 24/39] config: enable NXP DPAA PMD compilation Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 25/39] net/dpaa: add support for Tx and Rx queue setup Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 26/39] net/dpaa: add support for MTU update Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 27/39] net/dpaa: add support for link status update Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 28/39] net/dpaa: add support for jumbo frames Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 29/39] net/dpaa: add support for promiscuous toggle Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 30/39] net/dpaa: add support for multicast toggle Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 31/39] net/dpaa: add support for basic stats Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 32/39] net/dpaa: add support for device info Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 33/39] net/dpaa: support for checksum offload Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 34/39] net/dpaa: add support for hashed RSS Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 35/39] net/dpaa: add support for MAC address update Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 36/39] net/dpaa: add support for packet type parsing Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 37/39] net/dpaa: add support for Scattered Rx Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 38/39] net/dpaa: add support for flow control Shreyansh Jain
2017-05-27 10:25 ` [dpdk-dev] [RFC Patch 39/39] net/dpaa: add packet dump for debugging Shreyansh Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1495880735-1651-1-git-send-email-shreyansh.jain@nxp.com \
    --to=shreyansh.jain@nxp.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=hemant.agrawal@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).