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. 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 | 3 + mk/rte.app.mk | 2 +- 38 files changed, 2421 insertions(+), 427 deletions(-) -- 1.8.3.1