| Open Firmware | |
|---|---|
| Status | Withdrawn |
| First published | 28 October 1994 |
| Domain | Boot firmware |
| Website | playground.sun.com at theWayback Machine (archived 2007-06-30) |
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed. Find sources: "Open Firmware" – news ·newspapers ·books ·scholar ·JSTOR(July 2011) (Learn how and when to remove this message) |

Open Firmware is a standard defining the interfaces of a computerfirmware system, formerly endorsed by theInstitute of Electrical and Electronics Engineers (IEEE). It originated atSun Microsystems where it was known asOpenBoot, and has been used by multiple vendors includingSun,Apple,[1]IBM andARM.[citation needed]
Open Firmware allows a system to loadplatform-independentdrivers directly from a PCI device, improving compatibility.
Open Firmware may be accessed through itscommand line interface, which uses theForth programming language.
Open Firmware was described byIEEE standard asIEEE 1275-1994. This standard was not reaffirmed by the Open Firmware Working Group (OFWG) since 1998, and was therefore officially withdrawn by IEEE in May 2005.[2]
Open Firmware defines a standard way to describe the hardware configuration of a system, called thedevice tree.[3] This helps the operating system to better understand the configuration of the host computer, relying less on user configuration and hardware polling. For example, Open Firmware is essential for reliably identifying slaveI2C devices like temperature sensors forhardware monitoring,[4]: §5.1 whereas the alternative solution of performing a blind probe of theI2C bus, as has to be done by software likelm_sensors on generic hardware, is known to result in serious hardware issues under certain circumstances.[4]: §5.2
Open Firmware Forth Code may be compiled into FCode, abytecode which is independent ofinstruction set architecture. APCI card may include a program, compiled to FCode, which runs on any Open Firmware system. In this way, it can provide boot-timediagnostics, configuration code, anddevice drivers. FCode is also very compact, so that a disk driver may require only one or two kilobytes. Therefore, many of the same I/O cards can be used on Sun systems and Macintoshes that used Open Firmware. FCode implementsANS Forth and a subset of the Open Firmware library.
Being based upon an interactive programming language, Open Firmware can be used to efficiently test and bring up new hardware. It allows drivers to be written and tested interactively. Operational video and mouse drivers are the only prerequisite for a graphical interface suitable for end-user diagnostics. Apple shipped such a diagnostic "operating system" in many Power Macintoshes. Sun also shipped an FCode-based diagnostic tool suite called OpenBoot Diagnostics (OBDiag) used by customer service support and hardware manufacturing teams[5]
Several commercial implementations of Open Firmware have been released to the Open Source community since 2006, including Sun OpenBoot, Firmworks OpenFirmware and Codegen SmartFirmware. The source code is available from theOpenBIOS project. Sun's implementation is available under aBSD license.[citation needed]