Page 1 of 1

Initial boot environment / boot-strapping a kernel

Posted: Tue Dec 01, 2015 9:48 pm
by ausppc
Are there any guides or other information about the precise series of events for any RPi system from power-on to kernel loaded and ready for further input?

Re: Initial boot environment / boot-strapping a kernel

Posted: Wed Dec 02, 2015 6:47 am
by rpdom
ausppc wrote:Are there any guides or other information about the precise series of events for any RPi system from power-on to kernel loaded and ready for further input?
How precise do you need? That is a bit of a vague question ;)

The basic boot sequence is described in various places and easily findable with a search. However, it runs something like this:

ROM Code (built-in, fixed) -> Look for SD card with FAT12/16/32 partition. Locate bootcode.bin. Load it. That then runs on the GPU.
bootcode.bin -> Look for start.elf. Load it. That runs on the GPU too.
(config.txt is read somewhere around here)
start.elf -> Look for kernel.img or kernel7.img on Pi2 (or other file if configured in config.txt). Load that. Fire up the ARM CPU(s) and let them run it.

Re: Initial boot environment / boot-strapping a kernel

Posted: Wed Dec 02, 2015 7:16 pm
by JacobL
Not sure if this is what you need, but most people here just need to know the state when their kernel has loaded. Basically the RPi bootloader is meant to boot a Linux kernel, so the environment would be the one that the Linux kernel requires. This is described here: https://www.kernel.org/doc/Documentation/arm/Booting

Re: Initial boot environment / boot-strapping a kernel

Posted: Wed Dec 02, 2015 7:56 pm
by fruitoftheloom
ausppc wrote:Are there any guides or other information about the precise series of events for any RPi system from power-on to kernel loaded and ready for further input?
http://wiki.beyondlogic.org/index.php?t ... ot_Process