Hardware Reference
In-Depth Information
Boot Sequence
This section looks at the startup sequence in greater detail. The participating hardware
components, the files and data elements are considered. The boot procedure consists of
the following sequence of events:
1.
At power-up (or reset), the ARM CPU is offline.
23
2.
A small RISC core in the GPU begins to execute SoC ROM
code (first-stage boot loader).
3.
The GPU initializes the SD card hardware.
4.
The GPU looks at the first FAT32 partition in the SD media.
(There remains some question about specific limitations as
Broadcom has documented this—for example, can it boot
from a first FAT16 partition?)
The second-stage boot-loader firmware named
bootcode.bin
is loaded into the GPU.
5.
The GPU control passes to the loaded
bootcode.bin
firmware
(SDRAM is initially disabled).
6.
The file
start.elf
is loaded by the GPU into RAM from the
SD card.
7.
An additional file,
fixup.dat
, is used to configure the SDRAM
partition between GPU and ARM CPU.
8.
The file
config.txt
is examined for configuration parameters
that need to be processed.
9.
Information found in
cmdline.txt
is presumably also passed
to
start.elf
.
10.
11.
The GPU allows the ARM CPU to execute the program
start.elf
.
The module
start.elf
runs on the ARM CPU, with
information about the kernel to be loaded.
12.
13.
The kernel is loaded, and execution control passes to it.
Boot Files
The FAT32 partition containing the boot files is normally mounted as
/boot
, after
Raspbian Linux has come up. Table
2-1
lists the files that apply to the boot process. The
text files can be edited to affect new configurations. The binary files can also be replaced
by new revisions of the same.