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