[dpdk-dev] [PATCH V1 0/5] Introduce Intel FPGA BUS
Gaëtan Rivet
gaetan.rivet at 6wind.com
Tue Mar 20 15:58:53 CET 2018
Hi Rosen,
Unless I'm mistaken, this is the v1? Did you mean to send the v2 instead
and got mixed up or did I miss something?
I would have the same remarks regarding PCI parsing of devices etc.
Can you send the v2 as a response to this cover-letter?
You have to take the Message-ID of the previous patch and use
"--in-reply-to" option from git-send-email.
On Tue, Mar 20, 2018 at 09:45:51PM +0800, Rosen Xu wrote:
> Intel FPGA BUS in DPDK
> -------------------------
>
> This patch set introduces Intel FPGA BUS support in DPDK.
>
> Motivation
> ==========
>
> FPGA is used more and more widely in Cloud and NFV, one primary reason is
> that FPGA not only provide ASIC performance but also it's more flexible
> than ASIC. FPGA use Partial Reconfigure(PR) Parts of Bitstream to achieve
> its flexibility. Another reason is that one FPGA can be shared
> by different Users, and each User can use some of AFUs of One FPGA.
>
> That means One FPGA Device Bitstream is divided into many Parts of
> Bitstream(each Part of Bitstream is defined as AFU-Accelerated
> Function Unit), and each AFU is a Hardware Acceleration Unit and
> it can dynamically Reload respectively.
>
> Scope
> =====
>
> The Intel FPGA BUS implementation is target towards various FPGA Devices
> use PR to provide many Acceleration Function. Specific PMDs may also
> bind to its AFU. And Applications don't care they are using ASIC
> Acceleration or FPGA AFU Acceleration.
>
> Proposed Solution
> =================
> - Involve Rawdev to take FPGA Partial Configuration(Download/PR)
> - Defined FPGA-BUS for Acceleration Drivers of AFUs
> - FPGA PCI Scan(1st Scan) follows DPDK UIO/VFIO PCI Scan Process,
> probe Intel FPGA Rawdev Driver
> - AFU Scan(2nd Scan) bind DPDK Driver to FPGA Partial-Bitstream
>
> Status
> =====
> With integrating Intel PSG FPGA Software Stack OPAE(Open Programmable
> Acceleration Engine) Share Code, Intel FPGA BUS runs well in
> Intel PSG FPGA Cards.
>
> Patch set Information
> ====================
>
> This patch set includes 6 patches:
> * 0 : Introduce the Intel FPGA BUS library and enable its compilation.
> * 1 : Adds command parse code, for start-up application
> with Intel FPGA BUS.
> * 2 : Adds Driver Probe Code, for AFU Drivers should probed
> after PCI Drivers.
> * 3 : Adds Intel FPGA BUS library code, for AFU Device scan
> and AFU Drivers probe.
> * 4 : Adds a Intel FPGA rawdevice driver, for FPGA Device Management
> such as PR.
> * 5 : Adds Intel OPAE(Open Programmable Acceleration Engine) Share Code,
> it's Intel FPGA Software Stack.
>
> 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/Makefile | 1 +
> drivers/raw/ifpga_rawdev/Makefile | 63 +
> drivers/raw/ifpga_rawdev/base/Makefile | 54 +
> drivers/raw/ifpga_rawdev/base/ifpga_api.c | 543 +++++++
> drivers/raw/ifpga_rawdev/base/ifpga_api.h | 77 +
> drivers/raw/ifpga_rawdev/base/ifpga_compat.h | 84 +
> drivers/raw/ifpga_rawdev/base/ifpga_defines.h | 1696 ++++++++++++++++++++
> drivers/raw/ifpga_rawdev/base/ifpga_enumerate.c | 861 ++++++++++
> drivers/raw/ifpga_rawdev/base/ifpga_enumerate.h | 38 +
> drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.c | 340 ++++
> drivers/raw/ifpga_rawdev/base/ifpga_feature_dev.h | 197 +++
> drivers/raw/ifpga_rawdev/base/ifpga_fme.c | 763 +++++++++
> drivers/raw/ifpga_rawdev/base/ifpga_fme_dperf.c | 328 ++++
> drivers/raw/ifpga_rawdev/base/ifpga_fme_error.c | 430 +++++
> drivers/raw/ifpga_rawdev/base/ifpga_fme_iperf.c | 742 +++++++++
> drivers/raw/ifpga_rawdev/base/ifpga_fme_pr.c | 395 +++++
> drivers/raw/ifpga_rawdev/base/ifpga_hw.h | 152 ++
> drivers/raw/ifpga_rawdev/base/ifpga_port.c | 730 +++++++++
> drivers/raw/ifpga_rawdev/base/ifpga_port_error.c | 236 +++
> drivers/raw/ifpga_rawdev/base/opae_debug.c | 126 ++
> drivers/raw/ifpga_rawdev/base/opae_debug.h | 46 +
> drivers/raw/ifpga_rawdev/base/opae_hw_api.c | 389 +++++
> drivers/raw/ifpga_rawdev/base/opae_hw_api.h | 276 ++++
> drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.c | 151 ++
> drivers/raw/ifpga_rawdev/base/opae_ifpga_hw_api.h | 293 ++++
> drivers/raw/ifpga_rawdev/base/opae_osdep.h | 111 ++
> .../ifpga_rawdev/base/osdep_raw/osdep_generic.h | 104 ++
> .../ifpga_rawdev/base/osdep_rte/osdep_generic.h | 72 +
> drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 486 ++++++
> 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 +
> 42 files changed, 10944 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
>
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list