Libreboot – Install Libreboot Open Source BIOS/UEFI boot firmware
Return to previous index
Open source BIOS/UEFI boot firmware
[link]
With x86 machines, you can use the SeaBIOS or the GNU boot loader named GRUB as a payload. On ARM systems, you can use the U-Boot payload (coreboot still initialises hardware). An x86/x86_64 U-Boot UEFI payload is also available.
This article will teach you how to install Libreboot, on any of the supported laptop, desktop and server motherboards of Intel/AMD x86/x86_64 and ARM64 platform. Libreboot is a
Free Software
project that replaces proprietary BIOS/UEFI firmware.
ALWAYS remember to make a backup of the current flash, when overwriting it, regardless of what firmware you currently have and what firmware you’re re-flashing it with; this includes updates between Libreboot releases. Use the
-r
option in flashprog instead
-w
, to read from the flash.
SAFETY WARNING!
[link]
PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING
, OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity,
here is the link again
If you’re using release ROMs, some files may be missing inside them, and must be added. See:
Inserting Vendor Files
If you’re
building from source
, you can ignore the above guidance.
Install Libreboot via external flashing
[link]
Refer to the following article:
Externally rewrite 25xx NOR flash via SPI protocol
You are strongly advised to
have
an external flashing setup, and make sure it works, before attempting internal flashing. This, in addition to making a backup of the current flash contents, prior to flashing, whether you dump externally or internally - if only external flashing is available, then it’s usually the case that only external dumping is available too.
Trouble?
[link]
Inquiries can be done via
Libreboot IRC
and other channels.
If you want professional installation, Minifree Ltd sells
Libreboot pre-installed
on select hardware, and it also provides a
Libreboot preinstall service
if you want to send your machine in to have Libreboot installed for you.
Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project.
Which systems are supported by Libreboot?
[link]
Before actually reading the installation guides, please ensure that your system is fully supported by Libreboot. More information about the Libreboot build system can be found in the
lbmk maintenance manual
, and information about porting new systems in the
porting manual
Libreboot currently supports the following systems:
Libreboot currently supports the following systems:
Installation steps sorted into 3 ways: - Simple; Installable from OS, a bios jumper might needs to be set, no extra things required. - Moderate; Use of a
SPI Programmer
and removing the backplate to get physical access to the flash chip. - Complex; Disassembly/Soldering or anything more needs to be done than using a programmer.
Games consoles
[link]
Sony Playstation
(Complex) (PS1/PSX)
Servers (AMD, x86 with ECC support)
[link]
Opteron 6300
ASUS KGPE-D16 motherboard
(Moderate, DDR3)
Opteron 4300/4200
ASUS KCMA-D8 motherboard
(Moderate, DDR3)
Opteron 2000/8000
ASUS KFSN4-DRE motherboard
(Complex, DDR2)
Desktops/WorkStations (Intel, x86)
[link]
12th Gen
Topton X2E N150 aka BKHD H30W-N150
(Simple, DDR4)
9th -> 6th Gen.
(Different generational CPUs compatible with older and newer motherboards too, 4-core ones confirmed, 6/8 core processors might work, untested.)
Dell OptiPlex 3050 Micro
(Simple, DDR4) -
Also
available to buy with Libreboot pre-installed
5th -> 4th Gen. (Core + Xeon v3-4)
(5th gen cpus are compatible with the 4gen boards, but does not work yet.)
Dell OptiPlex 7020/9020/XE2/T1700 MT and SFF
(Simple, DDR3 + ECC for T1700)
3rd -> 2nd Gen. (Core + Xeon v1-2)
(Processors are fully compatible with motherboards from different generations)
Dell OptiPlex 7010/9010 SFF/MT +T1650
(Simple, DDR3 + ECC for T1650)
HP Elite 8300 USDT
(Simple, DDR3)
HP Elite 8200 SFF/MT
(Simple, DDR3) (HP 6200 Pro Business probably works too)
Core 2
Acer G43T-AM3
(Simple, DDR3)
Dell OptiPlex 780 variants e.g. MT, USFF
(Simple, DDR3)
Gigabyte GA-G41M-ES2L motherboard
(Simple, DDR2)
Apple iMac 5,2 (Simple, DDR2)
Bonnel (Atom)
Intel D945GCLF
(Moderate, DDR2) - Intel D510MO and D410PT motherboards (Moderate, DDR2)
Laptops (Intel, x86)
[link]
8th Gen
Lenovo ThinkPad T480 and ThinkPad T480s
(Complex, DDR4) - Also
available to buy with Libreboot pre-installed
Lenovo ThinkPad T580
(Complex, DDR4) - Also
available to buy with Libreboot pre-installed
5th Gen.
HP EliteBook 820 G2
(Complex, DDR3L)
4th Gen.
Lenovo ThinkPad W541 (Complex, DDR3L)
Lenovo ThinkPad T440p (Complex, DDR3L)
3th Gen.
HP EliteBook 2170p
(Moderate, DDR3L)
HP EliteBook 2570p
(Moderate, DDR3L)
HP EliteBook 8470p
(Moderate, DDR3L)
HP EliteBook Folio 9470m
(Complex, DDR3L)
Lenovo ThinkPad T430 (
but not the T430S
) (Complex, DDR3L)
Lenovo ThinkPad T530 (Complex, DDR3L)
Lenovo Thinkpad X230 / X230 Tablet
(Complex, DDR3L)
HP EliteBook 2560p
(Moderate, DDR3L)
HP EliteBook 8460p
(Moderate, DDR3L)
HP EliteBook 8560w
(Moderate, DDR3L)
Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330, E6220, E7240
(Simple, DDR3L) (Intel GPU variants only)
Lenovo Thinkpad T420 / T420S (Complex, DDR3L)
Lenovo ThinkPad T520 (Complex, DDR3L)
Lenovo Thinkpad X220 / X220 Tablet (Complex, DDR3L)
Core 2
Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU
(Simple, DDR2L + DDR3L for E4300)
Lenovo ThinkPad R400
(Complex, DDR3L)
Lenovo ThinkPad R500 (Complex, DDR3L)
Lenovo ThinkPad T400 / T400S
(Complex, DDR3L)
Lenovo ThinkPad T500 / W500
(Complex, DDR3L)
Lenovo ThinkPad X200 / X200S / X200 Tablet
(Complex, DDR3L)
Apple MacBook1,1 and MacBook2,1
(Complex for 1.1/Simple for 2.1 - 2007, DDR2L)
Lenovo ThinkPad T60, X60, X60S, X60 Tablet (with Intel GPU) (Complex, DDR2L)
Laptops (ARM, with U-Boot payload)
[link]
ASUS Chromebook Flip C101 (gru-bob)
(Complex)
Samsung Chromebook Plus (v1) (gru-kevin)
(Complex)
Emulation
[link]
Qemu x86 and arm64
Disable security before flashing
[link]
Before internal flashing, you must first disable
/dev/mem
protections. Make sure to re-enable them after you’re finished.
See:
Disabling /dev/mem protection
ROM image file names
[link]
Libreboot ROM images are named like this:
payload_board_inittype_displaytype_keymap.rom
The
payload
option can be SeaBIOS, SeaGRUB or U-Boot. If GRUB is available on a given board, in flash, both SeaBIOS and SeaGRUB are provided; SeaBIOS images still have GRUB available via the SeaBIOS menu, and SeaGRUB means that SeaBIOS automatically loads GRUB from flash first (but you can still choose something else, by pressing ESC in SeaBIOS when prompted).
Inittype can be
libgfxinit
vgarom
or
normal
. The
libgfxinit
option means coreboot provides native video initialisation, for onboard graphics. The
vgarom
option means coreboot executes a VGA option ROM for video initialisation. The
normal
option means coreboot provides no video initialisation, via VGA ROM or native code.
Displaytype can be
txtmode
or
corebootfb
- if inittype is
normal
, this is ignored because
txtmode
is assumed.
If
payload
is
seabios
instead of
seagrub
, no keymaps are inserted into flash and only US QWERTY is assumed, otherwise the keymap refers to what is used in GRUB on
seagrub
payload setups.
If you use a libgfxinit image on a desktop machine, you can still insert a graphics card and it’ll work just fine; its own VGA option ROM will be executed instead, if the primary payload is SeaBIOS, whether that be pure SeaBIOS or a SeaGRUB setup.
EC firmware updates
[link]
Obviously, free EC firmware would be preferable, but it is not the case on all machine. We would like to have free EC firmware on more machines, but for now, we must rely on the vendor in a lot of cases. The EC is usually on a separate flash, so you wouldn’t think about it unless you knew it was there; this is exactly why it’s mentioned, so that you think about it,
because proprietary software is bad
In many cases, the EC firmware must be updated on a separate IC to the main boot flash, and this can usually only be done with the vendor’s own tool, running from the vendor boot firmware, and usually only on Windows, because they provide EC and BIOS/UEFI updates in the same utility. Find out what you need to do for your machine before installing Libreboot.
It is recommended that you update to the latest EC firmware version. The
EC firmware
Updating the EC can sometimes provide benefit depending on the vendor. For example, they might fix power issues that could then enhance battery life.
ThinkPads
[link]
See:
Otherwise, check the Lenovo website to find the update utility for your motherboard.
HP EliteBooks
[link]
EC firmware is required in the main boot flash, but Libreboot’s build system automatically downloads this from HP for each machine, and inserts it, so you don’t have to worry. Just make sure that
vendor files are inserted
if using release images.
Other
[link]
The same wisdom applies to other laptop vendors.
Non-laptops typically do not have embedded controllers in them.
Libreboot installation instructions
[link]
In general, if Libreboot is already running, you can skip towards the final section on this page, which provides general internal flashing instructions. Internal flashing is when you flash the target machine from the target machine, inside an operating system running on it.
Some boards require special steps, even if Libreboot is already running, for example if you
locked down the flash
, or as another example,
SureStart on HP EliteBook 820 G2
Therefore, before following generic guides, make sure to check first whether your board has special instructions, otherwise use the generic guide at the end of this article.
Intel GbE MAC address (IFD-based systems)
[link]
On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is used. If the board has Intel gigabit ethernet, the MAC address is included in flash, and can (must) be changed prior to installation.
You can use
nvmutil
to change the MAC address. You will perform this modification to the ROM image, before flashing it.
Flash lockdown / boot security
[link]
This is referred to informally as
Secure libreBoot
Full flash lockdown is possible, with cryptographic verification of your Linux kernel and other files, using special features in the GRUB payload.
See:
GRUB hardening / Secure libreBoot
If you already did this, it’s possible that you may no longer be able to flash internally. If that is the case, you must
flash externally
Updating an existing installation
[link]
Unless otherwise stated, in sections pertaining to each motherboard below, an existing Libreboot installation can be updated via internal flashing, without any special steps; simply follow the general internal flashing guide, in the final section further down this page.
If you have an existing Libreboot installation but you
locked down the flash
, updating it will require external flashing.
If you currently have the factory firmware, you probably need to flash externally; on
some
machines, internal flashing is possible, usually with special steps required that differ from updating an existing installation.
The next sections will pertain to specific motherboards, where indicated, followed by general internal flashing instructions where applicable.
HP EliteBook 820 G2 (internal and external)
[link]
See:
HP EliteBook 820 G2 flashing guide
The flashprog command is identical, except programmer selection, on external and internal flashing; internal is only possible if you already have Libreboot.
HP EliteBook 8560w (vendor BIOS)
[link]
If you have the factory firmware:
HP 8560w external flashing guide
Dell Latitude laptops (vendor BIOS)
[link]
See:
Dell Latitude flashing guide
This applies to all supported Dell Latitude models. Remember to
update the MAC address with nvmutil
, before flashing.
ThinkPad X200/T400/T500/W500/R400/R500
[link]
If you’re running one of these with Lenovo BIOS, you must externally flash Libreboot, because the original firmware restricts writes to the flash.
There machines all use SOIC8/SOIC16 flash ICs. Refer to pages specifically for each machine:
ThinkPad X200
ThinkPad T400
ThinkPad R400
ThinkPad T500/W500
(R500 is similar)
NOTE: T400S, X200S and X200 Tablet require different steps, because these have WSON8 flash ICs on them, which will require some soldering. Please read the
external flashing guide
in the section pertaining to WSON.
You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some luck with that.
Intel D510MO/D410PT (vendor BIOS)
[link]
See:
External flashing guide
- both boards are compatible with the same image.
Gigabyte GA-G41M-ES2L (vendor BIOS)
[link]
Internal flashing is possible, from factory BIOS to Libreboot, but special steps are required.
See:
Gigabyte GA-G41M-ES2L installation guide
Acer G43T-AM3 (vendor BIOS)
[link]
See:
Acer G43T-AM3
MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS)
[link]
MacBook
1,1
requires
external flashing
. MacBook
2,1
can always be flashed internally. iMac 5,2 can be flashed internally.
Also check the
Macbook2,1 hardware page
ASUS KCMA-D8 / KGPE-D16 (vendor BIOS)
[link]
You must flash it externally
(DIP-8 section) - also look at the
KGPE-D16 hardware page
Further information is available on the
KCMA-D8 page
KGPE-D16 installation is essentially the same, with the same type of flash IC (DIP-8). Refer to the external flashing guide.
ASUS KFSN4-DRE (vendor BIOS)
[link]
This board uses LPC flash in a PLCC32 socket. This coreboot page shows an example of the push pin as a proof of concept:
See:
ASUS KFSN4-DRE guide
Hot-swap the flash IC with another one while it’s running, and flash it internally.
Intel D945GCLF (vendor BIOS)
[link]
See:
Intel D945GCLF flashing guide
Dell OptiPlex 3050 Micro (vendor BIOS)
[link]
Refer to the
3050 Micro page
. Internal flashing also possible. This has the Intel Boot Guard, but Libreboot uses the
deguard
utility to disable the Boot Guard on this Intel 7th gen board.
Dell OptiPlex 7010/9010 SFF/MT + Precision T1650 MT (vendor BIOS)
[link]
Refer to the
7010/9010 SFF/MT + Precision T1650 MT page
. Internal flashing (from vendor firmware to Libreboot) is possible if you set the Service Mode jumper.
Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700
[link]
Refer to the
Dell OptiPlex 7020/9020/XE2/T1700 MT and SFF
. Internal flashing (from vendor firmware to Libreboot) is possible if you set the Service Mode jumper.
HP EliteBook laptops (vendor BIOS)
[link]
Refer to the
hardware page
for info about HP laptops, and read the
external flashing guide
Links to specific HP laptop pages:
HP EliteBook 2170p
HP EliteBook 2560p
HP EliteBook 2570p
HP EliteBook 820 G2
HP EliteBook 8460p
HP EliteBook 8470p
HP EliteBook Folio 9470m
These pages provide more info about external flashing. You must remember to
insert vendor files
, if you’re using release ROMs.
HP Elite 8200 SFF (vendor BIOS)
[link]
See:
HP Elite 8200 SFF install guide
HP Elite 8300 USDT (vendor BIOS)
[link]
See:
HP Elite 8200 USDT install guide
ThinkPad X220/X220T/T420/T420s/T520
[link]
T420/T520:
T420 flash instructions
T420s/T520 are similar, in terms of assembly/disassembly.
Now, as for X220/X220 Tablet:
X220/X220 Tablet is essentially the same as the X230, but cannot be flashed internally; you must use
an external flasher
Otherwise, look at
X230 disassembly
. Note that the X220 has a single 8MB flash, instead of 8MB and 4MB.
ThinkPad X230/T430/T530/W530/X230T
[link]
Internal flashing from vendor BIOS to Libreboot is possible, but not recommended. See:
IvyBridge ThinkPad internal flashing
External flashing recommended, but only documented for X230. See:
ThinkPad X230 install guide
Otherwise, refer to
external SPI flashing
ThinkPad T60/X60/X60Tablet/X60S
[link]
Only the Intel GPU is compatible. Do not flash the ATI GPU models.
External flashing guides:
ThinkPad X60
ThinkPad X60 Tablet
ThinkPad T60
These machines can also be flashed internally, by exploiting a bug in the original Lenovo BIOS. If there’s a BIOS password at boot, you should just flash externally.
Internal flashing instructions:
First, please ensure that your CR2032/CMOS battery is working. This is what powers the SRAM containing BIOS settings, and it powers the real-time clock. It also holds the BUC.TS value - this is what we need.
BUC (Backup Control) register contains a bit called Top Swap (TS). The 64KB bootblock at the top of flash is complemented by a backup Top Swap just above it. The one at the end can’t be flashed internally while Lenovo BIOS is running, but the rest of it can be flashed (everything above the main bootblock).
By setting the TS bit, you can make the machine boot from the backup bootblock.
Download the Libreboot 20160907 utils archive, and in there you will find these binaries:
flashrom
flashrom_i945_sst
flashrom_i945_mx
You’ll also find the bucts tool. Run it as root:
./bucts 1
Now run both of these as root:
./flashrom_i945_sst -p internal -w coreboot.rom
./flashrom_i945_mx -p internal -w coreboot.rom
You’ll see a lot of errors. This is normal. You should see something like:
Reading old flash chip contents... done.
Erasing and writing flash chip... spi_block_erase_20 failed during command execution at address 0x0
Reading current flash chip contents... done. Looking for another erase function.
spi_block_erase_52 failed during command execution at address 0x0
Reading current flash chip contents... done. Looking for another erase function.
Transaction error!
spi_block_erase_d8 failed during command execution at address 0x1f0000
Reading current flash chip contents... done. Looking for another erase function.
spi_chip_erase_60 failed during command execution
Reading current flash chip contents... done. Looking for another erase function.
spi_chip_erase_c7 failed during command execution
Looking for another erase function.
No usable erase functions left.
FAILED!
Uh oh. Erase/write failed. Checking if anything has changed.
Reading current flash chip contents... done.
Apparently at least some data has changed.
Your flash chip is in an unknown state.
If you see this, rejoice! It means that the flash was successful. Please do not panic. Shut down now, and wait a few seconds, then turn back on again.
The main bootblock still isn’t flashed, but you can shut down, wait a few seconds and boot up again. When you do, you’ll have Libreboot. Please make sure to flash a second time, like so:
flashprog -p internal -w coreboot.rom
Libreboot recommends
flashprog
now, which is a fork of flashrom, but we used flashrom in the 2016 release. The macronix/ssh flashrom binaries there are specifically patched; check the Libreboot 20160907 source code for the actual patches. The patches modify some flash chip definitions in flashrom, to exploit the bug in Lenovo BIOS enabling internal flashing.
You must ensure that the second flash is performed, upon reboot, because otherwise if the CR2032 battery dies, bucts will be reset and it will no longer boot.
When you’ve done the second flash, which includes overwriting the main bootblock, set bucts back to zero:
./bucts 0
The second flash can be done by simply following the general internal flashing guide further down on this page.
ThinkPad T480/T480S (vendor BIOS)
[link]
See:
ThinkPad T480/T480S
Thinkpad T440p/W541 (vendor BIOS)
[link]
Guides:
ThinkPad T440p flashing guide
ThinkPad W541 flashing guide
HP EliteBook laptops (vendor BIOS)
[link]
Each machine has it’s own guide:
HP EliteBook 2170p
HP EliteBook 2560p
HP EliteBook 2570p
HP EliteBook 820 G2
HP EliteBook 8460p
HP EliteBook 8470p
HP EliteBook 8560w
HP EliteBook Folio 9470m
HP Elite desktops (vendor BIOS)
[link]
Each machine has it’s own guide:
HP Elite 8200 SFF/MT
(HP 6200 Pro Business probably works too)
HP Elite 8300 USDT
ARM-based Chromebooks
[link]
See:
Chromebook flashing instructions
NOTE: The generic flashing instructions (later on this page) apply only to the x86 machines, because the Chromebooks still use flashrom with the
-p host
argument instead of
-p internal
when flashing, and you typically need to flash externally, due to Google’s security model.
QEMU (arm64 and x86)
[link]
Libreboot can be used on QEMU (virtual machine), which is useful for debugging payloads and generally trying out Libreboot, without requiring real hardware.
See:
Libreboot QEMU guide
Install via host CPU (internal flashing)
[link]
NOTE: This mainly applies to the x86 machines.
Please check other sections listed above, to see if there is anything pertaining to your motherboard. Internal flashing means that you boot Linux or BSD on the target machine, and run
flashprog
there, flashing the machine directly.
If you can’t flash internally, you must
flash externally
Internal flashing is often unavailable with the factory firmware, but it is usually possible when Libreboot is running (barring special circumstances).
Run flashprog on host CPU
[link]
When using release images, always remember to
insert vendor files
. When building from source, the vendor files are added automatically at build time (they are not present in release images).
Flash chip size
Use this to find out:
flashprog -p internal
In the output will be information pertaining to your boot flash.
Howto: read/write/erase the boot flash
How to read the current chip contents:
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin
You should still make several dumps, even if you’re flashing internally, to ensure that you get the same checksums. Check each dump using
sha1sum
How to erase and rewrite the chip contents:
sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom
NOTE:
force_I_want_a_brick
is not scary. Do not be scared! This merely disables the safety checks in flashprog. Flashprog and coreboot change a lot, over the years, and sometimes it’s necessary to use this option. If you’re scared, then just follow the above instructions, but remove that option. So, just use
-p internal
. If that doesn’t work, next try
-p internal:boardmismatch=force
. If that doesn’t work, try
-p internal:boardmismatch=force,laptop=force_I_want_a_brick
. So long as you
ensure
you’re using the correct ROM for your machine, it will be safe to run flashprog. These extra options just disable the safety checks in flashprog. There is nothing to worry about.
If successful, it will either say
VERIFIED
or it will say that the chip contents are identical to the requested image.
NOTE: there are exceptions where the above is not possible. Read about them in the sections below:
Removed boards
[link]
These boards were in Libreboot, but have been removed with the intention of re-adding them at a later date. They were removed due to issues. List:
Acer Chromebook 13 (CB5-311, C810) (nyan-big)
ASUS Chromebit CS10 (veyron-mickey)
ASUS Chromebook C201PA (veyron-speedy)
ASUS Chromebook Flip C100PA (veyron-minnie)
Hisense Chromebook C11 and more (veyron-jerry)
HP Chromebook 11 G1 (daisy-spring)
HP Chromebook 14 G3 (nyan-blaze)
Samsung Chromebook 2 11" (peach-pit)
Samsung Chromebook 2 13" (peach-pi)
Samsung Chromebook XE303 (daisy-snow)
Lenovo ThinkPad X301 (still in lbmk, but with
release="n"
NOTES about removed boards
[link]
WARNING: veyron speedy boards (e.g. C201) have non-functional video init as of 19 February 2023, and no fix is yet available on that date. See:
- the last tested revision from 2021.01 is known to work, for u-boot on this board. See:
(alpernebbi on IRC is looking into this, to bisect uboot and update the latest revisions) - for now, ROM images deleted from the Libreboot 20221214 and 20230319 releases.
WARNING: daisy- and peach- boards require a BL1 bootloader firmware, but the one from coreboot 3rdparty is a fake/placeholder file. We need logic in the Libreboot build system for properly fetching/extracting these, plus docs to cover it. For now, assume that these are broken - ROM images are excluded, for now, and have been deleted from the Libreboot 20221214 and 20230319 releases. - see:
and
D945GCLF: Doesn’t boot at all, according to last report. D510MO is still in lbmk but still was reported problematic; other boards should be fine (see list above).
WARNING: Support for ARM chromebooks is at a proof-of-concept stage. Refer to
docs/uboot/
for more info about the U-Boot payload.
The Canoeboot version of this page is:
RSS
Binary Blob Reduction Policy
Canoeboot
Edit this page
Template
Logo
Authors
Libreboot is part of
Software in the Public Interest
This page is released under license term:
SPDX-License-Identifier: GFDL-1.3-or-later
Please check the
COPYING
file in the website
Markdown repository
for more information.
Markdown file for this page:
This HTML page was generated by the
Libreboot Static Site Generator