Open Firmware

Last updated
OpenBoot screenshot OpenBoot on UltraSparc5.png
OpenBoot screenshot

Open Firmware, or OpenBoot in Sun Microsystems parlance, 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, and has been used by Sun, Apple, IBM, ARM [1] and most other non-x86 PCI chipset vendors. Open Firmware allows the system to load platform-independent drivers directly from the PCI card, improving compatibility.

Sun Microsystems defunct computer hardware and software company which was based in Santa Clara

Sun Microsystems, Inc. was an American company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the Network File System (NFS), and SPARC. Sun contributed significantly to the evolution of several key computing technologies, among them Unix, RISC processors, thin client computing, and virtualized computing. Sun was founded on February 24, 1982. At its height, the Sun headquarters were in Santa Clara, California, on the former west campus of the Agnews Developmental Center.

Firmware low-level software traditionally held in ROM

In electronic systems and computing, firmware is a specific class of computer software that provides the low-level control for the device's specific hardware. Firmware can either provide a standardized operating environment for the device's more complex software, or, for less complex devices, act as the device's complete operating system, performing all control, monitoring and data manipulation functions. Typical examples of devices containing firmware are embedded systems, consumer appliances, computers, computer peripherals, and others. Almost all electronic devices beyond the simplest contain some firmware.

Institute of Electrical and Electronics Engineers scholarly society, publisher and standards organization, headquartered in US

The Institute of Electrical and Electronics Engineers (IEEE) is a professional association with its corporate office in New York City and its operations center in Piscataway, New Jersey. It was formed in 1963 from the amalgamation of the American Institute of Electrical Engineers and the Institute of Radio Engineers.

Contents

Open Firmware may be accessed through its Forth language shell interface. It achieves essentially the same functionality as the later EFI standard initiated at Intel, with lower overhead [ citation needed ].

Forth is an imperative stack-based computer programming language and environment originally designed by Charles "Chuck" Moore. Language features include structured programming, reflection, concatenative programming and extensibility. Although not an acronym, the language's name is sometimes spelled with all capital letters as FORTH, following the customary usage during its earlier years.

Intel American semiconductor company

Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, in the Silicon Valley. It is the world's second largest and second highest valued semiconductor chip manufacturer based on revenue after being overtaken by Samsung, and is the inventor of the x86 series of microprocessors, the processors found in most personal computers (PCs). Intel ranked No. 46 in the 2018 Fortune 500 list of the largest United States corporations by total revenue.

Open Firmware is described by IEEE 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 project. Sun's implementation is available under a BSD license. [2]

OpenBIOS is a project aiming to provide free and open source implementations of Open Firmware. It is also the name of such an implementation.

Advantages

Open Firmware Forth Code may be compiled into FCode, a bytecode which is independent of computer architecture details such as the instruction set and memory hierarchy. A PCI card 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 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.

Bytecode, also termed portable code or p-code, is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references that encode the result of compiler parsing and performing semantic analysis of things like type, scope, and nesting depths of program objects.

Computer architecture Set of rules and methods that describe the functionality, organization, and implementation of computer systems

In computer engineering, computer architecture is a set of rules and methods that describe the functionality, organization, and implementation of computer systems. Some definitions of architecture define it as describing the capabilities and programming model of a computer but not a particular implementation. In other definitions computer architecture involves instruction set architecture design, microarchitecture design, logic design, and implementation.

Memory hierarchy computer architecture that separates storage into a hierarchy based on response time

In computer architecture, the memory hierarchy separates computer storage into a hierarchy based on response time. Since response time, complexity, and capacity are related, the levels may also be distinguished by their performance and controlling technologies. Memory hierarchy affects performance in computer architectural design, algorithm predictions, and lower level programming constructs involving locality of reference.

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. 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 [3]

Access

On Sun SPARC 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 ⌘ Cmd+⌥ Option+O+F at startup (⊞ Win+Alt+O+F if using standard PC USB keyboard). Intel-based Macintoshes do not use Open Firmware; they use Extensible Firmware Interface, 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.[ citation needed ] This functionality is generally only used by developers or troubleshooting I.T. personnel; 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, but with some limitations (e.g. it is not possible to select boot from USB mass-storage devices, but Open Firmware allows iMac to boot using boot ud:,\\:tbxi command). Other Open Firmware settings can be changed using the nvram command while the system software is running. [4]

On Pegasos, the interface is accessed by pressing 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.

On the OLPC XO-1 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 Esc (the upper left key) to get to the Forth prompt.

See also

Related Research Articles

BIOS classic firmware of x86-based PCs

BIOS is non-volatile firmware used to perform hardware initialization during the booting process, and to provide runtime services for operating systems and programs. The BIOS firmware comes pre-installed on a personal computer's system board, and it is the first software to run when powered on. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

In computing, booting is starting up a computer or computer appliance until it can be used. It can be initiated by hardware such as a button press or by software command. After the power is switched on, the computer is relatively dumb and can read only part of its storage called read-only memory (ROM). There, a small program is stored called firmware. It does power-on self-tests, and most importantly, allows accessing other types of memory like a hard disk and main memory. The firmware loads bigger programs into the computer's main memory and runs it. In general purpose computers, but additionally in smartphones and tablets, optionally a boot manager is run. The boot manager lets a user choose which operating system to run and set more complex parameters for it. The firmware or the boot manager then loads the boot loader into the memory and runs it. This piece of software is able to place an operating system kernel like Windows or Linux into the computer's main memory and run it. Afterwards, the kernel runs so-called user space software – well known is the graphical user interface (GUI), which lets the user log in to the computer or run some other applications. The whole process may take seconds to tenths of seconds on modern day general purpose computers.

Preboot Execution Environment Preboot Execution Environment

In computing, the Preboot eXecution Environment specification describes a standardized client-server environment that boots a software assembly, retrieved from a network, on PXE-enabled clients. On the client side it requires only a PXE-capable network interface controller (NIC), and uses a small set of industry-standard network protocols such as DHCP and TFTP.

A host controller interface (HCI) is a register-level interface that enables a host controller for USB or IEEE 1394 hardware to communicate with a host controller driver in software. The driver software is typically provided with an operating system of a personal computer, but may also be implemented by application-specific devices such as a microcontroller.

The Macintosh Toolbox is a set of application programming interfaces with a particular access mechanism. They implement many of the high-level features of the Classic Mac OS. The Toolbox consists of a number of "managers," software components such as QuickDraw, responsible for drawing onscreen graphics, and the Menu Manager, which maintain data structures describing the menu bar. As the original Macintosh was designed without virtual memory or memory protection, it was important to classify code according to when it should be loaded into memory or kept on disk, and how it should be accessed. The Toolbox consists of subroutines essential enough to be permanently kept in memory and accessible by a two-byte machine instruction; however it excludes core "kernel" functionality such as memory management and the file system. Note that the Toolbox does not draw the menu onscreen: menus were designed to have a customizable appearance, so the drawing code was stored in a resource, which could be on a disk.

Unified Extensible Firmware Interface


The Unified Extensible Firmware Interface (UEFI) is a specification that defines a software interface between an operating system and platform firmware. UEFI replaces the Basic Input/Output System (BIOS) firmware interface originally present in all IBM PC-compatible personal computers, with most UEFI firmware implementations providing legacy support for BIOS services. UEFI can support remote diagnostics and repair of computers, even with no operating system installed.

American Megatrends International (AMI) is an American hardware and software company, specializing in PC hardware and firmware. The company was founded in 1985 by Pat Sarma and Subramonian Shankar. Shankar was appointed chairman and president in 2011. It is headquartered in Building 200 at 5555 Oakbrook Parkway in unincorporated Gwinnett County, Georgia, United States, near the city of Norcross, and in the Atlanta metropolitan area.

QEMU Free virtualization and emulation software

QEMU is a free and open-source emulator that performs hardware virtualization.

The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system's CPU, firmware and operating system. IPMI defines a set of interfaces used by system administrators for out-of-band management of computer systems and monitoring of their operation. For example, IPMI provides a way to manage a computer that may be powered off or otherwise unresponsive by using a network connection to the hardware rather than to an operating system or login shell. Another use case may be installing a custom operating system remotely. Without IPMI, installing a custom operating system may require an administrator to be physically present near the computer, insert a DVD or a USB flash drive containing the OS installer and complete the installation process using a monitor and a keyboard. Using IPMI, an administrator can mount an ISO image, simulate an installer DVD, and perform the installation remotely.

Apple's Intel Transition was the process of changing the Central Processing Unit (CPU) of Macintosh computers from PowerPC processors to Intel x86 processors. The transition became public knowledge at the 2005 Worldwide Developers Conference (WWDC), when Apple's CEO Steve Jobs made the announcement that the company would make a transition from the use of PowerPC microprocessors supplied by Freescale and IBM in its Macintosh computers, to processors designed and manufactured by Intel, a chief supplier for most of Apple's competitors.

The Unified Extensible Firmware Interface Forum or UEFI Forum is an alliance between several leading technology companies to modernize the booting process. The board of directors includes representatives from thirteen "Promoter" companies: AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., IBM, Insyde Software, Intel, Lenovo, Microsoft, and Phoenix Technologies.

The Apple–Intel architecture, or Mactel, is an unofficial name used for Apple Macintosh personal computers developed and manufactured by Apple Inc. that use Intel x86 processors, rather than the PowerPC and Motorola 68000 ("68k") series processors used in their predecessors. With the change in architecture, a change in firmware became necessary; Apple selected the Intel-designed Extensible Firmware Interface (EFI) as its comparable component to the Open Firmware used on its PowerPC architectures, and as the firmware-based replacement for the PC BIOS from Intel. With the change in processor architecture to x86, Macs gained the ability to boot into x86-native operating systems, while Intel VT-x brought near-native virtualization with Mac OS X as the host OS.

Live USB USB flash drive or a USB external hard disk drive containing a full operating system that can be booted

A live USB is a USB flash drive or external hard disk drive containing a full operating system that can be booted. They are the evolutionary next step after live CDs, but with the added benefit of writable storage on the live USB itself, allowing customizations to the booted operating system. Live USBs can be used in embedded systems for system administration, data recovery, or test driving, and can persistently save settings and install software packages on the USB device.

The EFIsystem partition or ESP is a partition on a data storage device that is used by computers adhering to the Unified Extensible Firmware Interface (UEFI). When a computer is booted, UEFI firmware loads files stored on the ESP to start installed operating systems and various utilities.

Intel Active Management Technology

Intel Active Management Technology (AMT) is hardware and firmware technology for remote out-of-band management of personal computers, running on the Intel Management Engine, a separate microprocessor not exposed to the user, in order to monitor, maintain, update, upgrade, and repair them. Out-of-band (OOB) or hardware-based management is different from software-based management and software management agents.

Proprietary firmware is any firmware on which the producer has set restrictions on use, private modification, copying, or republishing.

BootX (Apple)

BootX is a software-based bootloader designed and developed by Apple Inc. for use on the company's Macintosh computer range. BootX is used to prepare the computer for use, by loading all required device drivers and then starting-up Mac OS X by booting the kernel on all PowerPC Macintoshes running the Mac OS X 10.2 operating system or later versions.

SeaBIOS

SeaBIOS is an open-source implementation of a 16-bit x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.

References

  1. Building Open Firmware for ARM
  2. "OpenBIOS" . Retrieved 10 May 2012.
  3. https://docs.oracle.com/cd/E19088-01/250.srvr/805-3389-11/6j37qsqsj/index.html
  4. Apple's Transition from Open Firmware to Extensible Firmware Interface, mactech, 2007.