Open Firmware
Encyclopedia
Open Firmware, or OpenBoot in Sun Microsystems
Sun Microsystems
Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

 parlance, is a standard defining the interfaces of a computer firmware
Firmware
In electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices...

 system, formerly endorsed by the Institute of Electrical and Electronics Engineers
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers is a non-profit professional association headquartered in New York City that is dedicated to advancing technological innovation and excellence...

 (IEEE). It originated at Sun, and has been used by Sun, Apple, IBM
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

, and most other non-x86 PCI chipset
Chipset
A chipset, PC chipset, or chip set refers to a group of integrated circuits, or chips, that are designed to work together. They are usually marketed as a single product.- Computers :...

 vendors. Open Firmware allows the system to load platform
Platform (computing)
A computing platform includes some sort of hardware architecture and a software framework , where the combination allows software, particularly application software, to run...

-independent driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

s directly from the PCI card, improving compatibility.

Open Firmware may be accessed through its Forth language shell interface. It achieves essentially the same functionality as the later EFI
Extensible Firmware Interface
The Unified Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware...

 standard initiated at Intel, with lower overhead .

Open Firmware is described by IEEE
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers is a non-profit professional association headquartered in New York City that is dedicated to advancing technological innovation and excellence...

 standard IEEE 1275-1994, which was not reaffirmed by the Open Firmware Working Group (OFWG) since 1998 and has therefore been officially withdrawn by IEEE.

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
OpenBIOS
OpenBIOS is a project aiming to provide free and open source implementations of Open Firmware. It is also the name of such an implementation.Most of the implementations provided by OpenBIOS rely on an additional lower-level firmware for hardware initialization, such as coreboot or Das U-Boot.- Open...

 project. Sun's implementation is available under a BSD license.

Advantages

Open Firmware Forth code may be compiled into FCode, a bytecode
Bytecode
Bytecode, also known as p-code , is a term which has been used to denote various forms of instruction sets designed for efficient execution by a software interpreter as well as being suitable for further compilation into machine code...

 which is independent of computer architecture
Computer architecture
In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

 details such as the instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

 and memory hierarchy
Memory hierarchy
The term memory hierarchy is used in the theory of computation when discussing performance issues in computer architectural design, algorithm predictions, and the lower level programming constructs such as involving locality of reference. A 'memory hierarchy' in computer storage distinguishes each...

. A PCI card
Peripheral Component Interconnect
Conventional PCI is a computer bus for attaching hardware devices in a computer...

 may include a program, compiled to FCode, which runs on any Open Firmware system. In this way, it can provide platform-independent boot-time diagnostics, configuration code, and device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

s. 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.

Open Firmware furthermore defines a standard way to describe the hardware of a system. This helps the operating system to better understand its host computer, relying less on user configuration and hardware polling.

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. Indeed, Apple shipped such a diagnostic "operating system" in many Power Macintoshes.

Access

On Sun SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

 systems, the Open Firmware interface is displayed on the console terminal before 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 Macintosh, the Open Firmware interface can be accessed by pressing the keys at startup. Intel-based Macintoshes do not use Open Firmware; they use Extensible Firmware Interface
Extensible Firmware Interface
The Unified Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware...

, following Apple's transition to Intel processors. Also, early versions (before the PowerBook 3400) connect Open Firmware's input and output to the Modem port by default. This functionality is generally only used by developers or troubleshooting I.T. personnel; for common users, the Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 operating system provides a high level graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 to change commonly used Open Firmware settings. For instance, it is possible to specify the boot disk
Boot disk
A boot disk is a removable digital data storage medium from which a computer can load and run an operating system or utility program. The computer must have a built-in program which will load and execute a program from a boot disk meeting certain standards.Boot disks are used for:* Operating...

 or partition without directly using the Open Firmware interface. Other Open Firmware settings can be changed using the nvram
NVRAM
Non-volatile random-access memory is random-access memory that retains its information when power is turned off, which is described technically as being non-volatile...

command while the system software is running.

On Pegasos
Pegasos
Pegasos is a MicroATX motherboard powered by a PowerPC 750CXe or PowerPC 7447 microprocessor, featuring three PCI slots, one AGP slot, two Ethernet ports , USB, DDR, AC'97 sound, and FireWire...

, the interface is accessed by pressing at startup.

On IBM POWER
IBM POWER
POWER is a reduced instruction set computer instruction set architecture developed by IBM. The name is an acronym for Performance Optimization With Enhanced RISC....

 systems, Open Firmware ("ok" prompt) can be accessed through the SMS Boot Menu. SMS Boot Menu can be accessed by pressing or during the boot sequence, after hardware checking, and just before the OS boot.

On the OLPC XO-1
OLPC XO-1
The XO-1, previously known as the $100 Laptop, Children's Machine, and 2B1, is an inexpensive subnotebook computer intended to be distributed to children in developing countries around the world, to provide them with access to knowledge, and opportunities to "explore, experiment and express...

 laptop open firmware access requires a developer key, that can be obtained after registration with OLPC. After installing the key, upon each power-on, the boot countdown can be interrupted with (the upper left key) to get to the Forth prompt.

See also

  • BIOS
    BIOS
    In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

  • Extensible Firmware Interface
    Extensible Firmware Interface
    The Unified Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware...

  • Unified Extensible Firmware Interface
  • OpenBIOS
    OpenBIOS
    OpenBIOS is a project aiming to provide free and open source implementations of Open Firmware. It is also the name of such an implementation.Most of the implementations provided by OpenBIOS rely on an additional lower-level firmware for hardware initialization, such as coreboot or Das U-Boot.- Open...

  • Coreboot
  • Input/Output Base Address
    Input/Output Base Address
    In the x86 architecture, an input/output base address is a base address of an I/O port. In other words, this is the first address of a range of consecutive I/O port addresses that device uses....

  • Advanced Configuration and Power Interface
    Advanced Configuration and Power Interface
    In computing, the Advanced Configuration and Power Interface specification provides an open standard for device configuration and power management by the operating system....

  • Power-on self-test
    Power-on self-test
    Power-On Self-Test refers to routines run immediately after power is applied, by nearly all electronic devices. Perhaps the most widely-known usage pertains to computing devices...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK