Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1615711
| From | Wu Hao <hao.wu@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview |
| Date | 2017-04-04 07:30 +0200 |
| Message-ID | <tspct-ug-1@gated-at.bofh.it> (permalink) |
| References | (2 earlier) <tr9t8-8dB-13@gated-at.bofh.it> <tr9CO-8h2-9@gated-at.bofh.it> <trpod-1Uj-13@gated-at.bofh.it> <trOZj-1KM-9@gated-at.bofh.it> <tsh5f-3nO-1@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, Apr 03, 2017 at 03:44:17PM -0500, Alan Tull wrote: > On Sun, Apr 2, 2017 at 9:41 AM, Moritz Fischer <mdf@kernel.org> wrote: > > On Sat, Apr 01, 2017 at 07:16:19PM +0800, Wu Hao wrote: > >> On Fri, Mar 31, 2017 at 01:38:06PM -0500, Alan Tull wrote: > >> > On Fri, Mar 31, 2017 at 1:24 PM, <matthew.gerlach@linux.intel.com> wrote: > >> > > > >> > > > >> > > On Thu, 30 Mar 2017, Wu Hao wrote: > >> > > > >> > > > >> > > Hi Wu Hao, > >> > > > >> > > Great documentation. I'm looking forward to diving into the rest of the > >> > > patches. Please see my comments inline. > >> > > > >> > > Matthew Gerlach > >> > > > >> > > > >> > >> Add a document for Intel FPGA driver overview. > >> > >> > >> > >> Signed-off-by: Enno Luebbers <enno.luebbers@intel.com> > >> > >> Signed-off-by: Xiao Guangrong <guangrong.xiao@linux.intel.com> > >> > >> Signed-off-by: Wu Hao <hao.wu@intel.com> > >> > >> --- > >> > >> Documentation/fpga/intel-fpga.txt | 259 > >> > >> ++++++++++++++++++++++++++++++++++++++ > >> > >> 1 file changed, 259 insertions(+) > >> > >> create mode 100644 Documentation/fpga/intel-fpga.txt > >> > >> > >> > >> diff --git a/Documentation/fpga/intel-fpga.txt > >> > >> b/Documentation/fpga/intel-fpga.txt > >> > >> new file mode 100644 > >> > >> index 0000000..9396cea > >> > >> --- /dev/null > >> > >> +++ b/Documentation/fpga/intel-fpga.txt > >> > >> @@ -0,0 +1,259 @@ > >> > >> > >> > >> +=============================================================================== > >> > >> + Intel FPGA driver Overview > >> > >> > >> > >> +------------------------------------------------------------------------------- > >> > >> + Enno Luebbers <enno.luebbers@intel.com> > >> > >> + Xiao Guangrong <guangrong.xiao@linux.intel.com> > >> > >> + Wu Hao <hao.wu@intel.com> > >> > >> + > >> > >> +The Intel FPGA driver provides interfaces for userspace applications to > >> > >> +configure, enumerate, open, and access FPGA accelerators on platforms > >> > >> equipped > >> > >> +with Intel(R) FPGA solutions and enables system level management > >> > >> functions such > >> > >> +as FPGA reconfiguration, power management, and virtualization. > >> > >> + > >> > > > >> > > > >> > > From a Linux kernel perspective, I'm not sure this is the best name for > >> > > this code. The name gives me the impression that it is a driver for all > >> > > Intel FPGAs, but not all Intel FPGAs are connected to the processor over a > >> > > PCIe bus. The processor could be directely connected like the Arria10 > >> > > SOCFPGA. Such a processor could certainly benefit from this accelerator > >> > > usage model. In an extreme case, couldn't a processor in the FPGA, > >> > > running Linux, also benefit from this accelerator model? Is this code a > >> > > "FPGA Accelerator Framework"? > >> > > > >> > >> +HW Architecture > >> > >> +=============== > >> > >> +From the OS's point of view, the FPGA hardware appears as a regular PCIe > >> > >> device. > >> > >> +The FPGA device memory is organized using a predefined data structure > >> > >> (Device > >> > >> +Feature List). Features supported by the particular FPGA device are > >> > >> exposed > >> > >> +through these data structures, as illustrated below: > >> > >> + > >> > >> + +-------------------------------+ +-------------+ > >> > >> + | PF | | VF | > >> > >> + +-------------------------------+ +-------------+ > >> > >> + ^ ^ ^ ^ > >> > >> + | | | | > >> > >> ++-----|------------|---------|--------------|-------+ > >> > >> +| | | | | | > >> > >> +| +-----+ +-------+ +-------+ +-------+ | > >> > >> +| | FME | | Port0 | | Port1 | | Port2 | | > >> > >> +| +-----+ +-------+ +-------+ +-------+ | > >> > >> +| ^ ^ ^ | > >> > >> +| | | | | > >> > >> +| +-------+ +------+ +-------+ | > >> > >> +| | AFU | | AFU | | AFU | | > >> > >> +| +-------+ +------+ +-------+ | > >> > >> +| | > >> > >> +| FPGA PCIe Device | > >> > >> ++---------------------------------------------------+ > >> > >> + > >> > >> +The driver supports PCIe SR-IOV to create virtual functions (VFs) which > >> > >> can be > >> > >> +used to assign individual accelerators to virtual machines . > >> > > > >> > > > >> > > Does this HW Architecture require an Intel FPGA? Couldn't any vendors FPGA > >> > > be used as long as it presented itself the PCIe bus the same and contained > >> > > an appropriate Device Feature List? > > > > I think this is a good (and important) point. Especially when sysfs > > entries & ioctls constituting ABI depend on it. > > > >> > > > >> > >> + > >> > >> +FME (FPGA Management Engine) > >> > >> +============================ > >> > >> +The FPGA Management Enging performs power and thermal management, error > > Enging->Engine > >> > >> +reporting, reconfiguration, performance reporting, and other > >> > >> infrastructure > >> > >> +functions. Each FPGA has one FME, which is always accessed through the > >> > >> physical > >> > >> +function (PF). > >> > >> + > >> > >> +User-space applications can acquire exclusive access to the FME using > >> > >> open(), > >> > >> +and release it using close(). > >> > >> + > >> > >> +The following functions are exposed through ioctls: > >> > >> + > >> > >> + Get driver API version (FPGA_GET_API_VERSION) > >> > >> + Check for extensions (FPGA_CHECK_EXTENSION) > >> > >> + Assign port to PF (FPGA_FME_PORT_ASSIGN) > >> > >> + Release port from PF (FPGA_FME_PORT_RELEASE) > >> > >> + Program bitstream (FPGA_FME_PORT_PR) > >> > >> + > >> > >> +More functions are exposed through sysfs > >> > >> +(/sys/class/fpga/fpga.n/intel-fpga-fme.n/): > >> > >> + > >> > >> + Read bitstream ID (bitstream_id) > >> > >> + Read bitstream metadata (bitstream_metadata) > >> > >> + Read number of ports (ports_num) > >> > >> + Read socket ID (socket_id) > >> > >> + Read performance counters (perf/) > >> > >> + Power management (power_mgmt/) > >> > >> + Thermal management (thermal_mgmt/) > >> > >> + Error reporting (errors/) > >> > >> + > >> > >> +PORT > >> > >> +==== > >> > >> +A port represents the interface between the static FPGA fabric (the "blue > >> > >> +bitstream") and a partially reconfigurable region containing an AFU (the > >> > >> "green > >> > > >> > Is this an fpga bridge but with added features? > >> > >> Yes, I think so. As you see the fme_pr function in patch 11, related port needs > >> to be disabled firstly before fpga_mgr_buf_load for given accelerator. > > > > Can we just extend the bridge to have the additional features, please? > > OK then this code is taking place of a fpga-region that controls the > bridge (port) and fpga-mgr during fpga programming. > As mentioned in last email replied to Moritz, I prefer to have fpga-bridge in FME module together with fpga-region and fpga-manager, and reuse fpga region related function for PR. Other functions which required by user space applications when access the FPGA acclerator, should be covered in AFU driver. Please notice that In VF case (e.g in virtual machine), there is no FME at all, but only FPGA accelerators (AFUs). Create a duplciate fpga-bridge in AFU driver seems not useful. Thanks Hao
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/16] Intel FPGA Device Drivers Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Greg KH <greg@kroah.com> - 2017-03-31 08:10 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-03-31 10:00 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Greg KH <greg@kroah.com> - 2017-03-31 11:10 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-03-31 14:30 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework matthew.gerlach@linux.intel.com - 2017-03-31 21:10 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-04-01 14:30 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Greg KH <greg@kroah.com> - 2017-03-31 08:20 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-03-31 15:40 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Greg KH <greg@kroah.com> - 2017-03-31 16:20 +0200
Re: [PATCH 02/16] fpga: add FPGA device framework Wu Hao <hao.wu@intel.com> - 2017-04-01 13:50 +0200
[PATCH 03/16] fpga: intel: add FPGA PCIe device driver Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
Re: [PATCH 03/16] fpga: intel: add FPGA PCIe device driver Moritz Fischer <mdf@kernel.org> - 2017-04-04 04:20 +0200
RE: [PATCH 03/16] fpga: intel: add FPGA PCIe device driver "Wu, Hao" <hao.wu@intel.com> - 2017-04-05 15:20 +0200
[PATCH 15/16] fpga: intel: afu: add user afu sub feature support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 12/16] fpga: intel: add FPGA Accelerated Function Unit driver basic framework Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 09/16] fpga: intel: fme: add header sub feature support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 16/16] fpga: intel: afu: add FPGA_PORT_DMA_MAP/UNMAP ioctls support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 07/16] fpga: intel: add feature device infrastructure Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 05/16] fpga: intel: pcie: add chardev support for feature devices Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 04/16] fpga: intel: pcie: parse feature list and create platform device for features. Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
Re: [PATCH 04/16] fpga: intel: pcie: parse feature list and create platform device for features. Alan Tull <atull@kernel.org> - 2017-04-03 23:50 +0200
Re: [PATCH 04/16] fpga: intel: pcie: parse feature list and create platform device for features. Wu Hao <hao.wu@intel.com> - 2017-04-05 14:10 +0200
Re: [PATCH 04/16] fpga: intel: pcie: parse feature list and create platform device for features. Alan Tull <atull@kernel.org> - 2017-04-05 00:20 +0200
Re: [PATCH 04/16] fpga: intel: pcie: parse feature list and create platform device for features. Wu Hao <hao.wu@intel.com> - 2017-04-05 16:20 +0200
[PATCH 10/16] fpga: intel: fme: add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 14/16] fpga: intel: afu add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview matthew.gerlach@linux.intel.com - 2017-03-31 20:30 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Alan Tull <atull@kernel.org> - 2017-03-31 20:40 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Wu Hao <hao.wu@intel.com> - 2017-04-01 13:30 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Moritz Fischer <mdf@kernel.org> - 2017-04-02 16:50 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Alan Tull <atull@kernel.org> - 2017-04-03 22:50 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Wu Hao <hao.wu@intel.com> - 2017-04-04 07:30 +0200
Re: [PATCH 01/16] docs: fpga: add a document for Intel FPGA driver overview Wu Hao <hao.wu@intel.com> - 2017-04-04 07:20 +0200
[PATCH 06/16] fpga: intel: pcie: adds fpga_for_each_port callback for fme device Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 13/16] fpga: intel: afu: add header sub feature support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
[PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-03-30 14:20 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-03-30 22:40 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Xiao Guangrong <xiaoguangrong.eric@gmail.com> - 2017-03-31 06:20 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-03-31 11:00 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-03 22:30 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-04 07:40 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-03-31 21:20 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-01 13:20 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-03 18:40 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-04 08:20 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-05 00:40 +0200
RE: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support "Wu, Hao" <hao.wu@intel.com> - 2017-04-05 13:50 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-05 17:30 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-05 17:50 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-06 13:10 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-06 21:30 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-07 08:10 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Alan Tull <atull@kernel.org> - 2017-04-03 23:30 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support matthew.gerlach@linux.intel.com - 2017-04-04 00:50 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-04 09:00 +0200
Re: [PATCH 11/16] fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao <hao.wu@intel.com> - 2017-04-04 08:40 +0200
Re: [PATCH 00/16] Intel FPGA Device Drivers Moritz Fischer <mdf@kernel.org> - 2017-03-30 19:20 +0200
Re: [PATCH 00/16] Intel FPGA Device Drivers Jerome Glisse <jglisse@redhat.com> - 2017-04-06 22:30 +0200
csiph-web