Re: [RFC PATCH] fpga: Introduce new fpga subsystem

Jason Gunthorpe
2013-09-19T17:28:37Z

On Thu, Sep 19, 2013 at 10:18:03AM -0500, Yves Vandervennet wrote:
> On Thu, Sep 19, 2013 at 5:55 AM, Michal Simek <monstr@monstr.eu> wrote:
>
> >> Is there some way a per-device userspace helper can be added that can
> >> handle adding the headers? Such that different fpga types get different
> >> helpers?
> >
> > What do you exactly mean by that? Any example what do you want to achieve?
> Bit streams may not be in raw format, so using 'cat' is not possible.
> Xilinx and Altera have their own bit stream "richer" format, that need
> to be processed before they are presented to the driver(s). So, a
> hotplug helper per manufacturer/FPGA is required. Assuming 'cat' will
> be used is too limiting.
> Does it make sense to you?

IMHO it doesn't make sense to use request firmware for this, in
general.

1) The driver doesn't know what firmware to request. It just knows
how to send it to a FPGA.
2) Telling the kernel a filename via sysfs and then having it go
around the long way via request_firwmare to get the data is silly.
Just give the kernel the actual data instead of a file name
3) It is hard to use, when userspace writes the file name the kernel
doesn't return until request_firmware completes, which means you
need multiple threads in user space to make this work.
4) Converting an input file into bitstreamable format should be done
in userspace. This doesn't require request_firmware. If you want
to make it automatic then a program invoked via udev is the way
to go.

Jason