- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
I discovered that the Raspberry Pi doesn’t boot the same way traditional PC’s do. This was interesting and I thought I’d share.
At a high level, Raspberry Pi booting is firmware-driven, not BIOS-driven like a PC. On Raspberry Pi, the GPU (VideoCore) is powered first and is the root of trust for booting. The ARM CPU is not the initial execution environment. This is a deliberate architectural choice dating back to the original Pi.
…
This explains several Raspberry Pi oddities:
- The Raspberry Pi has No BIOS / UEFI
- The config.txt is not a Linux File
- Kernel Replacement Is Trivial
- Boot failures before Linux is loaded are invisible to Linux
… Why? The Raspberry Pi uses Broadcom BCM2xxx chips where The “main” processor is a VideoCore IV/VI GPU is activated at power-on. It runs proprietary firmware that handles the boot. The BCM2xxx chips are typically used in set-top boxes for video streaming/entertainment. For these types of devices, the goal is to quickly get to a flashy user interface. The Raspberry Pi Foundation chose these inexpensive chips as their base that leave them with an odd boot order.
Just found this interesting that the GPU boots before the CPU and is responsible for the low level boot process. Feels especially odd to me because the GPU is something I basically ignore in all of my Pi projects.

