coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary
firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide ...
(
BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
or
UEFI
UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples ...
) found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and run a modern
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32- bit units. Compared to smaller bit widths, 32-bit computers can perform large calcula ...
or
64-bit operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
.
Since coreboot initializes the bare hardware, it must be ported to every
chipset and
motherboard
A motherboard (also called mainboard, main circuit board, mb, mboard, backplane board, base board, system board, logic board (only in Apple computers) or mobo) is the main printed circuit board (PCB) in general-purpose computers and other expand ...
that it supports. As a result, coreboot is available only for a limited number of hardware platforms and motherboard models.
One of the coreboot variants is
Libreboot, a
software distribution fully free of
proprietary blobs, aimed at end users.
History
The coreboot project began in the winter of 1999 in the Advanced Computing Laboratory at
Los Alamos National Laboratory
Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, i ...
(LANL),
with the goal of creating a BIOS that would start fast and handle errors intelligently. It is licensed under the terms of the
GNU General Public License
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ulti ...
version 2 (GPLv2). Main contributors include
LANL
Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, in ...
,
SiS,
AMD,
Coresystems and Linux Networx, Inc, as well as motherboard vendors
MSI,
Gigabyte and
Tyan, which offer coreboot alongside their standard BIOS or provide specifications of the hardware interfaces for some of their motherboards.
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
partly sponsors the coreboot project.
CME Group, a cluster of
futures exchanges, began supporting the coreboot project in 2009.
Coreboot was accepted in seven consecutive years (2007–2014) for the
Google Summer of Code. Other than the first three models, all
Chromebooks run coreboot. Code from
Das U-Boot has been assimilated to enable support for processors based on the
ARM instruction set.
In June 2019, Coreboot began to use the
NSA software
Ghidra for its
reverse engineering
Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompli ...
efforts on
firmware-specific problems following the release of the suite as
free and open source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
.
Supported platforms
CPU architectures supported by coreboot include
IA-32,
x86-64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
,
ARM,
ARM64,
MIPS and
RISC-V
RISC-V (pronounced "risk-five" where five refers to the number of generations of RISC architecture that were developed at the University of California, Berkeley since 1981) is an open standard instruction set architecture (ISA) based on establi ...
. Supported
system-on-a-chip (SOC) platforms include AMD
Geode
A geode (; ) is a geological secondary formation within sedimentary and volcanic rocks. Geodes are hollow, vaguely spherical rocks, in which masses of mineral matter (which may include crystals) are secluded. The crystals are formed by the fil ...
, starting with the Geode GX processor developed for the
OLPC. Artec Group added Geode LX support for its
ThinCan model DBE61; that code was adopted by AMD and further improved for the OLPC after it was upgraded to the Geode LX platform, and is further developed by the coreboot community to support other Geode variants. Coreboot can be flashed onto a Geode platform using
Flashrom
Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for the NOR and NAND logic gates. Both use t ...
.
From that initial development on AMD Geode based platforms, coreboot support has been extended onto many AMD processors and chipsets. The processor list includes Family 0Fh and 10h (
K8 core), and recently Family 14h (
Bobcat core,
Fusion APU). Coreboot support also extends to AMD chipsets:
RS690,
RS7xx,
SB600, and SB8xx.
AMD Generic Encapsulated Software Architecture (
AGESA
AMD Generic Encapsulated Software Architecture (AGESA) is a procedure library developed by Advanced Micro Devices (AMD), used to perform the Platform Initialization (PI) on mainboards using their AMD64 architecture. As part of the BIOS of such ma ...
)a
bootstrap protocol by which system devices on AMD64 mainboards are initializedwas open sourced in early 2011, aiming to provide required functionality for coreboot system initialization on AMD64 hardware. However, such releases never became the basis for future development by AMD, and were subsequently halted.
Devices that can be preloaded with coreboot or one of its derivatives include
* some x86-based
Chromebooks,
* the Libre T440p and X230 (rebranded ThinkPad T440p and X230, respectively, available from Minifree, previously known as Gluglug),,
*
OLPC XO from the
One Laptop per Child initiative,
*
ThinCan models DBE61, DBE62 and DBE63, and fanless server/router hardware manufactured by
PC Engines.
* All
Purism Librem laptops come with coreboot.
* Some
System76 PCs use coreboot TianoCore firmware, including open source
Embedded Controller firmware.
* StarLabs Systems use Coreboot firmware, as an alternative.
Design
Coreboot typically loads a
Linux kernel
The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
, but it can load any other
stand-alone ELF executable, such as
iPXE,
gPXE or Etherboot that can boot a Linux kernel
over a network, or
SeaBIOS that can load a Linux kernel,
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 4.0, and was released to manufacturing on December 15, 1999, and was official ...
and later, and BSDs; Windows 2000/
XP and
OpenBSD
OpenBSD is a security-focused operating system, security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking N ...
support was previously provided by ADLO. Coreboot can also load a kernel from any supported device, such as Myrinet, Quadrics, or SCI
cluster
may refer to:
Science and technology Astronomy
* Cluster (spacecraft), constellation of four European Space Agency spacecraft
* Asteroid cluster, a small asteroid family
* Cluster II (spacecraft), a European Space Agency mission to study th ...
interconnects. Booting other
kernels directly is also possible, such as a
Plan 9 Plan 9 or Plan Nine may refer to:
Music
* Plan 9 (band), a psychedelic rock band from Rhode Island
* ''Plan 9'', an album by Big Guitars From Memphis with Rick Lindy
* "Plan 9", a song on the 1993 album ''Gorgeous'' by electronica band 808 Stat ...
kernel. Instead of loading a kernel directly, coreboot can pass control to a dedicated boot loader, such as a coreboot-capable version of
GNU GRUB 2.
Coreboot is written primarily in
C, with a small amount of
assembly code. Choosing C as the primary programming language enables easier
code audits when compared to contemporary PC BIOS that was generally written in assembly, which results in improved security. There is build and runtime support to write parts of coreboot in
Ada to further raise the security bar, but it is currently only sporadically used. The source code is released under the
GNU GPL version 2 license.
Coreboot performs the absolute minimal amount of hardware initialization and then passes control to the
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
. As a result, there is no coreboot code running once the operating system has taken control. A feature of coreboot is that the
x86 version runs in
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in 32- bit units. Compared to smaller bit widths, 32-bit computers can perform large calcula ...
mode after executing only ten instructions (almost all other x86 BIOSes run exclusively in
16-bit mode). This is similar to the modern
UEFI
UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples ...
firmware, which is used on newer PC hardware.
By itself, coreboot does not provide
BIOS call
BIOS interrupt calls are a facility that operating systems and application programs use to invoke the facilities of the Basic Input/Output System firmware on IBM PC compatible computers. Traditionally, BIOS calls are mainly used by DOS programs an ...
services. The SeaBIOS
payload
Payload is the object or the entity which is being carried by an aircraft or launch vehicle. Sometimes payload also refers to the carrying capacity of an aircraft or launch vehicle, usually measured in terms of weight. Depending on the nature of ...
can be used to provide BIOS calls and thus allow coreboot to load
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s that require those services, such as Windows 2000/XP/Vista/7 and BSDs. However, most modern operating systems access hardware in another manner and use BIOS calls only during early initialization and as a fallback mechanism.
Coreboot stages
# Bootblock stage: Prepare to obtain Flash access and look up the ROM stage to use
# ROM stage: Memory and early chipset init (a bit like PEI in UEFI)
# RAM stage: CPU, chipset and mainboard init, PCI resource assignment, ACPI and SMBIOS table creation, SMM handler (a bit like DXE stage in UEFI)
# Payload.
Initializing DRAM
The most difficult hardware that coreboot initializes is the
DRAM controllers and
DRAM. In some cases, technical documentation on this subject is
NDA restricted or unavailable. RAM initialization is particularly difficult because before the RAM is initialized it cannot be used. Therefore, to initialize DRAM controllers and DRAM, the initialization code may have only the CPU's
general purpose registers or Cache-as-RAM as temporary storage.
romcc, a
C compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
that uses registers instead of RAM, eases the task. Using romcc, it is relatively easy to make
SMBus accesses to the
SPD ROMs of the DRAM
DIMMs, that allows the RAM to be used.
With newer x86 processors, the processor cache can be used as RAM until DRAM is initialized. The processor cache has to be initialized into Cache-as-RAM mode as well, but this needs fewer instructions than initializing DRAM. Also, the Cache-as-RAM mode initialization is specific to CPU architectures, thus more generic than DRAM initialization, which is specific to each chipset and mainboard.
For most modern x86 platforms, closed source binary-only components provided by the vendor are used for DRAM setup. For Intel systems, FSP-M is required, while AMD has no current support. Binary AGESA is currently used for proprietary UEFI firmware on AMD systems, and this model is expected to carry over to any future AMD-related coreboot support.
Developing and debugging coreboot

Since coreboot must initialize the bare hardware, it must be ported to every
chipset and
motherboard
A motherboard (also called mainboard, main circuit board, mb, mboard, backplane board, base board, system board, logic board (only in Apple computers) or mobo) is the main printed circuit board (PCB) in general-purpose computers and other expand ...
that it supports. Before initializing
RAM, coreboot initializes the
serial port
In computing, a serial port is a serial communication interface through which information transfers in or out sequentially one bit at a time. This is in contrast to a parallel port, which communicates multiple bits simultaneously in paralle ...
(addressing cache and registers only), so it can send out debug text to a connected
terminal. It can also send byte codes to port 0x80 that are displayed on a two-hex-digit display of a connected
POST card.
Another porting aid was the commercial "RD1 BIOS Savior" product from www.ioss.com.tw, (not to be confused with US Interagency OPSEC Support Staff at www.iad.gov/ioss/) which was a combination of two boot memory devices that plugs into the boot memory socket and has a manual switch to select between the two devices. The computer could boot from one device, and then the switch can be toggled to allow the computer to reprogram or "flash" the second device. A more expensive alternative is an external
EEPROM
EEPROM (also called E2PROM) stands for electrically erasable programmable read-only memory and is a type of non-volatile memory used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as ...
/
NOR flash programmer.
There are also CPU
emulators that either replace the
CPU
A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
or connect via a
JTAG port, with the Sage SmartProbe being an example. Code can be built on, or downloaded to, BIOS emulators rather than flashing the BIOS device.
Payloads

Coreboot can load a payload, which may be written using the helper library. Existing payloads include the following:
*
SeaBIOS, a tiny implementation of x86 BIOS, written mostly in 16-bit
C using the
GNU C compiler
*
TianoCore, a free and open-source implementation of
UEFI
UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples ...
*
OpenBIOS, a free and open-source implementation of
Open Firmware
*
GNU GRUB, a bootloader
* FILO, a GRUB-like bootloader with USB boot support
*
Etherboot
gPXE is an open-source Preboot eXecution Environment (PXE) client firmware implementation and bootloader derived from Etherboot. It can be used to enable computers without built-in PXE support to boot from the network, or to extend an existing c ...
, it can boot an operating system over the network
*
gPXE/
iPXE, the successor to Etherboot, works when run under SeaBIOS or TianoCore
* Depthcharge is used by Google for
ChromeOS
* A branch of
Das U-Boot was used by Google for
ChromiumOS in the past
European Coreboot Conference
One physical meeting is the European Coreboot Conference which was organized in October 2017 and lasted for three days.
Conference history
Vendors
Coreboot is open source, and third-parties such as
Chromebooks, PC Engines, Star Labs,
System76 and
Purism ship their hardware with coreboot.
Variants
Coreboot has a number of variants from its original code base each with slightly different objectives:
* librecore - A variant with more focus on
freedom, non-x86
instruction set
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called a ...
computers, and firmware development frameworks.
*
Libreboot - A variant with a primary focus to remove all binary blobs.
* osboot - A variant similar to Libreboot that scrapped its no blob policy to increase hardware support and stability. As of November 2022 merged with libreboot.
Libreboot has been established as a distribution of coreboot without proprietary
binary blobs.
Libreboot is not a straight
fork of coreboot; instead, it is a parallel effort that works closely with and
re-bases every so often on the latest coreboot as the upstream supplier, with patches merged upstream whenever possible. In addition to removing proprietary software, libreboot also attempts to make coreboot easy to use by automating the build and installation processes.
The Libreboot project made possible the required modifications for completely libre variants of some
ThinkPad
ThinkPad is a line of business-oriented laptop computers and tablets designed, developed and marketed by Lenovo, and formerly by IBM until 2005, when IBM's PC business was acquired by Lenovo. ThinkPads have a distinct black, boxy design la ...
,
MacBook and ARM
Chromebook laptops.
See also
*
Beowulf cluster
*
LinuxBoot
*
LOBOS
Lobos is the headquarters city of the Lobos Partido in Buenos Aires Province, Argentina. It was founded on 2 June 1802 by José Salgado.
Background
Located 100 km from Buenos Aires, Lobos is currently a fertile agricultural area known m ...
*
Open-source hardware
*
Rapid Boot Rapid Boot is an EFI BIOS alternative using a Linux kernel (in the BIOS flash part) developed by Intel Corporation
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. I ...
References
Further reading
Inside the Linux boot process by M. Jones, IBM
Open BIOSes for Linux by Peter Seebach (archive only)
LinuxBIOS ready to go mainstream by Bruce Byfield
First desktop motherboard supported by LinuxBIOS: GIGABYTE M57SLI-S4 by Brandon Howard
Video recording of Ron Minnich's LinuxBIOS talk from FOSDEM 2007Coreboot Your Service Linux Journal, October 2009
media.ccc.de - Search for "Peter Stuge"
External links
*
* {{Official website
Free BIOS implementations
High-priority free software projects
Firmware
Custom firmware
Software related to embedded Linux