[dpdk-dev] [PATCH v3 00/21] NXP DPAA2 FSLMC Bus driver
Hemant Agrawal
hemant.agrawal at nxp.com
Sun Apr 9 09:50:03 CEST 2017
From: Hemant Agrawal <b10814 at rhuath-build.am.freescale.net>
(This patches has been split from DPAA2 PMD v8 series [1] as per
comments received on ML [2].)
The patchset introduces NXP’s QorIQ-Layerscape DPAA2 Architecture based
fsl-mc bus driver. This version of the driver supports NXP LS208xA,
LS204xA and LS108x family of Network SoCs.
This driver is base for DPAA2 based PMD to be introduced in later patches.
It will be used by dpaa2 net, crypto, event & other devices.
The details description of this bus along with PMD is part of later patch
sets for introducing the NXP DPAA2 PMD.
There are 3 main components of the FSLMC bus which enable the access to
DPAA2 devices from userspace:
1) QBMAN hardware: Which enables application lock-less access to hardware
queues and buffers.
2) MC or Management Complex: Layer between Userspace and elements on the
FSLMC bus. This layer exposes underlying hardware as 'objects' and
allows for their configuration. Some of the key objects exposed 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
3) Portal: For accessing the hardware objects exposed by MC, a continuous
mapped area is available in form of objects.
This patchset introduces the above components.
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] http://dpdk.org/ml/archives/dev/2017-March/059000.html
[2] http://dpdk.org/ml/archives/dev/2017-March/059789.html
---
v3:
* rebased on master (17.05-rc1)
* error handling in scan & probe
v2:
* rebased on next-net (b36be54c)
* removing "-Wno-strict-alias" from makefile
Hemant Agrawal (21):
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
bus/fslmc: add debug log support
bus/fslmc: dpio portal driver
bus/fslmc: introduce support for hardware mempool object
bus/fslmc: affine dpio to crypto threads
bus/fslmc: define queues for DPAA2 devices
bus/fslmc: define hardware annotation area size
bus/fslmc: introduce true and false macros
bus/fslmc: define VLAN header length
bus/fslmc: add packet FLE definitions
bus/fslmc: add physical-virtual address translation helpers
bus/fslmc: add support for DMA mapping for ARM SMMU
bus/fslmc: frame queue based dq storage alloc
MAINTAINERS | 4 +
config/common_base | 5 +
config/defconfig_arm64-dpaa2-linuxapp-gcc | 8 +-
drivers/Makefile | 1 +
drivers/bus/Makefile | 39 +
drivers/bus/fslmc/Makefile | 75 +
drivers/bus/fslmc/fslmc_bus.c | 141 ++
drivers/bus/fslmc/fslmc_logs.h | 76 +
drivers/bus/fslmc/fslmc_vfio.c | 642 +++++++++
drivers/bus/fslmc/fslmc_vfio.h | 82 ++
drivers/bus/fslmc/mc/dpbp.c | 261 ++++
drivers/bus/fslmc/mc/dpio.c | 279 ++++
drivers/bus/fslmc/mc/fsl_dpbp.h | 241 ++++
drivers/bus/fslmc/mc/fsl_dpbp_cmd.h | 88 ++
drivers/bus/fslmc/mc/fsl_dpio.h | 282 ++++
drivers/bus/fslmc/mc/fsl_dpio_cmd.h | 122 ++
drivers/bus/fslmc/mc/fsl_mc_cmd.h | 239 ++++
drivers/bus/fslmc/mc/fsl_mc_sys.h | 105 ++
drivers/bus/fslmc/mc/mc_sys.c | 114 ++
drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c | 137 ++
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 443 ++++++
drivers/bus/fslmc/portal/dpaa2_hw_dpio.h | 70 +
drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 245 ++++
drivers/bus/fslmc/qbman/include/compat.h | 406 ++++++
drivers/bus/fslmc/qbman/include/fsl_qbman_base.h | 160 +++
drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h | 1093 ++++++++++++++
drivers/bus/fslmc/qbman/qbman_portal.c | 1496 ++++++++++++++++++++
drivers/bus/fslmc/qbman/qbman_portal.h | 277 ++++
drivers/bus/fslmc/qbman/qbman_private.h | 170 +++
drivers/bus/fslmc/qbman/qbman_sys.h | 385 +++++
drivers/bus/fslmc/qbman/qbman_sys_decl.h | 73 +
drivers/bus/fslmc/rte_bus_fslmc_version.map | 50 +
drivers/bus/fslmc/rte_fslmc.h | 148 ++
lib/librte_eal/bsdapp/eal/rte_eal_version.map | 3 +
lib/librte_eal/linuxapp/eal/rte_eal_version.map | 3 +
mk/machine/dpaa2/rte.vars.mk | 5 +-
36 files changed, 7965 insertions(+), 3 deletions(-)
create mode 100644 drivers/bus/Makefile
create mode 100644 drivers/bus/fslmc/Makefile
create mode 100644 drivers/bus/fslmc/fslmc_bus.c
create mode 100644 drivers/bus/fslmc/fslmc_logs.h
create mode 100644 drivers/bus/fslmc/fslmc_vfio.c
create mode 100644 drivers/bus/fslmc/fslmc_vfio.h
create mode 100644 drivers/bus/fslmc/mc/dpbp.c
create mode 100644 drivers/bus/fslmc/mc/dpio.c
create mode 100644 drivers/bus/fslmc/mc/fsl_dpbp.h
create mode 100644 drivers/bus/fslmc/mc/fsl_dpbp_cmd.h
create mode 100644 drivers/bus/fslmc/mc/fsl_dpio.h
create mode 100644 drivers/bus/fslmc/mc/fsl_dpio_cmd.h
create mode 100644 drivers/bus/fslmc/mc/fsl_mc_cmd.h
create mode 100644 drivers/bus/fslmc/mc/fsl_mc_sys.h
create mode 100644 drivers/bus/fslmc/mc/mc_sys.c
create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpbp.c
create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpio.c
create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_dpio.h
create mode 100644 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
create mode 100644 drivers/bus/fslmc/qbman/include/compat.h
create mode 100644 drivers/bus/fslmc/qbman/include/fsl_qbman_base.h
create mode 100644 drivers/bus/fslmc/qbman/include/fsl_qbman_portal.h
create mode 100644 drivers/bus/fslmc/qbman/qbman_portal.c
create mode 100644 drivers/bus/fslmc/qbman/qbman_portal.h
create mode 100644 drivers/bus/fslmc/qbman/qbman_private.h
create mode 100644 drivers/bus/fslmc/qbman/qbman_sys.h
create mode 100644 drivers/bus/fslmc/qbman/qbman_sys_decl.h
create mode 100644 drivers/bus/fslmc/rte_bus_fslmc_version.map
create mode 100644 drivers/bus/fslmc/rte_fslmc.h
--
2.1.4
More information about the dev
mailing list