Embedded Academy

Open-source, animated courses on embedded systems. The first one follows three ARM boards from the first instruction in the boot ROM to PID 1.

0:boot-chainBCM2711 · 4× Cortex-A72

Boot starts on the VideoCore GPU; the Arm cores wait in reset until the firmware releases them.

Stage 1 of 6

Boot ROM

(mask ROM) · loaded from inside the SoC

VideoCore VPUArm in resetFirmware, no Arm world yetnot yet verified
  • The GPU-side VPU executes first. The Arm cores are still held in reset.
  • Looks for the second-stage bootloader in the SPI EEPROM.
  • If that image is corrupt, loads recovery.bin from the SD card to reflash it.

Sources: Raspberry Pi documentation: Raspberry Pi hardware, boot sequence and boot EEPROM

Where it runs

VPU boot ROM
(mask ROM)
VPU on-chip memoryWhere the EEPROM bootloader executes is not yet confirmed from a primary source.
LPDDR4 SDRAM0x0000_0000 · 1 to 8 GB, shared by GPU and Arm

Serial · 115200 8N1 · illustrative

(ROM is silent)
1:courses
  • linux-boot-arm Follow three ARM boards from the first instruction in the boot ROM to PID 1, and build every piece yourself.