![]() |
PATH![]() |
The Toolbox image file (also called the bootinfo file) contains three main components, each of which is made up of smaller components: the pieces that are part of the bootinfo specification, the Trampoline code, and the ToolBox ROM Image itself.
Most changes needed for a new CPU occur in the Boot ROM, not in the bootinfo file. Changes to the ToolBox ROM Image should be limited to new manager software and support for hardware that is common to many Macintosh computers (ATA interface modules, user interface modules, and the like).
The bootinfo file exists on the boot device and has a localizable name. Identification information that leads to the file's path is stored in NV-RAM and the search algorithm for a usable bootinfo file parallels the search mechanism across SCSI, ATA, etc., used in the former startup disk routine. By default, the file is located by using the directory ID of the "blessed folder" in the boot block of each HFS or HFS Plus partition, and then searching for a file with a file type of 'tbxi' . Searching by file type is done to allow localization of the file. Non-localized, the name of the bootinfo file is "Mac OS ROM".
The bootinfo components normally do not need to be changed for each new product. The Open Firmware script is automatically modified at build time to have the correct offsets within the bootinfo file to the other two main components.
The Trampoline code is the component of the NewWorld architecture that handles the transition between Open Firmware and the ToolBox ROM Image. It retrieves all necessary information about the system from Open Firmware, instantiates RTAS, decompresses the ToolBox ROM Image, locates the Mac OS NV-RAM partition, formats the system information into tables and data structures for Mac OS, terminates Open Firmware, moves information in memory to safe locations, and transfers control to the ToolBox ROM Image.
The NewWorld version of the ToolBox ROM Image is similar to the old ToolBox ROM in that it has a similar layout and contains many of the same components as it did before.
The ToolBox ROM Image includes code that contains hardware-specific support, including ADB, VIA, Cuda/Egret, MESH SCSI, Heathrow/CHRP/UltraDMA ATA AIMs. In the future, they can be moved out of the ToolBox ROM Image when there is a mechanism to load them from a boot volume at boot time.