From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hemant Agrawal Subject: Re: [PATCH 00/32] NXP DPAA2 PMD Date: Wed, 7 Dec 2016 15:23:21 +0530 Message-ID: <3d641617-3db3-d84c-8617-69f102ccb83f@nxp.com> References: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> <32d28626-8f6e-a12e-7e98-433e81355c18@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit Cc: , , To: Ferruh Yigit , Return-path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0079.outbound.protection.outlook.com [104.47.38.79]) by dpdk.org (Postfix) with ESMTP id 888502BA8 for ; Wed, 7 Dec 2016 10:53:29 +0100 (CET) In-Reply-To: <32d28626-8f6e-a12e-7e98-433e81355c18@intel.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/7/2016 1:18 AM, Ferruh Yigit wrote: > On 12/4/2016 6:16 PM, Hemant Agrawal wrote: >> The patch series adds NXP’s QorIQ-Layerscape DPAA2 Architecture based >> 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 [2], 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. (Patch 0001) DPAA2 Architecture overview document >> 2. (Patches 0002-0007) Common dpaa2 hw accelerator drivers for MC and QBMAN. >> 3. (Patch 0008) Enabling crc in armv8 core machine type >> 4. (Patch 0009) Adding rte_device in rte_eth_dev >> 5. (Patches 0010-0013) introduce DPAA2 bus and VFIO routines >> 6. (Patches 0014-0017) dpio and dpbp object drivers >> 7. (Patches 0018-0027) Support for DPAA2 Ethernet Device (ethdev) >> 8. (Patches 0028-0032) Additional functionality in DPAA2 ethdev. >> >> The following design decisions are made during development: >> >> 1. DPAA2 implements a new bus called "dpaa2" and some common accelerator drivers. >> These drivers will be shared with dpaa2 based crypto drivers. >> - For this, patch series from Shreyansh [1] has been used for creating a >> bus handler. >> - For the purpose of this bus, rte_dpaa2_device/rte_dpaa2_driver might >> also be required but they are not part of the first patch series. >> Currently, rte_device/driver are being directly used as a PoC. >> >> 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) and SDK (software/BSP) is required. >> Information about obtaining relevant software is available in the docs >> as part of the patch. >> - At present the series has limited support for Ethernet functions. But, >> more functionality would be made available in a phased manner. >> - This PMD has been validated over the Bus Model [1] and SoC Patchset [3] > > Just to clarify this patchset depends other patchset, although mentioned > above, it is good to have links for dependent patches: > > Dependencies: > > - [4] > > [4] http://dpdk.org/dev/patchwork/patch/17620/ Thanks for pointing. I missed it. > >> >> >> [1] http://dpdk.org/ml/archives/dev/2016-December/051349.html >> [2] https://www.kernel.org/doc/readme/drivers-staging-fsl-mc-README.txt >> [3] http://dpdk.org/ml/archives/dev/2016-October/048949.html >> >> >> Hemant Agrawal (32): >> doc: add dpaa2 nic details >> drivers/common: introducing dpaa2 mc driver >> drivers/common/dpaa2: add mc dpni object support >> drivers/common/dpaa2: add mc dpio object support >> drivers/common/dpaa2: add mc dpbp object support >> drivers/common/dpaa2: add mc dpseci object support >> drivers/common/dpaa2: adding qbman driver >> mk/dpaa2: add the crc support to the machine type >> lib/ether: add rte_device in rte_eth_dev >> net/dpaa2: introducing dpaa2 bus driver for fsl-mc bus >> net/dpaa2: add dpaa2 vfio support >> net/dpaa2: vfio scan for net and sec device >> net/dpaa2: add debug log macros >> net/dpaa2: dpio object driver >> net/dpaa2: dpio routine to affine to crypto threads >> net/dpaa2: dpio add support to check SOC type >> net/dpaa2: dpbp based mempool hw offload driver >> net/dpaa2: introducing dpaa2 pmd driver >> net/dpaa2: adding eth ops to dpaa2 >> net/dpaa2: add queue configuration support >> net/dpaa2: add rss flow distribution >> net/dpaa2: configure mac address at init >> net/dpaa2: attach the buffer pool to dpni >> net/dpaa2: add support for l3 and l4 checksum offload >> net/dpaa2: add support for promiscuous mode >> net/dpaa2: add mtu config support >> net/dpaa2: add packet rx and tx support >> net/dpaa2: add support for physical address usages >> net/dpaa2: rx packet parsing and packet type support >> net/dpaa2: frame queue based dq storage alloc >> net/dpaa2: add support for non hw buffer pool packet transmit >> net/dpaa2: enable stashing for LS2088A devices >> >> config/defconfig_arm64-dpaa2-linuxapp-gcc | 15 +- >> doc/guides/nics/dpaa2.rst | 537 +++++++ >> doc/guides/nics/features/dpaa2.ini | 16 + >> doc/guides/nics/index.rst | 1 + >> drivers/Makefile | 1 + >> drivers/common/Makefile | 36 + >> drivers/common/dpaa2/Makefile | 37 + >> drivers/common/dpaa2/mc/Makefile | 57 + >> drivers/common/dpaa2/mc/dpaa2_mc_version.map | 4 + >> drivers/common/dpaa2/mc/dpbp.c | 230 +++ >> drivers/common/dpaa2/mc/dpio.c | 272 ++++ >> drivers/common/dpaa2/mc/dpni.c | 667 +++++++++ >> drivers/common/dpaa2/mc/dpseci.c | 527 +++++++ >> drivers/common/dpaa2/mc/fsl_dpbp.h | 220 +++ >> drivers/common/dpaa2/mc/fsl_dpbp_cmd.h | 76 + >> drivers/common/dpaa2/mc/fsl_dpio.h | 275 ++++ >> drivers/common/dpaa2/mc/fsl_dpio_cmd.h | 114 ++ >> drivers/common/dpaa2/mc/fsl_dpkg.h | 177 +++ >> drivers/common/dpaa2/mc/fsl_dpni.h | 1076 ++++++++++++++ >> drivers/common/dpaa2/mc/fsl_dpni_cmd.h | 301 ++++ >> drivers/common/dpaa2/mc/fsl_dpseci.h | 661 +++++++++ >> drivers/common/dpaa2/mc/fsl_dpseci_cmd.h | 248 ++++ >> drivers/common/dpaa2/mc/fsl_mc_cmd.h | 231 +++ >> drivers/common/dpaa2/mc/fsl_mc_sys.h | 98 ++ >> drivers/common/dpaa2/mc/fsl_net.h | 480 +++++++ >> drivers/common/dpaa2/mc/mc_sys.c | 126 ++ >> drivers/common/dpaa2/qbman/Makefile | 55 + >> drivers/common/dpaa2/qbman/dpaa2_qbman_version.map | 4 + >> drivers/common/dpaa2/qbman/include/compat.h | 550 ++++++++ >> .../common/dpaa2/qbman/include/fsl_qbman_base.h | 157 +++ >> .../common/dpaa2/qbman/include/fsl_qbman_portal.h | 1089 +++++++++++++++ >> drivers/common/dpaa2/qbman/qbman_portal.c | 1476 ++++++++++++++++++++ >> drivers/common/dpaa2/qbman/qbman_portal.h | 269 ++++ >> drivers/common/dpaa2/qbman/qbman_private.h | 164 +++ >> drivers/common/dpaa2/qbman/qbman_sys.h | 375 +++++ >> drivers/common/dpaa2/qbman/qbman_sys_decl.h | 69 + >> drivers/net/Makefile | 2 +- >> drivers/net/dpaa2/Makefile | 73 + >> drivers/net/dpaa2/base/dpaa2_hw_dpbp.c | 367 +++++ >> drivers/net/dpaa2/base/dpaa2_hw_dpbp.h | 101 ++ >> drivers/net/dpaa2/base/dpaa2_hw_dpio.c | 513 +++++++ >> drivers/net/dpaa2/base/dpaa2_hw_dpio.h | 76 + >> drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 343 +++++ >> drivers/net/dpaa2/base/dpaa2_hw_dpni.h | 86 ++ >> drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h | 256 ++++ >> drivers/net/dpaa2/base/dpaa2_hw_pvt.h | 235 ++++ >> drivers/net/dpaa2/dpaa2_bus.c | 170 +++ >> drivers/net/dpaa2/dpaa2_ethdev.c | 723 ++++++++++ >> drivers/net/dpaa2/dpaa2_ethdev.h | 41 + >> drivers/net/dpaa2/dpaa2_logs.h | 77 + >> drivers/net/dpaa2/dpaa2_rxtx.c | 419 ++++++ >> drivers/net/dpaa2/dpaa2_vfio.c | 561 ++++++++ >> drivers/net/dpaa2/dpaa2_vfio.h | 74 + >> drivers/net/dpaa2/rte_dpaa2.h | 121 ++ >> drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 4 + >> lib/librte_ether/rte_ethdev.h | 1 + >> mk/machine/dpaa2/rte.vars.mk | 5 +- >> mk/rte.app.mk | 1 + >> 58 files changed, 14936 insertions(+), 4 deletions(-) >> create mode 100644 doc/guides/nics/dpaa2.rst >> create mode 100644 doc/guides/nics/features/dpaa2.ini >> create mode 100644 drivers/common/Makefile >> create mode 100644 drivers/common/dpaa2/Makefile >> create mode 100644 drivers/common/dpaa2/mc/Makefile >> create mode 100644 drivers/common/dpaa2/mc/dpaa2_mc_version.map >> create mode 100644 drivers/common/dpaa2/mc/dpbp.c >> create mode 100644 drivers/common/dpaa2/mc/dpio.c >> create mode 100644 drivers/common/dpaa2/mc/dpni.c >> create mode 100644 drivers/common/dpaa2/mc/dpseci.c >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpbp.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpbp_cmd.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpio.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpio_cmd.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpkg.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpni.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpni_cmd.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpseci.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_dpseci_cmd.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_mc_cmd.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_mc_sys.h >> create mode 100644 drivers/common/dpaa2/mc/fsl_net.h >> create mode 100644 drivers/common/dpaa2/mc/mc_sys.c >> create mode 100644 drivers/common/dpaa2/qbman/Makefile >> create mode 100644 drivers/common/dpaa2/qbman/dpaa2_qbman_version.map >> create mode 100644 drivers/common/dpaa2/qbman/include/compat.h >> create mode 100644 drivers/common/dpaa2/qbman/include/fsl_qbman_base.h >> create mode 100644 drivers/common/dpaa2/qbman/include/fsl_qbman_portal.h >> create mode 100644 drivers/common/dpaa2/qbman/qbman_portal.c >> create mode 100644 drivers/common/dpaa2/qbman/qbman_portal.h >> create mode 100644 drivers/common/dpaa2/qbman/qbman_private.h >> create mode 100644 drivers/common/dpaa2/qbman/qbman_sys.h >> create mode 100644 drivers/common/dpaa2/qbman/qbman_sys_decl.h >> create mode 100644 drivers/net/dpaa2/Makefile >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpbp.c >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpbp.h >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpio.c >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpio.h >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpni.c >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpni.h >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_dpni_annot.h >> create mode 100644 drivers/net/dpaa2/base/dpaa2_hw_pvt.h >> create mode 100644 drivers/net/dpaa2/dpaa2_bus.c >> create mode 100644 drivers/net/dpaa2/dpaa2_ethdev.c >> create mode 100644 drivers/net/dpaa2/dpaa2_ethdev.h >> create mode 100644 drivers/net/dpaa2/dpaa2_logs.h >> create mode 100644 drivers/net/dpaa2/dpaa2_rxtx.c >> create mode 100644 drivers/net/dpaa2/dpaa2_vfio.c >> create mode 100644 drivers/net/dpaa2/dpaa2_vfio.h >> create mode 100644 drivers/net/dpaa2/rte_dpaa2.h >> create mode 100644 drivers/net/dpaa2/rte_pmd_dpaa2_version.map >> > >