PATH![]() |
Because the latest Power Macintosh G3 computer has new hardware features that are different from other Macintosh computers, new software features are needed in addition to the NewWorld requirements for other Macintosh computers. This list includes features that implement the NewWorld approach along with features that support the new hardware features:
In addition to the above new features, changes have been made to the source base for the components of the Mac OS ROM to abstract it from the hardware. These changes are designed to reduce bring-up time and effort, improve reliability of the Mac OS ROM components, and reduce testing time by moving the changes necessary for a new computer to the boot ROM. Some of the hardware components accessed through this new abstracted software are the interrupt controller, ADB, USB, SCSI, ATA (IDE), sound, and Ethernet.
Performance of a Power Macintosh G3 computer using ROM in RAM should exceed performance measurements for other Macintosh computers with comparable CPUs and speeds due to improved interrupt handling with the NewWorld approach. In addition, performance is improved due to executing code that normally exists in ROM in RAM, because the RAM devices operate faster than the ROM devices normally used.
The latest Power Macintosh G3 computer has its Mac OS ROM image stored in RAM. This removes approximately 3 megabytes of RAM from availability for other uses. In effect, a system with 32 megabytes of RAM appears to have only 29 megabytes available. Some portion of the missing 3 megabytes is offset by having fewer patches in RAM. Other mechanisms are being explored in an attempt to minimize the impact of ROM-in-RAM.
Setting the boot volume from the Startup Disk control panel makes all the changes to the boot process that are necessary to operate with a Mac OS ROM image in RAM. The control panel user interface remains unchanged for this release.
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.
The Startup Disk control panel sets the Open Firmware's boot-device configuration variable by modifying the Open Firmware NV-RAM partition that contains the Open Firmware's configuration variables. The format of the NV-RAM partition is defined in the Open Firmware CHRP Binding. The partition is accessed using RTAS.
A Mac OS ROM image that is in write-protected RAM will appear to be a ROM to all MacOS software and applications. Because the image of the Mac OS ROM in RAM appears to be a ROM, the ROM-in-RAM approach is completely compatible with all application and system software.
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 calls the LogicalToPhysical or PrepareMemoryForIO functions when it needs a physical memory address--will continue to work.
Designers of DMA device drivers should refer to Designing PCI Cards and Drivers for the Power Macintosh for a 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..."