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.
Boot sequence (simplified):
1. Power applied
Power management IC brings up rails\
VideoCore GPU comes up first
ARM CPU is held in reset
2. VideoCore ROM Executes (GPU Side)
Immutable GPU boot ROM runs
runs This code: Initializes minimal SDRAM Reads boot configuration Locates next-stage bootloader
... continue reading