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

Philip Balister
2013-09-25T14:35:06Z

On 09/25/2013 08:00 AM, Pavel Machek wrote:
> Hi!
>
>>>> The firmware approach is interesting. It might be less flexible
>>>> compared with my original code (see link to git below) that this is
>>>
>>> On the other hand... that's the interface world wants, right? To most
>>> users, fpga bitstream is just a firmware.
>>>
>>
>> No, not really.
>>
>> The typical assumption with the firmware interface is that there is
>> exactly one possible firmware for each device (possibly modulated by
>> driver version, but still.)
>
> Actually, I have seen counterexample there, too. Wifi card had
> different firmware for host and access points mode, probably because
> internal RAM could not fit both at same time.

And another counter example ...

For the Zynq based product I am working on, we encourage the end user to
create their own bitstreams to customize their application. So we need
an easy way for the user to load a bitstream. cat foo.bin > /dev/xdevcfg
works well for us.

Then we need to make sure that the interface supports partial
reconfiguration.

That said, having a sane user api that addresses the various fpga use
cases would be a win for use since we would not need to write custom
user space code for every platform created in the future. I'd like to
see this api work with things like PCI based FPGA cards and discrete
fpgas that are not integrated with an arm etc.

Phlip

>
> It is not really different; there's internal logic and you are
> programming it to do something. You can program FPGA, CPLD, or
> firmware for some embedded CPU.
>
>> This is blatantly not true for an FPGA in
>> the most extreme way possible -- there are an almost infinite number of
>> ways one can load an FPGA.
>
> Well, usually the FPGA has some function on the board (unless you are
> using it for compute acceleration), and it also wants just one
> version. If you have FPGA-based GSM board, you'll want GSM
> firmware. If you have FPGA-based WIFI, you'll want WIFI firmware. If
> you load GSM firmware there, it will very likely not work because it
> needs different amplifiers etc.
>
> Heck, you probably _could_ use your WIFI card for cryptographics
> operations just by loading different firmware. People just don't do
> that. I don't expect that to be too different in the FPGA case...
>
>> However, I have to question the whole idea of an "FPGA subsystem" --
>> there is an almost infinite number of ways to program an FPGA or FPGA
>> programming device (which may even be a commodity flash with a
>> microcontroller or CPLD, and may be shared with other devices), and it
>> really doesn't make any inherent sense to lump them together.
>
> Firmware loading methods are also different, yet it makes sense to
> have uniform way of loading firmware. This is very similar situation.
>
> Pavel
>