Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Open Firmware
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Standard for computer bootstrap code}} {{distinguish|open-source firmware}} {{Infobox technology standard | title = Open Firmware | long_name = | image = | image_size = | alt = | caption = | abbreviation = | native_name = <!-- Name in local language. If more than one, separate using {{plain list}} --> | native_name_lang = <!-- ISO 639-1 code e.g. "fr" for French. If more than one, use {{lang}} inside native_name items instead --> | status = Withdrawn | year_started = <!-- {{Start date|YYYY|MM|DD|df=y}} --> | first_published = 28 October 1994 | version = | version_date = | preview = | preview_date = | organization = | committee = | series = | editors = | authors = | base_standards = | related_standards = | predecessor = | successor = | domain = [[Boot firmware]] | license = | copyright = | website = {{web archive|url=https://web.archive.org/web/20070630204816/http://playground.sun.com/1275/home.html|title=playground.sun.com}} }} {{More citations needed|date=July 2011}} [[File:OpenBoot on UltraSparc5.png|thumb|OpenBoot screenshot]] '''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 Microsystems|Sun]], [[Apple Inc.|Apple]],<ref name="OpenFirmware_Apple" /> [[IBM]] and [[Arm Holdings|ARM]].{{cn|date=September 2023}} Open Firmware allows a system to load [[platform (computing)|platform]]-independent [[device driver|driver]]s directly from a PCI device, improving compatibility. Open Firmware may be accessed through its [[command line interface]], which uses the [[Forth programming language]]. == History == Open Firmware was described by [[Institute of Electrical and Electronics Engineers|IEEE]] standard as ''IEEE 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.<ref name="IEEE" /> == Features == Open Firmware defines a standard way to describe the hardware configuration of a system, called the ''[[device tree]]''.<ref name="Mauro" /> 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|I<sup>2</sup>C]] devices like temperature sensors for [[hardware monitoring]],<ref name="sensors-mmath" />{{rp|Β§5.1|q=5.1. Open Firmware and I<sup>2</sup>C}} whereas the alternative solution of performing a blind probe of the [[I2C|I<sup>2</sup>C]] 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.{{r|sensors-mmath|p=Β§5.2|q=5.2. I<sup>2</sup>C bus scan through i2c_scan.c}} Open Firmware Forth Code may be compiled into FCode, a [[bytecode]] which is independent of [[instruction set architecture]]. A [[Peripheral Component Interconnect|PCI card]] may include a program, compiled to FCode, which runs on any Open Firmware system. In this way, it can provide boot-time [[diagnostic]]s, configuration code, and [[device driver]]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 [[Forth (programming language)|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<ref name="OBDiag" /> == Implementations and licensing == 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]].{{cn|date=September 2023}} == See also == {{Portal|Free and open-source software}} * {{annotated link|Coreboot}} * {{annotated link|Power-on self-test}} * {{annotated link|PowerPC Reference Platform}} * {{annotated link|UEFI}} == References == {{refs|refs= <ref name="OpenFirmware_Apple">{{ cite web | url=https://apple.fandom.com/wiki/Open_Firmware | title=Apple Wiki - Open Firmware }}</ref> <ref name="IEEE">{{ cite book |date=October 28, 1994 | doi=10.1109/IEEESTD.1994.89427 | title=IEEE Standard for Boot (Initialization Configuration) Firmware: Core Requirements and Practices |pages=1β262 | isbn=978-0-7381-1194-0 }}</ref> <ref name="Mauro">{{ cite book |last1=Mauro |first1=Jim |title=Solaris Internals: Core Kernel Components |date=2001 |publisher=Prentice-Hall Professional |page=107 |isbn=9780130224965 | url = https://books.google.com/books?id=r_cecYD4AKkC&pg=PA107 }}</ref> <ref name=sensors-mmath>{{ cite thesis | degree = [[Master of Mathematics#Canada|MMath]] | author = Constantine A. Murenin |date= 2010-05-21 | section = 5.1. Open Firmware and I<sup>2</sup>C | title = OpenBSD Hardware Sensors β Environmental Monitoring and Fan Control. | location = [[University of Waterloo]] |publisher= UWSpace | url = http://cnst.su/MMathCS |hdl = 10012/5234 | id = Document ID: ab71498b6b1a60ff817b29d56997a418. }}</ref> <ref name="OBDiag">{{ cite web | url=https://docs.oracle.com/cd/E19088-01/250.srvr/805-3389-11/6j37qsqsj/index.html | title=Sun Enterprise 250 Server Owner's Guide > Chapter 12 Diagnostics and Troubleshooting > About OpenBoot Diagnostics (OBDiag) | archive-url=https://web.archive.org/web/20210307215853/https://docs.oracle.com/cd/E19088-01/250.srvr/805-3389-11/6j37qsqsj/index.html | archive-date=7 March 2021 | url-status=live }}</ref> }} == External links == * {{web archive|url=https://web.archive.org/web/20070630204816/http://playground.sun.com/1275/home.html|title=Official website}} * [https://docs.oracle.com/cd/E19504-01/802-3241/802-3241.pdf Sun's OpenBoot 2.x command reference manual (Revision A, November 1995)] * [https://docs.oracle.com/cd/E19683-01/816-1177-10/index.html Sun's SPARC OpenBoot 4.x command reference manual] * [https://www.complang.tuwien.ac.at/forth/1275.ps.gz The last IEEE 1275 text] * [https://web.archive.org/web/20110806055045/http://www.ibm.com/developerworks/wikis/display/WikiPtype/Boot+Process+on+POWER Boot Process on IBM POWER] (via [https://web.archive.org Internet Archive]) * [https://wiki.laptop.org/go/OFW_FAQ OFW FAQ on OLPC Wiki] * [https://web.archive.org/web/20120626021529/http://wiki.auroralinux.net/wiki/OBP Aurora SPARC Linux OBP reference guide] (via [https://web.archive.org Internet Archive]) * [http://www.firmworks.com/QuickRef.html Quick Reference] {{IEEE standards}} {{Firmware and booting}} {{Use dmy dates|date=September 2021}} [[Category:Firmware]] [[Category:Sun Microsystems software]] [[Category:IEEE standards]] [[Category:Macintosh firmware]] [[Category:BIOS]] [[Category:Open-source hardware]] [[Category:MacOS]] [[Category:Forth programming language family]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Annotated link
(
edit
)
Template:Cn
(
edit
)
Template:Distinguish
(
edit
)
Template:Firmware and booting
(
edit
)
Template:IEEE standards
(
edit
)
Template:Infobox technology standard
(
edit
)
Template:More citations needed
(
edit
)
Template:Portal
(
edit
)
Template:R
(
edit
)
Template:Refs
(
edit
)
Template:Rp
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Web archive
(
edit
)