This brings in several important bug fixes from upstream. With this, the following upstream changes have been imported: * eb2c041 cli_wp: Fix bail-out when multiple chips are detected * e05e334 cli_common: Rename local `optarg' variable * efad610 manibuilder: Include NetBSD (anita tags) in `native' target * 09289fb manibuilder: Replace unmaintained DEFAULT_TAGS list * 1457cc6 manibuilder: Stop build testing oldest, EOL targets * 1faffa5 manibuilder: Fix Ubuntu Noble Numbat (24.04) for amd64 * 61dbe36 udev rules: Use `uaccess' tag instead of `plugdev' group * 63d30a2 install: Install binary into bin/, not sbin/ * 6ce26a7 flashchips: add Winbond W25R512NW / W74M51NW * 612519b ichspi: Add Intel Arrow Lake support * d5a61ef ichspi: Add Intel Lunar Lake support * 5e0d9b0 ichspi: Add Intel Meteor Lake SoC * 0ef2eb8 ichspi: Add Intel Snow Ridge SoC * 42daab1 ichspi: Properly add Emmitsburg PCH * af26008 ich_descriptors_tool: Add missing options for EHL & C620 * 82fe123 ich_descriptors: Hard code number of masters for newer gens * 157b818 ich_descriptors: Guard MCH strap handling by chipset version * db878fb ich_descriptors: Drop chipset detection based on `freq_read` * b3cc2c6 ich_descriptors: Unify pretty printing of PCH100+ masters * 8e4151d chipset_enable: Remove hidden-spidev workaround for Elkhart Lake * 6d72efa chipset_enable: Remove hidden-spidev workaround for all 14nm PCHs * 092a699 chipset_enable: Remove hidden-spidev workaround for TGP+ * 5bbd324 chipset_enable: Add missing PCI ID for Intel PCH H410 * a088475 chipset_enable: Factor PCH100 hidden-spidev workaround out * 5eb7a58 Drop 1s delay before automatic verification * 7427569 libflashprog: Run programmer_shutdown() on failed setup * 5a9d6ea chipset_enable: Fix memory leaks introduced with AMD SPI100 * e149fbe Only try to check erase opcodes for SPI25 chips * 07ebc68 Avoid NULL deref in check_block_eraser() * 2405310 chipset_enable: Mark Intel QM87 as DEP * 9897063 flashchips: Allow volatile register writes for W25Q128.V * c972aed flashchips: Configure WP for MX25L25635F/45G * 8f7122c cli: Add new write-protect CLI * eed122d layout: Implement flashprog_layout_get_region_range() * 1f693db cli: Add new `config' CLI for status/config registers * 85c2cf8 cli: Implement "command" option parser * 24c0977 cli: Add print function for generic CLI options * b82aadc cli: Move some declarations into `cli.h` * a705043 cli: Add a new CLI wrapper * d39c7d6 cli: Extract basic CLI init into cli_common * df6ce9f cli: Extract log argument parsing into cli_common * 0da839b cli: Extract layout argument processing * d91822a cli: Extract layout argument parsing into cli_common * e7899a9 cli: Move all long-option keys into cli.h * 34e783a cli: Extract flash argument parsing into cli_common * e68b08b cli_classic: Rewrite programmer argument parsing * 6898f5b spi25_statusreg: Prefer volatile status register writes * 55e7884 Introduce FLASHPROG_FLAG_NON_VOLATILE_WRSR * fbba454 Install udev rules * 768cfc4 flashchips: Add GigaDevice GD25LR512ME Signed-off-by: Leah Rowe <leah@libreboot.org>
Libreboot
Find libreboot documentation at https://libreboot.org/
The libreboot project provides
libre boot
firmware that initializes the hardware (e.g. memory controller, CPU,
peripherals) on specific Intel/AMD x86 and ARM targets, which
then starts a bootloader for your operating system. Linux/BSD are
well-supported. It replaces proprietary BIOS/UEFI firmware. Help is available
via #libreboot IRC
on Libera IRC.
Why use Libreboot?
Why should you use libreboot?
Libreboot gives you freedoms that you otherwise can't get with most other boot firmware. It's extremely powerful and configurable for many use cases.
You have rights. The right to privacy, freedom of thought, freedom of speech and the right to read. In this context, Libreboot gives you these rights. Your freedom matters. Right to repair matters. Many people use proprietary (non-libre) boot firmware, even if they use a libre OS. Proprietary firmware often contains backdoors (more info on the FAQ), and it and can be buggy. The libreboot project was founded in December 2013, with the express purpose of making coreboot firmware accessible for non-technical users.
The libreboot project uses coreboot for hardware
initialisation.
Coreboot is notoriously difficult to install for most non-technical users; it
handles only basic initialization and jumps to a separate
payload program (e.g.
GRUB,
Tianocore), which must also be configured.
The libreboot software solves this problem; it is a coreboot distribution with
an automated build system (named lbmk) that builds complete ROM images, for
more robust installation. Documentation is provided.
How does Libreboot differ from coreboot?
In the same way that Debian is a GNU+Linux distribution, libreboot is
a coreboot distribution. If you want to build a ROM image from scratch, you
otherwise have to perform expert-level configuration of coreboot, GRUB and
whatever other software you need, to prepare the ROM image. With libreboot,
you can literally download from Git or a source archive, and run make, and it
will build entire ROM images. An automated build system, named lbmk
(Libreboot MaKe), builds these ROM images automatically, without any user input
or intervention required. Configuration has already been performed in advance.
If you were to build regular coreboot, without using libreboot's automated build system, it would require a lot more intervention and decent technical knowledge to produce a working configuration.
Regular binary releases of libreboot provide these
ROM images pre-compiled, and you can simply install them, with no special
knowledge or skill except the ability to follow installation instructions
and run commands BSD/Linux.
Project goals
- Support as much hardware as possible! Libreboot aims to eventually have maintainers for every board supported by coreboot, at every point in time.
- Make coreboot easy to use. Coreboot is notoriously difficult to install, due to an overall lack of user-focused documentation and support. Most people will simply give up before attempting to install coreboot. Libreboot's automated build system and user-friendly installation instructions solves this problem.
Libreboot attempts to bridge this divide by providing a build system automating much of the coreboot image creation and customization. Secondly, the project produces documentation aimed at non-technical users. Thirdly, the project attempts to provide excellent user support via IRC.
Libreboot already comes with a payload (GRUB), flashprog and other needed parts. Everything is fully integrated, in a way where most of the complicated steps that are otherwise required, are instead done for the user in advance.
You can download ROM images for your libreboot system and install them without having to build anything from source. If, however, you are interested in building your own image, the build system makes it relatively easy to do so.
Not a coreboot fork!
Libreboot is not a fork of coreboot. Every so often, the project re-bases on the latest version of coreboot, with the number of custom patches in use minimized. Tested, stable (static) releases are then provided in Libreboot, based on specific coreboot revisions.
How to help
You can check bugs listed on the bug tracker.
If you spot a bug and have a fix, the website has instructions for how to send patches, and you can also report it. Also, this entire website is written in Markdown and hosted in a separate repository where you can send patches.
Any and all development discussion and user support are all done on the IRC channel. More information is on https://libreboot.org/contact.html.
LICENSE FOR THIS README
It's just a README file. This README file is released under the terms of the Creative Commons Zero license, version 1.0 of the license, which you can read here:
https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt