Tom,

On Sun, Mar 28, 2021 at 08:40:24AM -0700, Tom Rix wrote:
> 
> On 3/27/21 11:09 AM, Moritz Fischer wrote:
> > Hi Richard, Russ,
> >
> > On Thu, Feb 25, 2021 at 01:07:14PM +0000, Gong, Richard wrote:
> >> Hi Moritz,
> >>
> >> Sorry for asking.
> >>
> >> When you have chance, can you help review the version 5 patchset submitted 
> >> on 02/09/21?
> >>
> >> Regards,
> >> Richard
> >>
> >> -----Original Message-----
> >> From: richard.g...@linux.intel.com <richard.g...@linux.intel.com> 
> >> Sent: Tuesday, February 9, 2021 4:20 PM
> >> To: m...@kernel.org; t...@redhat.com; gre...@linuxfoundation.org; 
> >> linux-f...@vger.kernel.org; linux-kernel@vger.kernel.org
> >> Cc: Gong, Richard <richard.g...@intel.com>
> >> Subject: [PATCHv5 0/7] Extend Intel service layer, FPGA manager and region
> >>
> >> From: Richard Gong <richard.g...@intel.com>
> >>
> >> This is 5th submission of Intel service layer and FPGA patches, which 
> >> includes the missing standalone patch in the 4th submission.
> >>
> >> This submission includes additional changes for Intel service layer driver 
> >> to get the firmware version running at FPGA SoC device. Then FPGA manager 
> >> driver, one of Intel service layer driver's client, can decide whether to 
> >> handle the newly added bitstream authentication function based on the 
> >> retrieved firmware version. So that we can maintain FPGA manager driver 
> >> the back compatible.
> >>
> >> Bitstream authentication makes sure a signed bitstream has valid 
> >> signatures.
> >>
> >> The customer sends the bitstream via FPGA framework and overlay, the 
> >> firmware will authenticate the bitstream but not program the bitstream to 
> >> device. If the authentication passes, the bitstream will be programmed 
> >> into QSPI flash and will be expected to boot without issues.
> >>
> >> Extend Intel service layer, FPGA manager and region drivers to support the 
> >> bitstream authentication feature. 
> >>
> >> Richard Gong (7):
> >>   firmware: stratix10-svc: reset COMMAND_RECONFIG_FLAG_PARTIAL to 0
> >>   firmware: stratix10-svc: add COMMAND_AUTHENTICATE_BITSTREAM flag
> >>   firmware: stratix10-svc: extend SVC driver to get the firmware version
> >>   fpga: fpga-mgr: add FPGA_MGR_BITSTREAM_AUTHENTICATE flag
> >>   fpga: of-fpga-region: add authenticate-fpga-config property
> >>   dt-bindings: fpga: add authenticate-fpga-config property
> >>   fpga: stratix10-soc: extend driver for bitstream authentication
> >>
> >>  .../devicetree/bindings/fpga/fpga-region.txt       | 10 ++++
> >>  drivers/firmware/stratix10-svc.c                   | 12 ++++-
> >>  drivers/fpga/of-fpga-region.c                      | 24 ++++++---
> >>  drivers/fpga/stratix10-soc.c                       | 62 
> >> +++++++++++++++++++---
> >>  include/linux/firmware/intel/stratix10-smc.h       | 21 +++++++-
> >>  .../linux/firmware/intel/stratix10-svc-client.h    | 11 +++-
> >>  include/linux/fpga/fpga-mgr.h                      |  3 ++
> >>  7 files changed, 125 insertions(+), 18 deletions(-)
> >>
> >> --
> >> 2.7.4
> >>
> > Apologies for the epic delay in getting back to this, I took another
> > look at this patchset and Russ' patchset.
> >
> > TL;DR I'm not really a fan of using device-tree overlays for this (and
> > again, apologies, I should've voiced this earlier ...).
> >
> > Anyways, let's find a common API for this and Russ' work, they're trying
> > to achieve the same / similar thing, they should use the same API.
> >
> > I'd like to re-invetigate the possiblity to extend FPGA Manager with
> > 'secure update' ops that work for both these use-cases (and I susspect
> > hte XRT patchset will follow with a similar requirement, right after).
> 
> The xrt patchset makes heavy use of device trees.
> 
> What is the general guidance for device tree usage ?

I'm not generally against using device tree, it has its place. To
describe hardware (and hardware *changes* with overlays) :)

What I don't like about this particular implementation w.r.t device-tree
usage is that it uses DT overlays as a mechanism to program the flash --
in place of having an API to do so.

One could add device-nodes during the DT overlay application, while the
FPGA doesn't actually get programmed with a new runtime image -- meaning
live DT and actual hardware state diverged -- worst case it'd crash.

So when roughly at the same time (from the same company even) we have two
patchsets that do similar things with radically different APIs I think
we should pause, and reflect on whether we can come up with something
that works for both :)

TL;DR the firmware parts to authenticate the bitstream look fine to me, the
way we tie it into the FPGA region I'm not a fan of.

- Moritz

Reply via email to