5.10.3 System p
This section briefly describes the system initialization process for System p servers.
5.10.3.1 Boot methods
SLES supports booting from a hard disk or from a CD-ROM. CD-ROM boots are used for installation and to
perform diagnostics and maintenance. A typical boot is from a boot image on the local hard disk.
5.10.3.2 Boot loader
A boot loader is the first program that is run after the system completes the hardware diagnostics setup in the
firmware. The boot loader is responsible for copying the boot image from hard disk and then transferring
control to it. System p systems boot using a boot loader called Yaboot, which is an abbreviation of Yet
Another Boot Loader. Yaboot is an OpenFirmware boot loader for open firmware-based machines. Yaboot
is considered to be a part of the TSF. For detailed information on Yaboot, see
http://penguinppc.org/bootloaders/yaboot/.
5.10.3.3 Boot process
For an individual computer, the boot process consists of the following steps when the CPU is powered on or
reset:
1. The system runs power on self tests.
2. Yaboot loads the kernel into a contiguous block of real memory and gives control to it with relocation
disabled.
3. Yaboot interacts with OpenFirmware and determines the system configuration, including real
memory layout and the device tree.
4. Yaboot instantiates the Run-Time Abstraction Services (RTAS), a firmware interface that allows the
operating system to interact with the hardware platform without learning details of the hardware
architecture.
5. Yaboot relocates the kernel to real address 0x0.
6. Yaboot creates the initial kernel stack and initializes TOC and NACA pointers.
7. Yaboot builds the hardware page table (HPT) and the segment page table (STAB) to map real
memory from 0x0 to HPT itself.
8. Yaboot enables relocation.
9. Yaboot starts kernel initialization by invoking start_kernel().
10. start_kernel() completes the kernel initialization by initializing Page Tables, Memory
Handling Data Structures, IDT tables, the slab allocator (described in Section 5.5.3.6), system date,
and system time.
11. Yaboot uncompresses the initial RAM file system initrd, mounts it, and then executes
/linuxrc.
12. Yaboot unmounts initrd, mounts the root file system, and executes /sbin/init. Yaboot resets
the pid table to assign process ID one to the init process.
13. /sbin/init determines the default run level from /etc/inittab and performs the following
basic system initialization by executing the script /etc/rc.d/rc.sysinit.
161