mbox

[v18,00/19] add PCIe AER disable and IRQ support for ipn3ke

Message ID 1573722187-148846-1-git-send-email-rosen.xu@intel.com (mailing list archive)
Headers

Message

Xu, Rosen Nov. 14, 2019, 9:02 a.m. UTC
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.

v18 updates:
=========
- remove rte_exit.

v17 updates:
=========
- remove rte_panic.

v16 updates:
=========
- rebase to DPDK 19.11 RC-2.

v15 updates:
=========
- fix share library build issues.

v14 updates:
=========
- fix coding style and remove unnecessary comments.

v13 updates:
=========
- fix meson build issue.

v12 updates:
=========
- fix meson build issue.
 
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                           |   6 +-
 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                   |   1 +
 drivers/net/ipn3ke/ipn3ke_ethdev.c            | 292 ++-------
 drivers/net/ipn3ke/ipn3ke_flow.c              |   6 +
 drivers/net/ipn3ke/ipn3ke_rawdev_api.h        |  12 +
 drivers/net/ipn3ke/ipn3ke_representor.c       |  10 +-
 drivers/net/ipn3ke/meson.build                |  24 +-
 drivers/net/ipn3ke/rte_pmd_ipn3ke_version.map |   6 +
 drivers/raw/ifpga/Makefile                    |   5 +
 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/meson.build            |   2 +-
 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                 |  26 +-
 mk/rte.app.mk                                 |   2 +-
 42 files changed, 2480 insertions(+), 441 deletions(-)