http://mcosre.sourceforge.net/docs/open_firmware/of_overview.html
12/5/2007

Open Firmware Overview

 


[Home] | [About McOS Re] | [FAQ] | [Changes] | [Progress] | [Documentation] | [Links]


 
Firmware is the ROM-based software that controls a computer between the time it is turned on and the time the primary operating system takes control of the machine. Firmware's responsibilities include testing and initializing the hardware, determining the hardware configuration, loading (or booting) the operating system, and providing interactive debugging facilities in case of faulty hardware or software.

Open Firmware is processor and system independent boot firmware. Open Firmware is the non-proprietary name of firmware complying with the IEEE Std 1275-1994: Standard for Boot (Initialization, Configuration) Firmware, Core Requirements and Practices.

Among Open Firmware's many features, it provides a machine independent device interface, which can be used to boot plug-in cards without providing OS-specific and/or machine dependent binary programs on the plug-in card. This feature enables plug-in card manufacturers to easily support several independent computer architectures without needing to supply different firmware for each one.

Open Firmware is based on Sun Microsystem's OpenBoot 2.x implementations and complies with ANS (ANSI) Forth. OpenBoot 3.x, shipping on Sun's 64-bit UltraSparc based systems, complies with the Open Firmware standard.

Apple Computer's line of PCI bus-based Power Macintosh(tm) desktop systems are shipping with Open Firmware.


Open Firmware's primary task is to control the machine from the time power is applied until the primary operating system has been loaded and has taken control of the machine.

In typical operation, Open Firmware performs the following sequence of operations, in the order given:
    a) Initialize and test built-in devices.
    b) Locate, initialize, and test plug-in devices.
    c) Load and execute a client program.
    d) Provide services requested by the client program.