PATH 
ADC Home > Documentation > Hardware > Device Managers and Drivers > PCI Card Services > Designing PCI Cards and Drivers for Power Macintosh Computers


  

NewWorld Components

The three main areas of change, which can be thought of as new components, in the NewWorld architecture are the bootROM, the Mac OS ROM bootinfo file, and the changes in Mac OS system software. Before the NewWorld architecture, the Macintosh ROM contained all of the hardware-specific initialization code, the Mac OS--specific start-up code, and the Toolbox functions. The NewWorld architecture breaks up that monolithic Macintosh ROM into several pieces that are located in two places:

Other operating systems may also use the bootROM and a bootinfo file, but the contents of the bootinfo file are specific to the operating system that boots after logic board and hardware initialization by the code in the bootROM. The contents of the Mac OS ROM bootinfo file listed above are specific to Mac OS implementations.

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 the Open Firmware config variables in NVRAM. The search algorithm for a usable bootinfo file parallels the search mechanism across SCSI, ATA, and other interfaces used in the older Mac OS start-up implementations. The path is specified in a string that looks similar to this:

/pci/mac-io@10/ide@20000/disk@0:5,\System%20Folder\:tbxi

The elements that make up the node portion of the path, everything up to disk@0:, are defined in Section 3.2.2.1 "Node Names" in the IEEE 1275 specification. The remaining elements in the path string are file specific.

By default, the bootinfo file is located by using the blessed folder directory ID dirID in the master directory block, and then searching for a file with a file type of 'tbxi'. Searching by file type is done to allow localization of the filename. The name of the nonlocalized bootinfo file is currently Mac OS ROM. This name may change in the future.

In order for a mass storage drive to be bootable, Open Firmware needs methods for accessing the device at the block level. The Open Firmware deblocker and disk-label packages are useful for providing boot-time services. For standard built-in devices, such as SCSI and ATA, methods are supplied by Open Firmware. For plug-in expansion cards, such as PCI cards, the Open Firmware methods must be supplied in the expansion ROM for the card and must follow the rules defined by the PCI Open Firmware binding specification. See Sample FCode Drivers for a basic example of an FCode block device driver.

Some versions of the Mac OS ROM bootinfo file also contain what has traditionally been part of an enabler. This is only to reduce the number of files in the System Folder, and Open Firmware does not use the enabler components in any way.

A bootinfo file contains Open Firmware script, a description, information for individual operating systems, icons, and other information. A bootinfo file can be extended to contain non--Open Firmware information, which in the case of the Mac OS, is the addition of the Macintosh Toolbox and other code specifically for use by the Mac OS.

Note

The PowerPC Microprocessor Common Hardware Reference Platform (CHRP) System binding to: IEEE Std 1275-1994: Standard for Boot (Initialization, Configuration) Firmware document provides additional information about how a bootinfo file is used. However, it is not the reference specification for the bootinfo file currently in use on the Macintosh platform.


© 1999 Apple Computer, Inc. – (Last Updated 26 March 99)