Technical information

CHAPTER 5
System Software
80 Boot ROM Contents
The Mac OS ROM image is kept in a file in the System Folder on the specified
boot device. In order to avoid problems with localizing the name, the file is
located by file type instead of by name.
In order for Open Firmware to retrieve the Mac OS ROM image file, it must be
able to read the selected boot device. If the Mac OS ROM 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
the Mac OS. Two possible solutions to this problem are to have a standard
partition available on the device that contains the Mac OS ROM 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 always calls the
LogicalToPhysical or PrepareMemoryForIO functions when it
needs a physical memory address—will continue to work.
IMPORTANT
Designers of DMA device drivers should refer to Designing
PCI Cards and Drivers for Power Macintosh Computers for
information about using the PrepareMemoryForIO function to
set up mapping for physical and logical addresses. The
relevant section is on pages 219–229. For device drivers
running with the NewWorld software, the sentence on
page 227 that says “Certain DMA transactions require both
mapping tables” should be interpreted to mean “All DMA
transactions...”
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 operating system. The boot
ROM can be grouped into the following major pieces.