From patchwork Thu Feb 28 07:13:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Xu, Rosen" X-Patchwork-Id: 50613 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0F51C4C95; Thu, 28 Feb 2019 08:15:02 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 3C9624C91 for ; Thu, 28 Feb 2019 08:15:00 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Feb 2019 23:14:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,422,1544515200"; d="scan'208";a="142299721" Received: from dpdkx8602.sh.intel.com ([10.67.110.200]) by orsmga001.jf.intel.com with ESMTP; 27 Feb 2019 23:14:56 -0800 From: Rosen Xu To: dev@dpdk.org Cc: ferruh.yigit@intel.com, tianfei.zhang@intel.com, dan.wei@intel.com, rosen.xu@intel.com, andy.pei@intel.com, qiming.yang@intel.com, haiyue.wang@intel.com, santos.chen@intel.com, zhang.zhang@intel.com Date: Thu, 28 Feb 2019 15:13:09 +0800 Message-Id: <1551338000-120348-1-git-send-email-rosen.xu@intel.com> X-Mailer: git-send-email 1.8.3.1 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v1 00/11] Add patch set for IPN3KE X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch set adds the support of a new net PMD, IntelĀ® FPGA Programmable Acceleration Card N3000, also called ipn3ke. The ipn3ke PMD (librte_pmd_ipn3ke) provides poll mode driver support for IntelĀ® FPGA PAC(Programmable Acceleration Card) N3000 based on the Intel Ethernet Controller X710/XXV710 and Intel Arria 10 FPGA. In this card, FPGA is an acceleration bridge between network interface and the Intel Ethernet Controller. Although both FPGA and Ethernet Controllers are connected to CPU with PCIe Gen3x16 Switch, all the packet RX/TX is handled by Intel Ethernet Controller. So from application point of view the data path is still the legacy Intel Ethernet Controller X710/XXV710 PMD. Besides this, users can enable more acceleration features by FPGA IP. Rosen Xu (10): drivers/bus/ifpga: add AFU shared data drivers/bus/ifpga: add function for AFU search by name drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev drivers/net/ipn3ke: add IPN3KE PMD driver config: add build enablement for IPN3KE mk: add link enablement for IPN3KE app/test-pmd: add IPN3KE support for testpmd usertools: add IPN3KE device bind doc: add IPN3KE document MAINTAINERS: add MAINTAINERS for IPN3KE Tianfei Zhang (1): drivers/raw/ifpga_rawdev: add OPAE share code for IPN3KE MAINTAINERS | 7 + app/test-pmd/Makefile | 4 + config/common_base | 6 + doc/guides/nics/features/ipn3ke.ini | 57 + doc/guides/nics/index.rst | 1 + doc/guides/nics/ipn3ke.rst | 97 + drivers/bus/ifpga/ifpga_bus.c | 13 + drivers/bus/ifpga/rte_bus_ifpga.h | 10 + drivers/net/Makefile | 1 + drivers/net/ipn3ke/Makefile | 33 + drivers/net/ipn3ke/ipn3ke_ethdev.c | 814 +++++++ drivers/net/ipn3ke/ipn3ke_ethdev.h | 742 +++++++ drivers/net/ipn3ke/ipn3ke_flow.c | 1407 +++++++++++++ drivers/net/ipn3ke/ipn3ke_flow.h | 104 + drivers/net/ipn3ke/ipn3ke_logs.h | 30 + drivers/net/ipn3ke/ipn3ke_representor.c | 890 ++++++++ drivers/net/ipn3ke/ipn3ke_tm.c | 2217 ++++++++++++++++++++ drivers/net/ipn3ke/ipn3ke_tm.h | 135 ++ drivers/net/ipn3ke/meson.build | 9 + drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map | 4 + drivers/raw/ifpga_rawdev/base/Makefile | 7 + drivers/raw/ifpga_rawdev/base/ifpga_api.c | 69 +- drivers/raw/ifpga_rawdev/base/ifpga_api.h | 1 + drivers/raw/ifpga_rawdev/base/ifpga_defines.h | 86 +- drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c | 342 ++- drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c | 170 +- drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h | 62 +- drivers/raw/ifpga_rawdev/base/ifpga_fme.c | 373 ++++ drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c | 2 +- drivers/raw/ifpga_rawdev/base/ifpga_hw.h | 21 +- drivers/raw/ifpga_rawdev/base/ifpga_port.c | 21 + drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.c | 89 + drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.h | 14 + drivers/raw/ifpga_rawdev/base/opae_hw_api.c | 189 +- drivers/raw/ifpga_rawdev/base/opae_hw_api.h | 46 +- drivers/raw/ifpga_rawdev/base/opae_i2c.c | 490 +++++ drivers/raw/ifpga_rawdev/base/opae_i2c.h | 127 ++ drivers/raw/ifpga_rawdev/base/opae_intel_max10.c | 106 + drivers/raw/ifpga_rawdev/base/opae_intel_max10.h | 36 + drivers/raw/ifpga_rawdev/base/opae_mdio.c | 542 +++++ drivers/raw/ifpga_rawdev/base/opae_mdio.h | 90 + drivers/raw/ifpga_rawdev/base/opae_osdep.h | 11 +- drivers/raw/ifpga_rawdev/base/opae_phy_group.c | 88 + drivers/raw/ifpga_rawdev/base/opae_phy_group.h | 53 + drivers/raw/ifpga_rawdev/base/opae_spi.c | 260 +++ drivers/raw/ifpga_rawdev/base/opae_spi.h | 120 ++ .../raw/ifpga_rawdev/base/opae_spi_transaction.c | 438 ++++ .../ifpga_rawdev/base/osdep_raw/osdep_generic.h | 1 + .../ifpga_rawdev/base/osdep_rte/osdep_generic.h | 10 + drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 146 +- drivers/raw/ifpga_rawdev/ifpga_rawdev_api.h | 71 + mk/rte.app.mk | 1 + usertools/dpdk-devbind.py | 4 +- 53 files changed, 10348 insertions(+), 319 deletions(-) create mode 100644 doc/guides/nics/features/ipn3ke.ini create mode 100644 doc/guides/nics/ipn3ke.rst create mode 100644 drivers/net/ipn3ke/Makefile create mode 100644 drivers/net/ipn3ke/ipn3ke_ethdev.c create mode 100644 drivers/net/ipn3ke/ipn3ke_ethdev.h create mode 100644 drivers/net/ipn3ke/ipn3ke_flow.c create mode 100644 drivers/net/ipn3ke/ipn3ke_flow.h create mode 100644 drivers/net/ipn3ke/ipn3ke_logs.h create mode 100644 drivers/net/ipn3ke/ipn3ke_representor.c create mode 100644 drivers/net/ipn3ke/ipn3ke_tm.c create mode 100644 drivers/net/ipn3ke/ipn3ke_tm.h create mode 100644 drivers/net/ipn3ke/meson.build create mode 100644 drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map create mode 100644 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_at24_eeprom.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_i2c.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_i2c.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_intel_max10.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_intel_max10.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_mdio.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_mdio.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_phy_group.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_phy_group.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_spi_transaction.c create mode 100644 drivers/raw/ifpga_rawdev/ifpga_rawdev_api.h