PATHADC Home > Documentation > Hardware > iBook Developer Note

Up Previous Next 

Boot Process

The boot process for the iBook is similar to that for other Macintosh computers that use the ROM-in-RAM approach.

Note

The iBook does not have the ability to start up in response to the power key on an external Apple USB keyboard.

The PowerPC processor executes its reset vector as defined by the Hardware Initialization code. This code runs diagnostics tests, and when enough hardware initialization has been performed to run Open Firmware, the boot beep sound is played and Open Firmware begins executing. The Open Firmware module probes the system's I/O buses to determine the device configuration and builds a device tree describing the hardware it finds.

The boot device, selected by the user with the Startup Disk control panel, is stored in Open Firmware's NVRAM. Open Firmware attempts to locate that boot device (which may be a hard disk, CD, or network connection); if it is not found, Open Firmware searches for a suitable boot device according to a predetermined search order.

Once the boot device has been found, the Mac OS ROM image is loaded into memory, decompressed, and write-protected so that it behaves just like a ROM.

The user may interrupt Open Firmware's boot device selection by holding down the option key while booting. This invokes the OS Picker, an Open Firmware application that lets the user select an alternate operating system or boot device. The default OS is the Mac OS ROM image, loaded from the current startup device.

Some of the Mac OS ROM boot code is written in 68K code. In order to run the 68K ROM, the PowerPC Nanokernel is loaded, and the emulator task is started. The emulator begins executing code in the 68K ROM. This code uses the device tree provided by Open Firmware to install device drivers, Macintosh OS Services (referred to as Toolbox Managers), and finally the ROM loads the rest of the operating system from the startup device.


© 1999-2000 Apple Computer, Inc. – (Last Updated 15 Feb 00)

Up Previous Next