Open Firmware
This article needs additional citations for verification. (July 2011) |

Open Firmware is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers (IEEE). It originated at Sun Microsystems where it was known as OpenBoot, and has been used by multiple vendors including Sun, Apple, IBM and ARM.[1] Open Firmware allows a system to load platform-independent drivers directly from a PCI device, improving compatibility.
Open Firmware may be accessed through its command line interface, which uses the Forth programming language.
Open Firmware is described by IEEE standard as IEEE 1275-1994, which was not reaffirmed by the Open Firmware Working Group (OFWG) since 1998, and has therefore been officially withdrawn by IEEE in May 2005.[2][3]
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 the OpenBIOS project. Sun's implementation is available under a BSD license.[4]
Features
Open Firmware defines a standard way to describe the hardware configuration of a system, called the device tree.[5] 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 slave I2C devices like temperature sensors for hardware monitoring,[6]: §5.1 whereas the alternative solution of performing a blind probe of the I2C bus, as has to be done by software like lm_sensors on generic hardware, is known to result in serious hardware issues under certain circumstances.[6]: §5.2
Open Firmware Forth Code may be compiled into FCode, a bytecode which is independent of instruction set architecture. A PCI card may include a program, compiled to FCode, which runs on any Open Firmware system. In this way, it can provide boot-time diagnostics, configuration code, and device 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 implements ANS 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[7]
See also
- BIOS
- Libreboot
- Coreboot
- PowerPC Reference Platform
- Common Hardware Reference Platform
- Das U-Boot
- Input/output base address
- OpenBIOS
- Power-on self-test
- UEFI
- Advanced RISC Computing
- System Reference Manual
References
- ^ "Building OFW for ARM". Archived from the original on 26 February 2015. Archived 27 February 2015 at archive.today
- ^ IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices. 28 October 1994. pp. 1–262. doi:10.1109/IEEESTD.1994.89427. ISBN 978-0-7381-1194-0.
- ^ "IEEE Standards Association". IEEE Standards Association. Retrieved 26 April 2023.
- ^ "Welcome to OpenBIOS". Archived from the original on 27 April 2012. Retrieved 10 May 2012. Archived 8 September 2012 at archive.today
- ^ Mauro, Jim (2001). Solaris Internals: Core Kernel Components. Prentice-Hall Professional. p. 107. ISBN 9780130224965.
- ^ a b Constantine A. Murenin (21 May 2010). "5.1. Open Firmware and I2C". OpenBSD Hardware Sensors – Environmental Monitoring and Fan Control (MMath thesis). University of Waterloo: UWSpace. hdl:10012/5234. Document ID: ab71498b6b1a60ff817b29d56997a418.
- ^ "Sun Enterprise 250 Server Owner's Guide > Chapter 12 Diagnostics and Troubleshooting > About OpenBoot Diagnostics (OBDiag)". Archived from the original on 7 March 2021. Archived 31 December 2022 at archive.today
External links
- OPEN FIRMWARE HOME PAGE (via Internet Archive)
- Sun's OpenBoot 2.x command reference manual (Revision A, November 1995)
- Sun's SPARC OpenBoot 4.x command reference manual
- The last IEEE 1275 text
- Firmworks OpenFirmware source code
- Codegen SmartFirmware source code
- Boot Process on IBM POWER (via Internet Archive)
- OFW FAQ on OLPC Wiki
- Aurora SPARC Linux OBP reference guide (via Internet Archive)
- Quick Reference
- TinyBoot aka Tiny Open Firmware: an embeddable OpenFirmware-like system for small CPUs (via Internet Archive)