lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Tue, 28 Feb 2017 16:03:28 -0600
From:   Alan Tull <delicious.quinoa@...il.com>
To:     Moritz Fischer <moritz.fischer@...us.com>,
        Jason Gunthorpe <jgunthorpe@...idianresearch.com>
Cc:     Alan Tull <atull@...nel.org>,
        linux-kernel <linux-kernel@...r.kernel.org>,
        linux-fpga@...r.kernel.org
Subject: Re: FPGA Region enhancements and fixes

On Tue, Feb 28, 2017 at 11:35 AM, Alan Tull <delicious.quinoa@...il.com> wrote:
> On Wed, Feb 15, 2017 at 10:14 AM, Alan Tull <atull@...nel.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.

Actually just reran my tests and these *do* work as a modules.

Alan

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ