DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [RFC 0/5] Introduce Intel FPGA BUS
@ 2018-03-15  7:11 Rosen Xu
  2018-03-19  9:06 ` Gaëtan Rivet
  0 siblings, 1 reply; 3+ messages in thread
From: Rosen Xu @ 2018-03-15  7:11 UTC (permalink / raw)
  To: dev
  Cc: declan.doherty, bruce.richardson, shreyansh.jain, tianfei.zhang,
	hao.wu, gaetan.rivet

Intel FPGA BUS in DPDK
-------------------------

RFC [1]: 
http://www.dpdk.org/ml/archives/dev/2018-March/092297.html
http://www.dpdk.org/ml/archives/dev/2018-March/092298.html
http://www.dpdk.org/ml/archives/dev/2018-March/092299.html
http://www.dpdk.org/ml/archives/dev/2018-March/092300.html
http://www.dpdk.org/ml/archives/dev/2018-March/092301.html

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/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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-03-19  9:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-15  7:11 [dpdk-dev] [RFC 0/5] Introduce Intel FPGA BUS Rosen Xu
2018-03-19  9:06 ` Gaëtan Rivet
2018-03-19  9:08   ` Xu, Rosen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).