[dpdk-dev] [PATCHv8 00/46] NXP DPAA2 PMD

Ferruh Yigit 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 [1], 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.
> 
> Prerequisites:
>  - 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.
> 
> 
> References:
> [1] https://www.kernel.org/doc/readme/drivers-staging-fsl-mc-README.txt
> 
> ---
> v8:
> * 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
> 
> v7:
> * 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
> 
> v6:
> * 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 
> 
> v5:
> * rebased over master (6818a7f4)
> 
> v4:
> * rebased over master (1feda4d8) and patches from Shreyansh [1] for Bus Arch.
> 
> v3:
> * rebased over master (eac901ce2) and patches from Shreyansh [1] 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
> 
> v2:
> * 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

Hi Hemant,

Did you able to find a chance to check Jan Blunck's eth_driver [1]
patchset. I remember in previous versions of this patchset there was a
eth_driver update too.

Perhaps dpaa2 can benefit from those updates?

Thanks,
ferruh

[1]
http://dpdk.org/ml/archives/dev/2017-March/059376.html



More information about the dev mailing list