Open Firmware
Open Firmware is an IEEE 1275-1994 standard for hardware independent firmware built on top of a Forth machine. Open Firmware was initially used on early SPARCstations under the name OpenBoot but was later popularized by PowerPC Macs. Despite the demise of that platform in favor of the x86 and ARM-based Macs, Open Firmware sees continued use with the OpenBIOS project as an optional firmware payload. Open Firmware was designed to be modular and noticeably easier to port to new architectures compared to other options such as legacy BIOS or UEFI firmware.
Of note, Open Firmware was the system firmware of choice for the ill-fated OLPC XO-1 laptop project. This might have proved Open Firmware's swan song were it not for the efforts of the OpenBIOS community which continues the firmware's development. Largely as a result of their efforts, Open Firmware remains a reasonably common payload for the system initializer Coreboot, allowing anyone to deploy OpenBIOS implementation of Open Firmware on coreboot supported hardware. Today it is most commonly encountered "in the wild" on very high security workstations and servers. It is also relatively popular as a payload for the Raspberry Pi Pico RP2040.
Accessing Open Firmware
- On a New World Mac at boot time, Open Firmware's Forth prompt can be accessed Option+Command+O+F.
- On a SPARC system with OpenBoot (Open Firmware) at boot time, the Forth prompt can be accessed via Stop+a.
- On an OLPC at boot time, when the chime sounds hit Esc but do not hold it down.
- Alternatively, on a running OLPC system type echo y > /proc/sysrq-trigger.
Using the Forth Interpreter
The Forth interpreter prompt should closely resemble:
ok
0 >
Most recent Open Firmware implementations implement a line-editor with Emacs-like keybindings. This is an optional feature that the PPC-era Macs popularized and its presence is still common.
See Also
- Coreboot — a free and open-source hardware initializing firmware which supports multiple boot ROM payloads.
- BIOS — the standard firmware of IBM-PC-compatible computers until it was phased out in 2020.
- UEFI — a firmware standard for boot ROM designed to provide a stable API for interacting with system hardware. On x86 it replaced the legacy BIOS.
- Forth — a heavily stack-oriented self-compiling procedural programming language that is only slightly more abstract than assembly.
External Resources
- OpenBIOS a wiki dedicated to Open Firmware-based projects.
- Building Open Firmware for QEMU.
- Building Open Firmware as a x86 BIOS Payload.
- Building Open Firmware as a Coreboot Payload.
- Building Open Firmware for ARM.
Open Firmware Distributions
- C Forth a modernized fork of the OLPC firmware and Forth interpreter.
- OpenBIOS the first published Open Source IEEE 1275-1994 Open Firmware implementation.
- Open Firmware as used by the OLPC laptop among others.
- SmartFirmware Codegen's implementation of Open Firmware.
- OpenBoot Sun's implementation of Open Firmware.
- Slimline Open Firmware (SLOF) for virtualized guests on IBM POWER architecture.