Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

coreboot

From Wikipedia, the free encyclopedia
Open-source computer firmware

coreboot
Graphic of a running hare in black and white above text "coreboot" in lowercase sans-serif font
Original authorsRonald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer, and the coreboot community
Initial release1999; 26 years ago (1999)
Stable release
25.09[1] Edit this on Wikidata / 10 October 2025; 49 days ago (10 October 2025)[2]
Repository
Written inMostlyC, about 1% inassembly and optionallySPARK
PlatformIA-32,x86-64,ARMv7,[3] ARMv8,RISC-V, POWER8
TypeFirmware
LicenseGPLv2-only[4]
Websitewww.coreboot.org Edit this on Wikidata

coreboot (formerlyLinuxBIOS)[5] is an open‑source project that provides lightweightfirmware to initialize hardware and then load an operating system. It is designed to replace proprietary firmware (traditionalBIOS orUEFI implementations) by performing the minimal tasks required to start a modern32-bit or64-bitoperating system.

Because coreboot performs low‑level hardware initialization, it must be ported to each supportedchipset andmotherboard model; consequently, availability is limited to platforms for which support has been implemented.

One of the well‑known variants of coreboot isLibreboot, asoftware distribution that focuses on removing proprietarybinary blobs from the firmware stack.

History

[edit]

The coreboot project began with the goal of creating a BIOS that boots quickly and handles errors intelligently.[6] It is distributed under the terms of theGNU General Public License version 2 (GPLv2). Main contributors includeLANL,SiS,AMD, Coresystems and Linux Networx, Inc, as well as motherboard vendorsMSI,Gigabyte andTyan, which offer coreboot alongside their standard BIOS or provide specifications of the hardware interfaces for some of their motherboards.Google partly sponsors the coreboot project.[7]CME Group, a financial public company, began supporting the coreboot project in 2009.[8]

Other than the first three models, allChromebooks run coreboot.[9] Code fromDas U-Boot has been assimilated to enable support for processors based on theARM instruction set.[10]

In June 2019, coreboot began to use theNSA softwareGhidra for itsreverse engineering efforts onfirmware-specific problems following the release of the suite asfree and open source software.[11]

Supported platforms

[edit]

coreboot supports multiple CPU architectures, includingIA-32,x86-64,ARM,ARM64,MIPS andRISC-V. Support covers a variety ofsystem-on-a-chip (SoC) platforms as well; early development focused on AMDGeode processors (notably those used in theOLPC project). Artec Group added Geode LX support for itsThinCan 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 usingFlashrom.

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.

In AMD Generic Encapsulated Software Architecture (AGESA)‍—‌abootstrap protocol by which system devices on AMD64 mainboards are initialized‍—‌was open sourced in early 2011, aiming to provide required functionality for coreboot system initialization on AMD64 hardware.[12] However, as of 2014 such releases never became the basis for future development by AMD, and were subsequently halted.[13]

Devices that could be preloaded with coreboot or one of its derivatives include:

Lenovo/IBM
The Libreboot T400 and X200 (rebranded ThinkPad T400 and X200, respectively, available from Minifree, previously known as Gluglug).[14][15]
Artec Group
ThinCan models DBE61, DBE62 and DBE63, and fanless server/router hardware manufactured byPC Engines.[16]
Purism
Librem laptops come with coreboot.[17][18]
Others
SomeSystem76 PCs use coreboot TianoCore firmware, including open sourceEmbedded Controller firmware.
Dasharo offers an alternative coreboot-based firmware distribution for computers fromMSI,NovaCustom andNitrokey, among others.[19][20][21]
StarLabs Systems use coreboot firmware, as an alternative.[22]
SomeTesla Model 3 cars have adoptedRyzen Embedded orIntel Atom processor on the car computer, and adopted coreboot as the bootloader.[citation needed]

Design

[edit]

Coreboot typically loads aLinux kernel, but it can load any otherstand-aloneELF executable, such asiPXE,gPXE or Etherboot that can boot a Linux kernelover a network, orSeaBIOS[23] that can load a Linux kernel,Windows 2000 and later, and BSDs; Windows 2000/XP andOpenBSD support was previously provided by ADLO.[24][25] coreboot can also load akernel from any supported device, such as Myrinet, Quadrics, or SCIcluster interconnects. Booting other kernels directly is also possible, such as aPlan 9 kernel. Instead of loading a kernel directly, coreboot can pass control to a dedicated boot loader, such as a coreboot-capable version ofGNU GRUB 2.

Coreboot is primarily implemented inC, with a small amount ofassembly code. Choosing C as the primary programming language facilitatescode audits when compared to contemporary PC BIOS that was generally written in assembly,[26] which results in improved security. There is build and runtime support to write parts of coreboot inAda[27] to further raise the security bar, but it is currently only sporadically used. The source code is released under theGNU GPL version 2 license.

Coreboot performs the absolute minimal amount of hardware initialization and then passes control to theoperating system. As a result, there is no coreboot code running once the operating system has taken control. A feature of coreboot is that thex86 version runs in32-bit mode after executing only ten instructions[28] (almost all other x86 BIOSes run exclusively in16-bit mode). This is similar to the modernUEFI firmware, which is used on newer PC hardware.

Initializing DRAM

[edit]

The most difficult hardware that coreboot initializes is theDRAM controllers andDRAM. In some cases, technical documentation on this subject isNDA 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'sgeneral purpose registers or Cache-as-RAM as temporary storage.

romcc, aCcompiler that uses registers instead of RAM, eases the task. Using romcc, it is relatively easy to makeSMBus accesses to theSPD ROMs of the DRAMDIMMs, 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[29][30] 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.[31]

Developing and debugging coreboot

[edit]
Hacking coreboot at Denver 2008 summit.

Developers use a variety of hardware and software debugging tools when working on coreboot. These include in‑circuitemulators,JTAG probes (for example the Sage SmartProbe), and BIOS/firmware emulators. Code may be tested on emulators or downloaded to target hardware rather than being immediately flashed to a BIOS device.[32][33] being an example. Code can be built on, or downloaded to, BIOS emulators rather than flashing the BIOS device.

Payloads

[edit]
SeaBIOS payload running on a LenovoThinkPad X60

coreboot loads a payload after hardware initialization. Payloads may be written with thelibpayload helper library or be independent projects. Notable payloads include the following:

  • SeaBIOS provides a "legacy BIOS" interface
  • TianoCore EDK II, the de-facto standard generic UEFI services implementation
  • GRUB 2, most commonly used as an on-disk bootloader, can also be compiled as a coreboot payload
  • ALinux kernel can also be used as payload, typically in the form ofLinuxBoot
  • Depthcharge is used by Google forChromeOS[34]
  • A branch ofDas U-Boot was used by Google forChromiumOS in the past[35]

European Coreboot Conference

[edit]

One physical meeting is the European Coreboot Conference which was organized in October 2017 and lasted for three days.

Conference history

[edit]
Event and yearDateHost cityVenueResourcesThemes
ECC201726.10. – 29.10Bochum, GermanyRUB Convention Centerhttps://ecc2017.com

Variants

[edit]

coreboot has a number of variants from its original code base each with slightly different objectives:.

  • Libreboot - A variant with a primary focus to remove some[36] binary blobs.
  • osboot - A variant similar to Libreboot that scrapped its only some blobs policy to increase hardware support and stability.[37] Merged with libreboot as of November 2022.[38]
  • MrChromebox has developed a modified version of coreboot for ChromeOS based devices.[39]
  • GNU Boot - A variant with a primary focus to remove all binary blobs.[40]
  • Canoeboot[41]
  • Dasharo - A distribution based on coreboot developed by 3mdeb, intended to simplify manufacturers shipping coreboot on products.[42] They aim to make it easy for manufacturers to ship products with coreboot.[43][44]
  • Skulls - A variant aimed at ease of installation.[45]
  • Heads - A variant aimed at physical security and usage of free software, recommended for use withQubesOS.[46][47][citation needed]
  • oreboot - a fork rewritten in Rust[48]

See also

[edit]

References

[edit]
  1. ^Martin Roth (10 October 2025)."Announcing coreboot 25.09 release". Retrieved12 October 2025.
  2. ^"Releases".coreboot. n.d.
  3. ^"ARM". coreboot. 15 October 2013. Retrieved1 February 2014.
  4. ^"coreboot's licence".github.com. 1991. Retrieved13 October 2018.
  5. ^"[LinuxBIOS] Welcome to coreboot". 12 January 2008.
  6. ^Anton Borisov (2009)."The Open Source BIOS is Ten. An interview with the coreboot developers".The H. Archived fromthe original on 16 September 2012.'
  7. ^"Google Sponsors the LinuxBIOS project". Archived from the original on 6 February 2012. Retrieved29 September 2023.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  8. ^"CME Group Dives Into Coreboot and Other Linux Open Source Projects".Wall Street & Technology. Archived fromthe original on 12 August 2010. Retrieved23 September 2015.
  9. ^"Chromebooks". coreboot. 16 January 2014. Archived fromthe original on 8 May 2016. Retrieved17 February 2014.
  10. ^"GSoC2011(Week 1): Analysis of U-boot ARM boot code | coreboot developer blogs". 5 June 2011. Retrieved12 April 2014.
  11. ^"Coreboot nutzt NSA-Tool zum Reverse Engineering".Golem.de. Retrieved4 May 2023.
  12. ^"Technical details on AMD's coreboot source code release".AMD. 28 February 2011. Archived fromthe original on 25 March 2014. Retrieved1 February 2016.
  13. ^Griffith, Bruce (5 November 2014)."AMD's binary-only AGESA libraries". Retrieved8 May 2017.
  14. ^"Minifree".Ministry of Freedom - Products. Archived fromthe original on 25 September 2015. Retrieved24 September 2015.
  15. ^"The Gluglug".fsf.org. Archived fromthe original on 23 September 2015. Retrieved23 September 2015.
  16. ^"pcengines/coreboot".GitHub. Retrieved16 September 2019.
  17. ^"coreboot Firmware on Purism Librem devices". Retrieved19 June 2020.
  18. ^"Purism Laptops To Use 'Heads' Firmware To Protect Against Rootkits, Tampering (Updated)". 27 February 2018. Retrieved19 June 2020.
  19. ^"New Dasharo v1.1 Firmware For The MSI Z690 Board - Phoronix". 22 November 2022. Retrieved27 October 2023.
  20. ^"NovaCustom-Dasharo October-2023 Firmware Update (ADL v1.7.0 & TGL v1.5.0) - NovaCustom". 19 September 2023. Retrieved27 October 2023.
  21. ^"The NitroPC Pro is Qubes-Certified! - Nitrokey". 24 September 2023. Retrieved27 October 2023.
  22. ^Starbook mk v review - fossbytes
  23. ^SeaBIOS (previously known as LegacyBIOS) is an open-source legacy BIOS implementation
  24. ^"coreboot Add-on Layer (ADLO)". Archived fromthe original on 25 November 2010.
  25. ^"SEBOS, Security Enhanced Bootloader for Operating Systems, Phase 2". Archived fromthe original on 19 June 2007. - adding PC BIOS Services to coreboot via Bochs BIOS
  26. ^"Comparison of UEFI and legacy BIOS". pronouncing that same advantage for UEFI
  27. ^"commit". adding that support
  28. ^"coreboot v3 early startup code". Archived fromthe original on 10 July 2012. Retrieved17 August 2008.
  29. ^Yinghai Lu; Li-Ta Lo; Gregory R. Watson; Ronald G. Minnich (15 January 2009)."CAR: Using Cache as RAM in Linux BIOS"(PDF). qmqm.pl. Archived fromthe original(PDF) on 3 March 2016. Retrieved25 February 2014.
  30. ^"A Framework for Using Processor Cache as RAM (CAR)"(PDF).
  31. ^Griffith, Bruce (5 November 2014)."[coreboot] AMD's binary-only AGESA libraries". Retrieved8 September 2019.
  32. ^"Sage Electronic Engineering - SmartProbe JTAG debugger, Sage EDK, coreboot and Embedded Systems and Software Engineering".www.se-eng.com. Archived from the original on 15 March 2011.
  33. ^"Sage SmartProbe FAQ". S.Datskovskiy. Retrieved30 April 2021.
  34. ^"Depthcharge: The ChromeOS bootloader".docs.google.com. Retrieved26 October 2015.
  35. ^"Modify u-boot code to allow building coreboot payload. [chromiumos/third_party/u-boot-next : chromeos-v2011.03]". 24 July 2011.
  36. ^"Binary Blob Reduction Policy". 1 November 2023. Archived fromthe original on 1 November 2023. Retrieved1 November 2023.
  37. ^"osboot project". 15 March 2021. Archived fromthe original on 15 March 2021. Retrieved26 May 2023.
  38. ^"Libreboot – Osboot is now part of Libreboot". 19 December 2022. Archived fromthe original on 19 December 2022. Retrieved26 May 2023.
  39. ^"How to install ChromeOS Flex on a Chromebook".Android Police. 17 April 2022. Retrieved30 May 2023.
  40. ^"GNU Boot Summary". 30 October 2023. Archived fromthe original on 30 October 2023. Retrieved30 October 2023.
  41. ^"Canoeboot project". 16 November 2023. Archived fromthe original on 16 November 2023. Retrieved16 November 2023.
  42. ^"3mdeb Sp. z o.o. — Embedded Firmware development consultancy". 29 January 2024. Archived fromthe original on 16 February 2024. Retrieved16 February 2024.
  43. ^"Dasharo • GitHub". 22 October 2023. Archived fromthe original on 16 February 2024. Retrieved16 February 2024.
  44. ^"About Dasharo - Dasharo Universe". 9 February 2024. Archived fromthe original on 16 February 2024. Retrieved16 February 2024.
  45. ^Kepplinger-Novakovic, Martin (28 May 2024),merge/skulls, retrieved29 May 2024
  46. ^"About Heads".Heads. Retrieved29 May 2024.
  47. ^linuxboot/heads, LinuxBoot, 28 May 2024, retrieved29 May 2024
  48. ^oreboot/oreboot, oreboot, 27 March 2025, retrieved31 March 2025

Further reading

[edit]

External links

[edit]
Processes
Bootingfirmware
Types
Interfaces
Implementations
Hybrid firmware bootloader
Bootloaders
Implementations
Partition layouts
Partitions
Utilities
Software
Hardware
Network boot
ROM variants
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Coreboot&oldid=1323754701"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp