PowerBook: Information About ROM-in-RAM
Hardware-specific code resides in firmware (ROM) that fits into one ROM called the boot ROM. The boot ROM includes the code and tables needed to start up the computer, load an operating system, and provide common hardware access services.
All higher-level software resides in what has been historically known as the Mac OS ROM, but with much of the old hardware-specific code moved into the boot ROM. As before, the Mac OS ROM can still be augmented by enablers, the System file, and extensions.
Prior to the iMac, all Macintosh computers required a ROM component that contained many components of the Mac OS software. The ROM-in-RAM approach sidesteps this requirement by copying an image of the Mac OS ROM into RAM before the Mac OS begins operation. Once Mac OS begins operation, a Mac OS ROM image in RAM and an actual Mac OS ROM behave in the same way. No new or different software interfaces are directly accessible from the Mac OS. During the boot process, software contained in the Mac OS ROM file communicates with Open Firmware to collect information about the hardware, using the Open Firmware Client Interface.
Performance of a PowerBook computer using ROM-in-RAM should exceed performance measurements for other Macintosh computers with comparable microprocessors and speeds due to the improved interrupt handling with the ROM-in-RAM approach. In addition, performance is improved because code that used to exist in ROM is now in RAM and RAM chips operate faster than the ROM chips.
Because the Mac OS ROM image is stored in RAM, approximately 3 megabytes of RAM is removed from availability for other uses. In effect, a system with 64 megabytes of RAM appears to have only 61 megabytes available. Some portion of the missing 3 megabytes is offset by having fewer patches in RAM.
Data Structures and Files
The Mac OS ROM image is contained in a new file, named "Mac OS ROM", that is kept in the System Folder. The Mac OS ROM image is exactly the same as it would be if it were an actual Mac OS ROM, containing the high-level software, the kernel software, and the 68K emulator.
Startup Disk Control Panel
Previous systems stored the user's selected startup device in PRAM when the user selected a device in the Startup Disk control panel. This device was honored by the Mac OS ROM unless the selected device was unavailable or was overridden by the user. The startup disk routine for the ROM-in-RAM PowerBook computers, rather than setting Mac OS PRAM, sets an Open Firmware configuration variable called boot-device. This setting is honored by Open Firmware unless the selected device is unavailable or is overridden by the user.
Pressing the following keys during the startup sequence can be used to override the selected startup device.
- Command-Option-Shift-Delete: Ignore the device that is selected in the Startup Disk control panel.
- C: Force the internal CD-ROM drive to be the startup device.
- D: Force the internal hard disk to be the startup device.
Open Firmware and Startup Devices
In order for a device supported by an expansion card (for example a SCSI PC card) to participate in the startup process (for example, to start up from a drive connected to that SCSI PC card), the card must include an expansion ROM containing startup firmware. Expansion cards for startup devices must contain all the driver code required during startup in the expansion ROM on the card. Depending on their functions, such cards may also need to provide support resources such as fonts.
Examples of devices needed during system startup include display, keyboard, and mouse devices, and storage devices such as hard drives and CD-ROM drives.
Important: If Open Firmware code is not included in the expansion card for a startup device, the card will not be usable until the operating system loads its supporting software from disk after the startup process has concluded.