Free firmware for the Raspberry Pi boots the Linux kernel
Summary
In January 2017 a free bootcode firmware for the Raspberry Pi was able to boot the Linux kernel directly for the first time. On the Pi, hard-wired code loads the proprietary Broadcom firmware onto the graphics unit, which then initialises the hardware. The free alternative was created mainly by reverse engineering, but still had gaps in USB, eMMC and power and clock management.
Ideas
- On the Raspberry Pi, the graphics unit starts first, not the ARM processor.
- Proprietary blobs stand at the beginning of the chain of trust.
- Reverse engineering and free Broadcom headers made an open firmware possible.
Insights
- A completely free system begins with the first code executed, not only with the kernel.
- Free firmware could also make work on free drivers easier.
Facts
- Open points were the USB PHY, the eMMC driver and power and clock management.
- Broadcom made some header files available under a free licence.
- The free code could already boot a minimal kernel without graphics output.
References
Critique
- The report gives no time frame for when a completely free boot chain would be achievable.
Recommendations
- With single-board computers, note which parts of the boot process are proprietary.
- For security-critical uses, choose hardware with a documented, verifiable boot process.
Links to the original source and the Web Archive open in a new tab.