= raspberry boot recovery

== boot process

* When the Raspberry Pi is first turned on, the ARM core is off, and the GPU core is on. 
* At this point the SDRAM is disabled.
* The GPU starts executing the first stage bootloader, which is stored in ROM on the SoC. 
* The first stage bootloader reads the SD card, and loads the second stage bootloader *bootcode.bin* into the L2 cache, and runs it.
* bootcode.bin enables SDRAM, and reads the third stage bootloader *loader.bin* from the SD card into RAM, and runs it.
* loader.bin reads the GPU firmware *start.elf*.
* start.elf reads *config.txt*, *cmdline.txt* and *kernel7.img*.

image:./pic/boot_process.png[]

== minimum files pi3

----
bcm2710-rpi-3-b.dtb 
bootcode.bin
fixup.dat
start.elf
kernel7.img
config.txt
----

== minimum files pi4

----
bcm2711-rpi-4-b.dtb
(bcm2711-rpi-400.dtb)
(bcm2711-rpi-cm4.dtb)
(bcm2711-rpi-cm4-io.dtb)
(bcm2711-rpi-cm4s.dtb)
bootcode.bin
fixup4.dat
start4.elf
kernel8.img (which is a copy of the latest kernel file, sample: kernel-6.1.31-v8.1.el9.altarch.img)
config.txt
----
