Messages in this thread | | | From | Alan Tull <> | Date | Tue, 28 Feb 2017 11:35:39 -0600 | Subject | Re: FPGA Region enhancements and fixes |
| |
On Wed, Feb 15, 2017 at 10:14 AM, Alan Tull <atull@kernel.org> wrote: > This patchset intends to enable expanding the use of FPGA regions > beyond device tree overlays. Also one fix for the existing DTO > implementation. It's an RFC, looking for feedback, also I need > to do more testing and fix it working for modules.
There's a lot of stuff to look at here. To make it easier, I've pushed a branch to the linux-fpga repo. Branch name is next-20170228-rfc-atull-20170210
Alan
> > Patch 1 adds a function so the caller could program the fpga from > either a scatter gather table, a buffer, or a firmware file. The > parameters are passed in the fpga_image_info struct. This way works, > but there may be a better or more widely accepted way. Maybe they > should be a union? If someone knows of a well written example in the > kernel for me to emulate, that would be really appreciated. > > Patch 2 is a fix for if you write > 1 overlay to a region. > It keeps track of overlays in a list. > > Patch 3 adds functions for working with FPGA bridges using the > device rather than the device node (for non DT use). > > Patches 4-5 separate finding and locking a FPGA manager. So someone > could get a reference for a FPGA manager without locking it for > exclusive use. > > Patch 6 breaks up fpga-region.c into two files, moving the DT overlay > support to of-fpga-region.c. The functions exported by fpga-region.c > will enable code that creates an FPGA region and tell it what manager > and bridge to use. fpga-region.c doesn't do enumeration so whatever > code creates the region will also still have the responsibility to do > some enumeration after programming. > > Patches 7-8 a sysfs interface to FPGA regions. I'm sure this will be > controversial as discussions about FPGA userspace interfaces have > incited lively discussion in the past. The nice thing about this > interface is that it handles the dance of disabling the bridge before > programming and reenabling it afterwards. But no enumeration. > I post it as separate patch and document so the rest of the patches > could go forward while we hash out what a good non-DT interface > may look like if there is some other layer that is requesting > reprogramming and handling enumeration. > > I've tested it lightly and believe that each patch separately > builds and works. > > Known issues: doesn't work as a module anymore. I'll be fixing that. > > Alan > > Alan Tull (8): > fpga-mgr: add a single function for fpga loading methods > fpga-region: support more than one overlay per FPGA region > fpga-bridge: add non-dt support > doc: fpga-mgr: separate getting/locking FPGA manager > fpga-mgr: separate getting/locking FPGA manager > fpga-region: separate out common code to allow non-dt support > fpga-region: add sysfs interface > doc: fpga: add sysfs document for fpga region > > Documentation/ABI/testing/sysfs-class-fpga-region | 26 + > Documentation/fpga/fpga-mgr.txt | 19 +- > drivers/fpga/Kconfig | 20 +- > drivers/fpga/Makefile | 1 + > drivers/fpga/fpga-bridge.c | 107 +++- > drivers/fpga/fpga-mgr.c | 56 +- > drivers/fpga/fpga-region.c | 725 ++++++++++------------ > drivers/fpga/fpga-region.h | 68 ++ > drivers/fpga/of-fpga-region.c | 510 +++++++++++++++ > include/linux/fpga/fpga-bridge.h | 7 +- > include/linux/fpga/fpga-mgr.h | 17 + > 11 files changed, 1128 insertions(+), 428 deletions(-) > create mode 100644 Documentation/ABI/testing/sysfs-class-fpga-region > create mode 100644 drivers/fpga/fpga-region.h > create mode 100644 drivers/fpga/of-fpga-region.c > > -- > 2.7.4 >
| |