[dpdk-dev] [PATCHv8 00/46] NXP DPAA2 PMD
ferruh.yigit at intel.com
Tue Mar 7 18:00:36 CET 2017
On 3/3/2017 12:46 PM, Hemant Agrawal wrote:
> The patch series adds NXP’s QorIQ-Layerscape DPAA2 Architecture based
> fsl-mc bus driver and network SoC PMD. This version of the driver
> supports NXP LS208xA, LS204xA and LS108x families Network SoCs.
> DPAA2, or Data Path Acceleration Architecture, is a hardware architecture
> designed for high-speed network packet processing. It uses a bus name
> ‘fsl-mc’, part of Linux Kernel Staging tree , for resource management.
> A brief description of architecture is given below; detailed description
> is part of the documentation in the patches itself.
> DPAA2 contains hardware component called the Management Complex (or MC).
> It manages the DPAA2 hardware resources. The MC provides an object-based
> abstraction for software drivers to use the DPAA2 hardware.
> Some of the key objects are:
> - DPNI, which refers to the network interface object.
> - DPBP, which refers to HW based memory pool object
> - DPIO, refers to processing context for accessing QBMAN
> Besides the MC, DPAA2 also includes a Hardware based Queue and Buffer Manager
> called QBMAN. Prime responsibility of QBMAN is to allow lockless access to
> software/user-space to the queues and buffers implemented in the hardware.
> The patch series could be logically structured into following sub-areas:
> 1. Make file changes for crc in armv8 core machine type and driver dependency
> 2. Indroducing fsl-mc bus as rte_bus, it's componenets.
> 3. Introducing dpaa2 pmd driver
> 4. Introducing dpaa2 mempool
> 5. Support for DPAA2 Ethernet Device (ethdev)
> 6. Additional functionality in DPAA2 ethdev.
> The following design decisions are made during development:
> 1. DPAA2 implements a new bus called "fsl-mc" and some common accelerator drivers.
> These drivers will be shared with dpaa2 based crypto drivers.
> 2. DPAA2 implements the HW mempool offload with DPBP object.
> - The new pool is being configured using compile time option and pool name
> as "dpaa2".
> 3. It maintains per lcore DPIO objects and affine the DPIO instance to the
> processing threads accessing the QBMAN HW.
> - For running the PMD, NXP's SoC (board) is required.
> Information about obtaining relevant software is available in the docs
> as part of the patch.
> Future Changes/Caveats:
> 1. VFIO code for fsl-mc bus is different than eal-vfio code for pci bus.
> This need to be re-worked to make possible re-use of the existing code.
>  https://www.kernel.org/doc/readme/drivers-staging-fsl-mc-README.txt
> * rebased over master (17.02: 35b09d76)
> * Removed all drivers/common/* code and moved to drivers/bus/fslmc
> * Updated documentation to remove non-open source dependency
> * Reduced shared symbols in map files
> * rebased over master (17.02)
> * fix the shared lib compilation
> * re partitiion the patches as per Ferruh comments.
> * handling Ferruh's comment for NXP dpaa2 driver
> * rebased over master (61207d0)
> * removing DPAA2_COMMON as configurable option
> * renaming drivers bus, pool libraries removing 'pmd'
> * Headers of Licenses
> * exposed variable renaming with *rte_* prefix
> * handling Ferruh's comment for NXP dpaa2 driver
> * moving around MAINTAINER and DOC file patches
> * rebased over master (6818a7f4)
> * rebased over master (1feda4d8) and patches from Shreyansh  for Bus Arch.
> * rebased over master (eac901ce2) and patches from Shreyansh  for Bus Arch.
> * Fixed comment from John on Patch-0003 for documentation
> * Removed Patch-0001 for rte_device in rte_eth_dev; Already upstreamed through
> another series
> * separated the "fsl-mc" bus from the dpaa2 pmd driver - introduced drivers/bus
> * separated the "dpaa2" hw mempool from dpaa2 pmd driver - introduced drivers/pool
> * removed documentation warnings and missing information.
> * removed arm64 part specific code from driver
> * changed rte_panic to errors
> * reduced checkpatch warnings
> Hemant Agrawal (45):
> mk/dpaa2: add the crc support to the machine type
> bus/fslmc: introducing fsl-mc bus driver
> bus/fslmc: add QBMAN driver to bus
> bus/fslmc: introduce MC object functions
> bus/fslmc: add mc dpio object support
> bus/fslmc: add mc dpbp object support
> eal/vfio: adding vfio utility functions in map file
> bus/fslmc: add vfio support
> bus/fslmc: scan for net and sec device
> net/dpaa2: introducing NXP DPAA2 PMD driver
> doc: add DPAA2 NIC details
> bus/fslmc: add debug log support
> net/dpaa2: add debug log support
> config: enable support for DPAA2 debug logging
> net/dpaa2: add mc dpni object support
> bus/fslmc: dpio portal driver
> bus/fslmc: introduce support for hw mempool object
> pool/dpaa2: add DPAA2 hardware offloaded mempool
> bus/fslmc: affine dpio to crypto threads
> bus/fslmc: define queues for DPAA2 devices
> net/dpaa2: adding eth ops to dpaa2
> net/dpaa2: add RSS flow distribution
> net/dpaa2: configure MAC address at init
> bus/fslmc: define hardware annotation area size
> net/dpaa2: attach the buffer pool to dpni
> bus/fslmc: introduce true and false macros
> net/dpaa2: add support for L3 and L4 checksum offload
> net/dpaa2: add support for promiscuous mode
> bus/fslmc: define VLAN header length
> net/dpaa2: add MTU configuration support
> bus/fslmc: add packet FLE definitions
> net/dpaa2: enable packet Rx and Tx operations
> net/dpaa2: support for Rx packet parsing and packet type
> net/dpaa2: link status update
> net/dpaa2: basic stats support
> net/dpaa2: enable stashing for LS2088A devices
> net/dpaa2: handle non-hardware backed buffer pool
> bus/fslmc: add physical-virtual address translation helpers
> pool/dpaa2: enable physical addressing for pool buffers
> net/dpaa2: enable physical addressing for packet buffers
> config: add configuration for toggling physical addressing
> bus/fslmc: add support for DMA mapping for ARM SMMU
> net/dpaa2: enable DMA Mapping during device scanning
> bus/fslmc: frame queue based dq storage alloc
> net/dpaa2: enable frame queue based dequeuing
> Shreyansh Jain (1):
> mk: handle intra drivers dependencies for shared build
Did you able to find a chance to check Jan Blunck's eth_driver 
patchset. I remember in previous versions of this patchset there was a
eth_driver update too.
Perhaps dpaa2 can benefit from those updates?
More information about the dev