Freedom Issue #1172
bladerf: FPGA firmwares can't be "compiled" with free software.
100%
Description
Hi,
Installing bladerf (pacman -S bladrf) gives us the following FPGA firmware2:
/usr/share/bladerf/fpga/hostedx115.rbf /usr/share/bladerf/fpga/hostedx40.rbf
According to their website1 they use an "Altera Cyclone IV FPGA",
and as far as I know, there is no free software tools to compile3 the source code4 into the firmware2.
I also wonder about the license and tools needed to build this firmware:
/usr/share/bladerf/firmware/bladeRF_fw_v2.0.0.img
# strings /usr/share/bladerf/firmware/bladeRF_fw_v2.0.0.img | grep -i threadx Copyright (c) 1996-2008 Express Logic Inc. * ThreadX ARM9/RVDS Version G5.1.5.1 SN: 2923-115-1301 *
Also ThreadX5 seem to be a proprietary embedded operating system.
This firmware might be for the following chip:
The Cypress FX3 microcontroller is the ideal solution with a powerful ARM9 processor and enough bandwidth to saturate the full duplex 5Gbps USB 3.0 link.
Note that we have some ARM compilers in parabola, so we could build this firmware if it's free software:
community/arm-none-eabi-binutils community/arm-none-eabi-gcc community/arm-none-eabi-gdb community/arm-none-eabi-newlib
Also note that I have no bladerf, and no access to such hardware.
I only know that very few FPGA are usable with free software, and at the time of writing,
only various FPGAs from the ICE40 series are.
References:
------------
[1] https://www.nuand.com/
[2] This is called "bitstream" in the FPGA jargon
[3] This is called "synthetize" in the FPGA jargon
[4] I've no idea how this is called, but the kind of language they use is
called "Hardware description language(HDL)"
[5] https://en.wikipedia.org/wiki/ThreadX
History
Updated by oaken-source about 5 years ago
- % Done changed from 0 to 100
- Assignee set to oaken-source
- Status changed from open to fixed
I verified that the firmware blobs and fpga images can not be build using only free tools, and indeed do contain nonfree binary objects.
I added bladerf to the blacklist and packaged a libre, deblobbed version.