Boot rom contents, Post code, Boot rom contents 5 – Apple iMac User Manual
Page 60

C H A P T E R 5
Software
60
Boot ROM Contents
in RAM appears to be a ROM, the ROM-in-RAM approach is completely
compatible with all application and system software.
The Mac OS ToolBox image is kept in a file in the System Folder on the specified
boot device. In order to avoid problems with internationalizing the name, the
file is located by file type instead of by name.
In order for Open Firmware to retrieve the ToolBox image file, it must be able to
read the selected boot device. If the ToolBox image file is on a partition that is
on a RAID, encrypted, striped, or otherwise non-standard device, Open
Firmware must be able to read from these devices in order to boot Mac OS. Two
possible solutions to this problem are to have a standard partition available on
the device that contains the ToolBox image file, or to provide Open Firmware
methods to read the file.
The main incompatibility that ROM-in-RAM approach introduces is that
memory is not mapped one-to-one, as it has been for previous PCI-based Macs.
Software that assumes the logical and physical addresses are the same will fail,
even when Virtual Memory is not on. Well-behaved software—that is, software
that calls the
LogicalToPhysical
or
PrepareMemoryForIO
functions when it needs
a physical memory address—will continue to work.
Boot ROM Contents
5
The Boot ROM contains the code needed to start up the computer, initialize and
examine the hardware, provide a device tree to describe the hardware, provide
hardware access services (RTAS), and control to the OS. The Boot ROM can be
grouped into the following major pieces.
POST Code
5
This is the code executed when the computer first boots. This encompasses
many of the traditional Mac ROM operations and is based on the hardware
initialization code used in the past: setup and initialization of the processor and
ASICs, a boot beep, an error beep, diagnostics, and transfer to Open Firmware.
A small debugging Mini-Nub is part of this section. It allows prodding and
poking with some MacsBug-like commands. Getting into the Debugger Nub is
not possible using standard user interface input, however.