Skip to contentSkip to conversation

FPGA manager: What is the proper way to load a bitstream now?

DISCUSSION Mike Looijmans 2 participants 2 messages Aug 29, 2016

lore
Share & tools
lore
#0 lore raw

The "FPGA manager" has been around for a while now, so I thought to integrate it. However, there's apparently only a kernel-to-kernel interface and it isn't actually being used in current mainline kernels?

So far, I've been using vendor provided drivers to load the FPGA bitstream (e.g. "cat fpga.bin > /dev/xdevcfg") somewhere early during boot.

With the FPGA manager, while looking for a userspace interface, all I found were proposals to do so, that have been 'shot down', even the nice ones using DT overlays, and in the end, there is apparently no way whatsover to simply load a bitstream at boot, other that writing (yet another) driver to trigger the firmware load at some stage.

Is this an accurate summary of the current state, or is there something I've missed?

(resent because of corporate mailserver turning plaintext into HTML)

#1 lore raw
Quoted 13 lines · Mike Looijmans

The "FPGA manager" has been around for a while now, so I thought to integrate it. However, there's apparently only a kernel-to-kernel interface and it isn't actually being used in current mainline kernels?

So far, I've been using vendor provided drivers to load the FPGA bitstream (e.g. "cat fpga.bin > /dev/xdevcfg") somewhere early during boot.

With the FPGA manager, while looking for a userspace interface, all I found were proposals to do so, that have been 'shot down', even the nice ones using DT overlays, and in the end, there is apparently no way whatsover to simply load a bitstream at boot, other that writing (yet another) driver to trigger the firmware load at some stage.

Quoted 5 lines

Is this an accurate summary of the current state, or is there something I've missed?

(resent because of corporate mailserver turning plaintext into HTML)

Hi Mike,

There is some stuff that is not yet accepted upstream. Please see my tree (either branch socfpga-4.6 or socfpga-4.1.22-ltsi, take your pick).

git clone https://github.com/altera-opensource/linux-socfpga.git

Documentation for the in-kernel API is
Documentation/fpga/fpga-mgr.txt

Documentation for using device tree overlays is
Documentation/devicetree/bindings/fpga/fpga-region.txt

The in kernel device tree compiler has to be upgraded to include some of Pantelis Antoniou's patches.

This interface uses the firmware layer to load files from the root filesystem. This all happens under control of applying device tree overlays as documented in the fpga-region.txt document.

I think the DTO stuff is close to being accepted, but that will take time still.

Alan