Thread (98 messages) 98 messages, 5 authors, 2018-02-13

Re: [PATCH v3 08/21] fpga: add Intel FPGA DFL PCIe device

From: Wu Hao <hidden>
Date: 2018-02-13 09:45:44
Also in: linux-fpga, lkml

On Thu, Feb 01, 2018 at 03:59:21PM -0600, Alan Tull wrote:
On Tue, Dec 5, 2017 at 11:30 PM, Wu Hao [off-list ref] wrote:
quoted
On Tue, Dec 05, 2017 at 11:00:22AM -0600, Alan Tull wrote:
quoted
On Mon, Dec 4, 2017 at 9:33 PM, Wu Hao [off-list ref] wrote:
quoted
On Mon, Dec 04, 2017 at 01:46:59PM -0600, Alan Tull wrote:
quoted
On Mon, Nov 27, 2017 at 9:15 PM, Wu Hao [off-list ref] wrote:
quoted
On Mon, Nov 27, 2017 at 10:28:04AM +0000, David Laight wrote:
quoted
From: Wu Hao
quoted
Sent: 27 November 2017 06:42
From: Zhang Yi <redacted>

The Intel FPGA device appears as a PCIe device on the system. This patch
implements the basic framework of the driver for Intel PCIe device which
is located between CPU and Accelerated Function Units (AFUs), and has
the Device Feature List (DFL) implemented in its MMIO space.
This ought to have a better name than 'Intel FPGA'.
An fpga can be used for all sorts of things, this looks like
a very specific architecture using a common VHDL environment to
allow certain types of user VHDL be accessed over PCIe.
Hi David

This patch adds a pcie device driver for Intel FPGA devices which implements
the DFL, e.g Intel Server Platform with In-package FPGA and Intel FPGA PCIe
Acceleration Cards. They are pcie devices, and all have DFL implemented in
the MMIO space, so we would like to use one kernel driver to handle them.

With this full patchset, it just provides user the interfaces to configure
and access the FPGA accelerators on Intel DFL based FPGA devices. For sure,
users can develop and build their own logics via tools provided by Intel,
program them to accelerators on these Intel FPGA devices, and access them
for their workloads.
I don't see anything Intel specific here.  This could all be named dfl-*
The maybe some device specific things, e.g Intel FPGA devices supported by this
driver always have FME DFL at the beginning on the BAR0 for PF device.
I'm thinking that another user could add their PCI id's and a static
FPGA image that has a DFL in the right place for this to work for
them.
quoted
quoted
quoted
But I think this should be the right direction for better code reuse, it could
save efforts for other vendors who want to use DFL and follow the same way.
I appreciate your understanding here.
quoted
quoted
quoted
Thanks for the comments. I will rename this driver in the next version.
Thanks!

Regarding file names, it seems like the files added to drivers/fpga
could be uniformly named dfl-*.[ch].  Some are fpga-dfl-*.[ch] while
other are currently dfl-*.[ch] currently.
Sure, will have all related drivers files renamed to dfl-*.[ch].
Actually, I'll reverse that a bit.  The enumeration code, including
the pcie part is all sufficiently general to run on anything that has
a DFL struct located in the right place.  But individual feature
drivers (currently only the fme-mgr) will be vendor specific and could
be named intel-*.
Hi Alan,

I unified all the drivers to use dfl-* in the v4 patchset, including fme-mgr.
As I feel it's hard to say which FME functions (sub features, registers) are
vendor specific and which FME functions are not, from the spec, they all belong
to FME, and people can be reused for sure. So I didn't rename it back to Intel
driver in the v4 patchset. :)

Thanks
Hao

Alan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help