Libreboot provides libre boot firmware (based on coreboot) 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). https://libreboot.org/
 
 
 
 
Go to file
Leah Rowe 12c6259cb2 vendor.sh: Handle FSP insertion post-release
The Libreboot 20241206 release provided FSP pre-assembled
and inserted into the ROM images; the only file inserted
by vendor.sh was the Intel ME.

Direct distribution of an unmodified FSP image is permitted
by Intel, provided that the license notice is given among
other requirements. Due to how coreboot works, it must split
up the FSP into subcomponents, and adjust certain pointers
within the -M component (for raminit).

Such build-time modifications are perfectly fine in a coreboot
context, where it is expected that you are building from source.
The end result is simply what you use.

In a distribution such as Libreboot, where we provide pre-built
images, this becomes problematic. It's a technicality of the
license, and it seems that Intel themselves probably intended
for Libreboot to use the FSP this way anyway, since it is they
who seem to be the author of SplitFspBin.py, which is the
utility that coreboot uses for splitting up the FSP image.

Due to the technicality of the licensing, the FSP shall now
be scrubbed from releases, and re-inserted.

Coreboot was inserting the -S component with LZ4 compression,
which is bad news for ./mk inject beacuse the act of compression
is currently not reproducible. Therefore, coreboot has been
modified not to compress this section, and the inject command
doesn't compress it either. This means that the S file is using
about 180KB in flash, instead of about 140KB. This is totally OK.

The _fsp targets are retained, but set to release=n, because these
targets *still* don't scrub fsp.bin; if released, they would
include fsp files, so they've been set to release=n. These can
be used on older Libreboot release archives, for compatibility.

The new ROM images released for the affected machines are:

t480_vfsp_16mb
t480s_vfsp_16mb
dell3050micro_vfsp_16mb

Note the use of _vfsp instead of _fsp. These images are released,
unlike _fsp, and they lack fspm/fsps in the image. FSP S/M must
be inserted using ./mk inject.

This has been tested and confirmed to boot just fine.
The 20241206 images will be re-compiled and re-uploaded with this
and other recent changes, to make Libreboot 20241206 rev8.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2024-12-26 22:05:16 +00:00
config vendor.sh: Handle FSP insertion post-release 2024-12-26 22:05:16 +00:00
include vendor.sh: Handle FSP insertion post-release 2024-12-26 22:05:16 +00:00
script Revert "trees: Allow using a custom clean command" 2024-12-02 21:22:36 +00:00
util remove util/autoport 2024-07-16 03:57:08 +01:00
.gitignore remove geteltorito and mtools from lbmk 2024-12-22 23:13:43 +00:00
COPYING libreboot! 2021-05-18 13:56:12 +01:00
README.md emphasis on readme that lbmk isn't a coreboot fork 2024-07-22 02:00:26 +01:00
build build: actually build pcsx-redux bios on release 2024-10-08 16:16:30 +01:00
mk support ./mk in place of ./update trees 2024-07-22 23:36:04 +01:00
projectname update README 2021-05-18 14:05:01 +01:00
projectsite add projectsite file: point to libreboot.org 2024-06-02 23:15:27 +01:00

README.md

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