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 for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1487175261-7051-1-git-send-email-atull@kernel.org>
Date:   Wed, 15 Feb 2017 10:14:13 -0600
From:   Alan Tull <atull@...nel.org>
To:     Moritz Fischer <moritz.fischer@...us.com>,
        Jason Gunthorpe <jgunthorpe@...idianresearch.com>
Cc:     Alan Tull <atull@...nel.org>, linux-kernel@...r.kernel.org,
        linux-fpga@...r.kernel.org
Subject: FPGA Region enhancements and fixes

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.

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ