[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