From patchwork Mon Oct 21 06:56:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Pei, Andy" X-Patchwork-Id: 61525 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 A8C3D2BC7; Mon, 21 Oct 2019 09:10:13 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 5D83F2AA6 for ; Mon, 21 Oct 2019 09:10:08 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Oct 2019 00:10:04 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,322,1566889200"; d="scan'208";a="200345676" Received: from dpdk-dipei.sh.intel.com ([10.67.110.224]) by orsmga003.jf.intel.com with ESMTP; 21 Oct 2019 00:10:03 -0700 From: Andy Pei To: dev@dpdk.org Cc: rosen.xu@intel.com, tianfei.zhang@intel.com, andy.pei@intel.com, xiaolong.ye@intel.com, qi.z.zhang@intel.com Date: Mon, 21 Oct 2019 14:56:45 +0800 Message-Id: <1571641024-114601-1-git-send-email-andy.pei@intel.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1571639001-106193-2-git-send-email-andy.pei@intel.com> References: <1571639001-106193-2-git-send-email-andy.pei@intel.com> Subject: [dpdk-dev] [PATCH v11 00/19] add PCIe AER disable and IRQ support 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 PCIe AER disable and FPGA interrupt support for ipn3ke. It also provides a small rework for port bonding between FPGA line side port and I40e PF port. What is the PCI Express AER(Advanced Error Reporting)? Advanced Error Reporting capability is implemented with a PCI Express advanced error reporting extended capability structure providing more robust error reporting. It's also one of PCI Express error reporting paradigms. AER is supported by most of PCIe devices. In PAC N3000 card, some uncertainty errors will cause FPGA reload, such as temperature is higher than threshold. From Software point of view, FPGA reload means FPGA unplug and plug. For avoiding system crash we need to clear AER register before these errors occur. Currently PAC N3000 card FME and AFU all provide interrupts, in ifpga rawdev driver, we implement a FME interrupt function to notify errors reported by FME. Besides this, OPAE share code also provide a common AFU interrupt API for users to register their own interrupt functions. v11 updates: ========= - move symbol ifpga_rawdev_ge to the EXPERIMENTAL section of drivers/raw/ifpga/rte_rawdev_ifpga_version.map v10 updates: ========= - introducing new irq API - fix meson build issue v9 updates: ========= - Add mutex lock on do_transaction() function for SPI driver to avoid race condition. v8 updates: ========= - add multiple cards support. v7 updates: ========== - rename function i40e_set_switch_dev to rte_pmd_i40e_set_switch_dev and move it to rte_pmd_i40e.c since it is declared at rte_pmd_i40e.h - function rte_pmd_i40e_set_switch_dev works as an external API, use port_id but not rte_eth_dev as parameter. - add doxygen header here for the new API. - update the rte_pmd_i40e_version.map. - fix coding style issue. - enable CONFIG_RTE_EAL_VFIO in linux environment to build irq support. - for functions with a lot of similarity, extract out common function to reduce duplication. v6 updates: ========= - correct author information. - correct typo in commit message and remove Gerrit Change-Id's before submitting upstream v5 updates: ========== - add lightweight fpga image support. in lightweight fpga image mode, ipn3ke representor will not be probed. v4 updates: =========== - align with new naming standard. v3 updates: =========== - Add FPGA network side port MTU configuration v2 updates: =========== - Add AUX feature support Andy Pei (2): net/i40e: i40e support ipn3ke FPGA port bonding raw/ifpga: add lightweight fpga image support Rosen Xu (3): raw/ifpga: add SEU error handler raw/ifpga: add PCIe BDF devices tree scan net/ipn3ke: remove configuration for i40e port bonding Tianfei zhang (14): raw/ifpga/base: add irq support raw/ifpga/base: clear pending bit raw/ifpga/base: add SEU error support raw/ifpga/base: add device tree support raw/ifpga/base: align the send buffer for SPI raw/ifpga/base: add sensor support raw/ifpga/base: introducing sensor APIs raw/ifpga/base: update SEU register definition raw/ifpga/base: add secure support raw/ifpga/base: configure FEC mode raw/ifpga/base: clean fme errors raw/ifpga/base: add new API get board info raw/ifpga/base: add multiple cards support raw/ifpga: introducing new irq API config/common_base | 4 +- config/common_linux | 6 + drivers/meson.build | 7 +- drivers/net/i40e/base/i40e_type.h | 3 + drivers/net/i40e/i40e_ethdev.c | 6 + drivers/net/i40e/rte_pmd_i40e.c | 21 + drivers/net/i40e/rte_pmd_i40e.h | 18 + drivers/net/i40e/rte_pmd_i40e_version.map | 8 +- drivers/net/ipn3ke/Makefile | 2 + drivers/net/ipn3ke/ipn3ke_ethdev.c | 289 +------- drivers/net/ipn3ke/ipn3ke_representor.c | 8 +- drivers/net/ipn3ke/meson.build | 2 +- drivers/raw/ifpga/base/ifpga_api.c | 21 + drivers/raw/ifpga/base/ifpga_defines.h | 75 +- drivers/raw/ifpga/base/ifpga_feature_dev.c | 59 ++ drivers/raw/ifpga/base/ifpga_feature_dev.h | 3 + drivers/raw/ifpga/base/ifpga_fme.c | 166 ++++- drivers/raw/ifpga/base/ifpga_fme_error.c | 74 +- drivers/raw/ifpga/base/ifpga_hw.h | 2 +- drivers/raw/ifpga/base/ifpga_port.c | 18 + drivers/raw/ifpga/base/ifpga_port_error.c | 19 + drivers/raw/ifpga/base/opae_debug.c | 3 + drivers/raw/ifpga/base/opae_hw_api.c | 137 ++++ drivers/raw/ifpga/base/opae_hw_api.h | 26 + drivers/raw/ifpga/base/opae_i2c.c | 44 +- drivers/raw/ifpga/base/opae_i2c.h | 3 +- drivers/raw/ifpga/base/opae_ifpga_hw_api.h | 2 + drivers/raw/ifpga/base/opae_intel_max10.c | 599 +++++++++++++++- drivers/raw/ifpga/base/opae_intel_max10.h | 157 ++++- drivers/raw/ifpga/base/opae_osdep.h | 7 +- drivers/raw/ifpga/base/opae_spi.c | 5 - drivers/raw/ifpga/base/opae_spi.h | 26 +- drivers/raw/ifpga/base/opae_spi_transaction.c | 84 ++- drivers/raw/ifpga/ifpga_rawdev.c | 903 ++++++++++++++++++++++++- drivers/raw/ifpga/ifpga_rawdev.h | 30 + drivers/raw/ifpga/meson.build | 6 + drivers/raw/ifpga/rte_rawdev_ifpga_version.map | 6 + mk/rte.app.mk | 2 +- 38 files changed, 2424 insertions(+), 427 deletions(-)