NewWorld Boot Process
The following list provides a high-level overview of the execution path taken when a NewWorld-based computer boots the Mac OS:
-
User presses power key. Between the time that the power key is pressed and the boot beep is heard, while the screen is still black, a ROM checksum is taken, the processor is checked, the interrupt controller is started, all the clocks are determined, the memory controller is initialized, NVRAM is checked, RAM is sized checked and initialized, and the L2 cache is sized and prepared (L2 cache is enabled in POST).
-
The POST code runs (preliminary diagnostics, boot beep, initialization, and setup). This is like similar code in an older Macintosh ROM, but it is different in that it does not contain code specific to an operating system.
-
Open Firmware initializes begins probing the hardware and the PCI bus to locate attached interfaces and hardware so that is can begin building the device tree.
-
Open Firmware loads the Mac OS ROM image file, based on defaults and the path settings found in NVRAM.
-
Open Firmware executes the Forth script in the bootinfo file, which contains information about the rest of the file and instructions to read both the Trampoline code and the Mac OS ROM file and place them into a temporary place in memory.
-
The Forth script transfers control to the Trampoline code, which functions as the transition between Open Firmware and the beginning of the Mac OS execution.
-
The Trampoline code gathers information about the system from Open Firmware, creates data structures based on this information, terminates Open Firmware, and moves the contents of memory to an interim location in physical memory space.
-
The Trampoline code transfers control to the Mac OS ROM initialization code.
The boot sequence, up to loading and execution of the Mac OS ROM bootinfo file, is controlled by Open Firmware. To provide a user experience like that of previous Macintosh computers, Open Firmware supports keyboard input for searching for possible boot devices, and user redirection of boot devices. The keyboard input is done by holding down a specific key or key combinations. These keys are referred to as snag keys. The supported snag keys are listed in
Table 3-1.
Table 3-1
Snag keys supported by Macintosh Open Firmware
Key or key combination
|
Definition
|
c
|
Redirect booting to the device alias CD. If no bootable partition is found on the CD, display blinking folder.
|
d
|
Redirect booting to the device alias hard drive. If no bootable partition is found on the hard drive, display blinking folder.
|
n
|
Redirect booting to the device alias
enet
for BOOTP or TFTP network booting.
|
z
|
Redirect booting to the device alias ZIP. If no bootable partition is found on the Zip drive, display blinking folder.
|
Command-option-shift-delete
|
Redirect booting to any device other than the device specified in the device alias boot-device.
|
When the user selects a startup device in the Startup Disk control panel, the control panel no longer sets a value in Mac OS PRAM, but rather generates an Open Firmware path to the device and saves that path in NVRAM as Open Firmware's
boot-device
config variable. Open Firmware tries booting from the device specified by
boot-device
first. If this device is unavailable or the user has overridden the standard startup behavior with keyboard input, Open Firmware scans other devices looking for bootable drives. Once Open Firmware selects a device, it reports a path to that device in the
bootpath
property in the chosen device tree node. The
bootpath
property is what the Mac OS ROM subsequently uses to locate and load the Mac OS from disk.
Additional information about the requirements for participating in the boot process on a NewWorld-compatible Macintosh can be found in
Startup and System Configuration
© 1999 Apple Computer, Inc. (Last Updated 26 March 99)