Developer Documentation
PATHHardware Documentation > iMac Developer Note


Features of the New Approach

Because the iMac 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 of the iMac computer.

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.

The NewWorld architecture has a ToolBox ROM image that is high-level enough to be used on many different Macintosh computers. Although the iMac is the first Macintosh computer to use it, this new architecture is intended for use on all future Macintosh computers.

Performance

Performance of an iMac 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 New World 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.

RAM Footprint

The iMac is the first Macintosh computer to have its Toolbox ROM image stored in RAM. This removes approximately 3 megabytes of RAM from Mac OS usage. 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.

User Experience

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 ToolBox image in RAM. The control panel user interface remains unchanged for this release.

Data Structures and Files

The ToolBox ROM image is contained in a new file, named "Mac OS ROM", that is kept in the System Folder. The ToolBox ROM image is exactly the same as it would be if it were an actual ToolBox ROM, containing the ToolBox 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.

Compatibility

A Mac OS ToolBox image that is in write-protected RAM will appear to be a ROM to all MacOS software and applications. Because the image of the ToolBox 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.


© 1998 Apple Computer, Inc.