
Chapter 3: Getting More Involved
© PHYTEC America LLC 2009 13
L-715e_0
3.5 Overview of the Boot Process
Before proceeding into the following sections it is helpful to first have an understanding of the
entire boot process and the software components required to boot and run Linux on the
phyCORE-LPC3250.
There are six software components that are involved in bringing Linux to life on the phyCORE-
LPC3250. A brief description of each is given below.
1. LPC3250 on-chip bootstrap software -- This software component is part of the LPC3250
SoC itself. It is the very first piece of software that is executed after a system reset/power
cycle. The bootstrap software is capable of booting code from several sources, including
UART, SPI, external memory bus, and NAND Flash.
2. Kickstart Loader (KS) -- This software component is stored in the NAND Flash at block 0
and is loaded into IRAM and executed by the on-chip bootstrap software. The Kickstart
Loader does some GPIO initialization and then proceeds to load the Stage 1 Loader into
IRAM and transfer execution to it.
3. Stage 1 Loader (S1L) -- This software component is stored in the NAND Flash and is
loaded into IRAM and executed by the Kickstart Loader. The S1L does additional low level
initiaization, including SDRAM, and allows interaction with the outside world via a
command line driven interface over a terminal session. The S1L is responsible for loading
U-Boot into SDRAM and transfering execution to it.
4. Das U-Boot -- This software component is one of the leading bootloaders used to boot the
Linux kernel. It is feature rich supporting environment variables, NAND Flash, and
Ethernet (TFTP) to name a few. U-Boot is responsible for loading the Linux kernel into
SDRAM and transfering execution to it.
5. Linux Kernel -- This is the monolithic kernel that is the Linux Operating System.
6. Root File System -- This software component contains all of the data associated with
particular software components installed on the system, configuration files, device nodes,
etc... that are available to a user when the operating system is running.
After a reset the normal boot procedure becomes:
1. On-chip bootstrap executes and boots the Kickstart Loader.
2. Kickstart Loader executes and boots the Stage 1 Loader.
3. Stage 1 Loader executes and boots Das U-Boot.
4. Das U-Boot executes and boots the Linux kernel.
The Kickstart Loader, Stage 1 Loader, and Das U-Boot are relatively stable components that do
not require frequent modifications or rebuilds. During development these components are always
flashed to the SOM because of their static, stable nature.
The Linux kernel and root file system can change often during system development and debug.
Because of this it is desirable to have these components loaded dynamically onto the target SOM
until they’ve reached a mature, stable status that is unlikely to change. Dynamic loading and
access of the Linux kernel and root file system is done via TFTP and NFS, as explained in the
previous sections of this document.