LWN.net Logo

How to ship an FPGA's code

How to ship an FPGA's code

Posted Sep 7, 2004 0:20 UTC (Tue) by gerardmcglew (guest, #3805)
Parent article: Pointless ideology?

Imagine a graphics card, with a significant piece of FPGA calculation engine. Such a card could be made to have a standard (say PCI) interface, used initially to program the FPGA, after which it behaves as a standard graphics card with hardware acceleration.

To write a driver for this card, I would have to be able to send code to it at start up - this could be an array of hex numbers, or a binary file. It would be hard to supply source code to the hardware accelerator without giving away my crown jewels, and the source code would be useless to someone without the appropriate FPGA compilation tools (ie most users).

Assuming that the rest of the driver is GPL'ed after the init code, can anyone tell me how this type of binary initialisation code can be shipped with the kernal, or with distros like Debian which don't want to ship binary chunks.

Thanks,
Gerard
ps. This graphics card is imaginary.
pps. If anyone's driver does as described, your secret is safe - I won't know until you make the information public by contacting me.


(Log in to post comments)

How to ship an FPGA's code

Posted Sep 7, 2004 8:19 UTC (Tue) by mwilck (guest, #1966) [Link]

There are drivers like that in the kernel that upload huge chunks of binary firmware at startup. For example, the Qlogic fiber channel driver (qla2x00).

There seems to be a consensus (well, more-or-less) that this firmware, from the kernel point of view, is simply a piece of opaque data.

However these drivers apparently don't qualify as "free" in the sense of the Debian social contract (see above).

How to ship an FPGA's code

Posted Sep 9, 2004 13:24 UTC (Thu) by forthy (guest, #1525) [Link]

For these blobs, there should at least be an interface to user-land. This
data does not belong to the kernel, and it is not under GPL. It's however
ok to have an interface for the kernel to reach outside, and load these
blobs from files.

This also makes it much easier for vendors and users to update these
files: simply copy it to the right location.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds