Open Firmware
From Wikipedia, the free encyclopedia
Open Firmware (also, OpenBoot) is a hardware-independent firmware (computer software which loads the operating system), developed by Mitch Bradley at Sun Microsystems, and used in post-NuBus PowerPC-based Apple Macintosh computers, Sun Microsystems SPARC based workstations and servers, IBM POWER systems, PegasosPPC systems, and the Children's Machine among others. It is available under a BSD license.[1] The proposed Power Architecture Platform Reference will also be Open Firmware based. On those computers, Open Firmware fulfills the same tasks as BIOS does on PC computers.
It is accessed by a user by a Forth-based shell interface. Forth is a powerful high-level language. For example, it is possible to program Open Firmware to solve the Tower of Hanoi problem.[2]
It was described by IEEE standard IEEE 1275-1994, which was not reaffirmed by the OFWG since 1998 and has therefore been officially withdrawn by IEEE. This means it is unavailable from the IEEE, but the last text is available from the Forth research project at the Institute of Computer Languages, Vienna University of Technology in Austria.
Several commercial implementations of Open Firmware have been released to the Open Source community in 2006, including SUN OpenBOOT, Firmworks OpenFirmware and Codegen SmartFirmware. The source code is available from the OpenBIOS project.
Contents |
[edit] Advantages of Open Firmware
Because the Open Firmware Forth code is compiled into FCode (a bytecode) and not into the machine language of any particular computer architecture, Open Firmware code included in, say, an I/O card can be executed by any system that uses Open Firmware. In this way, an I/O card can provide boot-time diagnostics, configuration code, and device drivers that will be usable on any system running Open Firmware, allowing many of the same I/O cards to be used on Sun systems and Macintoshes.
Based on the low-level yet interactive language Forth, Open Firmware can be used to quickly test and bring up new hardware.
[edit] Accessing Open Firmware
Open Firmware displays "ok" as its prompt.
On Sun systems, the Open Firmware interface is displayed on the console terminal prior to the bootstrapping of the system software. If a keyboard is connected, the main video display will be used as the console terminal and Open Firmware can be re-entered at any time by pressing Stop-A (L1-A) on the keyboard. If no keyboard is connected, then the first serial line on the system is usually used as the console and Open Firmware is re-entered by sending a "Break" on the serial line. While the system software is running, various Open Firmware settings can be read or written using the eeprom
command.
On a PowerPC-based[3] Macintosh, the Open Firmware interface can be accessed by pressing the keys Cmd-Option-O-F at startup. This functionality is generally only used by developers; for common users, the Mac OS X operating system provides a high level graphical user interface to change commonly used Open Firmware settings. For instance, it is possible to specify the boot disk or partition without directly using the Open Firmware interface. Other Open Firmware settings can be changed using the nvram
command while the system software is running.
On Pegasos, simply press Esc at startup.
On IBM POWER systems, Open Firmware ("ok" prompt) can be accessed through the SMS Boot Menu. SMS Boot Menu can be accessed by pressing "1" or "F1" during the boot sequence, after hardware checking, and just before the OS boot.
[edit] See also
- Firmware
- Extensible Firmware Interface (EFI)
- LinuxBIOS, a project which aim is to create a free BIOS based on Linux
- Input/Output Base Address
- Advanced Configuration and Power Interface (ACPI)
- BIOS boot devices
- BIOS Interrupt Calls
- Power-On Self Test (POST)
[edit] External links
- http://playground.sun.com/1275/mejohnson/
- http://playground.sun.com/1275/misc/ofwsong.au The Open Firmware Song
- http://www.codegen.com/SmartFirmware/
- http://www.firmworks.com
- http://www.openfirmware.org
- http://www.openbios.org
- http://sunsolve.sun.com/data/802/802-3242/html/TOC.html SUN's SPARC OBP documentation
- http://bananajr6000.apple.com Apple Computer Open Firmware
- http://www.complang.tuwien.ac.at/forth/1275.ps.gz The last IEEE 1275 text
- http://www.openbios.org/viewvc/?root=OpenFirmware Firmworks OpenFirmware source code
- http://www.openbios.org/viewvc/?root=SmartFirmware Codegen SmartFirmware source code
- http://www-941.ibm.com/collaboration/wiki/display/WikiPtype/Boot+Process+on+POWER Boot Process on IBM POWER
[edit] Notes and References
- ^ http://laptop.media.mit.edu/laptopnews.nsf/2e76a5a80bc36cbf85256cd700545fa5/2cc25a58f0d1a6e8852572070033befc?OpenDocument
- ^ Source Code at http://www.kernelthread.com/publications/firmware/src/ofhanoi.txt
- ^ Intel-based Macintoshes do not use Open Firmware; they use Extensible Firmware Interface. See also: Apple's transition to Intel processors