With Partial Reconfigure(PR) parts of Bitstream, Field Programmable Gate Array(FPGA) not only provides one kinds of accelerator but also provides many types of accelerators at the same time.
How DPDK fully support FPGA? - We use Rawdev to provide FPGA PR - DPDK Driver will not bind to PCI Device it will bind to FPGA Partial-Bitstream(AFU,Accelerated Function Unit) - For the new Device scan, driver probe, we involve Intel FPGA Bus Module This patchset is base on v18.02. Rosen Xu (5): Add Intel FPGA BUS Command Parse Code Add Intel FPGA BUS Probe Code Add Intel FPGA BUS Lib Code Add Intel FPGA BUS Rawdev Code Add Intel OPAE Share Code drivers/bus/ifpga/Makefile | 64 + drivers/bus/ifpga/ifpga_bus.c | 573 +++++++ drivers/bus/ifpga/ifpga_common.c | 154 ++ drivers/bus/ifpga/ifpga_common.h | 25 + drivers/bus/ifpga/ifpga_logs.h | 32 + drivers/bus/ifpga/rte_bus_ifpga.h | 141 ++ drivers/bus/ifpga/rte_bus_ifpga_version.map | 8 + drivers/raw/ifpga_rawdev/Makefile | 63 + drivers/raw/ifpga_rawdev/base/Makefile | 54 + drivers/raw/ifpga_rawdev/base/ifpga_api.c | 420 +++++ drivers/raw/ifpga_rawdev/base/ifpga_api.h | 78 + drivers/raw/ifpga_rawdev/base/ifpga_compat.h | 85 + drivers/raw/ifpga_rawdev/base/ifpga_defines.h | 1699 ++++++++++++++++++++ drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c | 808 ++++++++++ drivers/raw/ifpga_rawdev/base/ifpga_enumerate.h | 39 + drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c | 305 ++++ drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h | 197 +++ drivers/raw/ifpga_rawdev/base/ifpga_fme.c | 731 +++++++++ drivers/raw/ifpga_rawdev/base/ifpga_fme_dperf.c | 297 ++++ drivers/raw/ifpga_rawdev/base/ifpga_fme_error.c | 399 +++++ drivers/raw/ifpga_rawdev/base/ifpga_fme_iperf.c | 711 ++++++++ drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c | 364 +++++ drivers/raw/ifpga_rawdev/base/ifpga_hw.h | 145 ++ drivers/raw/ifpga_rawdev/base/ifpga_port.c | 699 ++++++++ drivers/raw/ifpga_rawdev/base/ifpga_port_error.c | 112 ++ drivers/raw/ifpga_rawdev/base/opae_debug.c | 95 ++ drivers/raw/ifpga_rawdev/base/opae_debug.h | 15 + drivers/raw/ifpga_rawdev/base/opae_hw_api.c | 355 ++++ drivers/raw/ifpga_rawdev/base/opae_hw_api.h | 235 +++ drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.c | 120 ++ drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.h | 253 +++ drivers/raw/ifpga_rawdev/base/opae_osdep.h | 87 + .../ifpga_rawdev/base/osdep_raw/osdep_generic.h | 69 + .../ifpga_rawdev/base/osdep_rte/osdep_generic.h | 41 + drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 472 ++++++ drivers/raw/ifpga_rawdev/ifpga_rawdev.h | 38 + drivers/raw/ifpga_rawdev/ifpga_rawdev_example.c | 99 ++ .../ifpga_rawdev/rte_pmd_ifpga_rawdev_version.map | 4 + lib/librte_eal/common/eal_common_bus.c | 14 +- lib/librte_eal/common/eal_common_options.c | 8 +- lib/librte_eal/common/eal_options.h | 2 + 41 files changed, 10108 insertions(+), 2 deletions(-) create mode 100644 drivers/bus/ifpga/Makefile create mode 100644 drivers/bus/ifpga/ifpga_bus.c create mode 100644 drivers/bus/ifpga/ifpga_common.c create mode 100644 drivers/bus/ifpga/ifpga_common.h create mode 100644 drivers/bus/ifpga/ifpga_logs.h create mode 100644 drivers/bus/ifpga/rte_bus_ifpga.h create mode 100644 drivers/bus/ifpga/rte_bus_ifpga_version.map create mode 100644 drivers/raw/ifpga_rawdev/Makefile create mode 100644 drivers/raw/ifpga_rawdev/base/Makefile create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_api.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_api.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_compat.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_defines.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_enumerate.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_fme.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_fme_dperf.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_fme_error.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_fme_iperf.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_hw.h create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_port.c create mode 100644 drivers/raw/ifpga_rawdev/base/ifpga_port_error.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_debug.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_debug.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_hw_api.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_hw_api.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.c create mode 100644 drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.h create mode 100644 drivers/raw/ifpga_rawdev/base/opae_osdep.h create mode 100644 drivers/raw/ifpga_rawdev/base/osdep_raw/osdep_generic.h create mode 100644 drivers/raw/ifpga_rawdev/base/osdep_rte/osdep_generic.h create mode 100644 drivers/raw/ifpga_rawdev/ifpga_rawdev.c create mode 100644 drivers/raw/ifpga_rawdev/ifpga_rawdev.h create mode 100644 drivers/raw/ifpga_rawdev/ifpga_rawdev_example.c create mode 100644 drivers/raw/ifpga_rawdev/rte_pmd_ifpga_rawdev_version.map -- 1.8.3.1