Libreboot 20230319 release announcement
parent
4f84979cbc
commit
e5d16c2a99
|
@ -75,14 +75,15 @@ of 19 February 2023, and no fix is yet available on that date. See:
|
||||||
from 2021.01 is known to work, for u-boot on this board. See:\
|
from 2021.01 is known to work, for u-boot on this board. See:\
|
||||||
<https://wiki.postmarketos.org/wiki/ASUS_Chromebook_C201_(google-veyron-speedy)>
|
<https://wiki.postmarketos.org/wiki/ASUS_Chromebook_C201_(google-veyron-speedy)>
|
||||||
(alpernebbi on IRC is looking into this, to bisect uboot and update the latest
|
(alpernebbi on IRC is looking into this, to bisect uboot and update the latest
|
||||||
revisions) - for now, ROM images deleted from the Libreboot 20221214 release.**
|
revisions) - for now, ROM images deleted from the Libreboot 20221214
|
||||||
|
and 20230319 releases.**
|
||||||
|
|
||||||
**WARNING: daisy- and peach- boards require a BL1 bootloader blob, but the
|
**WARNING: daisy- and peach- boards require a BL1 bootloader blob, but the
|
||||||
one from coreboot 3rdparty is a fake/placeholder blob. We need logic in the
|
one from coreboot 3rdparty is a fake/placeholder blob. We need logic in the
|
||||||
Libreboot build system for properly fetching/extracting these, plus docs to
|
Libreboot build system for properly fetching/extracting these, plus docs to
|
||||||
cover it. For now, assume that these are broken - ROM images are excluded,
|
cover it. For now, assume that these are broken - ROM images are excluded,
|
||||||
for now, and have been retroactively deleted from the Libreboot 20221214
|
for now, and have been deleted from the Libreboot 20221214 and 20230319
|
||||||
release. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
||||||
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
|
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
|
||||||
|
|
||||||
WARNING: Support for these boards is at a proof-of-concept stage. Refer
|
WARNING: Support for these boards is at a proof-of-concept stage. Refer
|
||||||
|
|
|
@ -83,13 +83,22 @@ For example:
|
||||||
|
|
||||||
./blobutil inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
|
./blobutil inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd
|
||||||
|
|
||||||
|
**NOTE: Haswell machines come with `mrc.bin` or without, depending on the
|
||||||
|
ROM image configuration. These ROM configs have `mrc.bin`: `t440pmrc_12mb`
|
||||||
|
and `w541mrc_12mb`. These ROM configs have libre MRC: `t440p_12mb`
|
||||||
|
and `w541_12mb` - it is critical that you choose the right one, when using
|
||||||
|
the `-b` flag in the `blobutil inject` command. For example, if you
|
||||||
|
used `-b t440p_12mb` on a ROM image that actually corresponds
|
||||||
|
to `t440pmrc_12mb`, then the required `mrc.bin` file would not be added
|
||||||
|
and that ROM would not boot when flashed.**
|
||||||
|
|
||||||
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in
|
NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in
|
||||||
the [nvmutil documentation](nvmutil.md).
|
the [nvmutil documentation](nvmutil.md).
|
||||||
|
|
||||||
**WARNING: This is broken in Libreboot 20221214's src archive. It fails when
|
**WARNING: This is broken in Libreboot 20221214's src archive. It fails when
|
||||||
attempting to use cbfstool, due to a faulty check in a script. The fix is as
|
attempting to use cbfstool, due to a faulty check in a script. This is fixed in
|
||||||
follows (and has been applied already in the lbmk Git repository, as of 22
|
recent Libreboot releases or revisions. The fix is as
|
||||||
December 2022):**
|
follows:
|
||||||
|
|
||||||
Edit line 137 in `resources/scripts/blobs/inject`. The line in 20221214 says
|
Edit line 137 in `resources/scripts/blobs/inject`. The line in 20221214 says
|
||||||
this:
|
this:
|
||||||
|
|
|
@ -14,13 +14,13 @@ Libreboot from source, [read this page](docs/build/).
|
||||||
GPG signing key
|
GPG signing key
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
**The latest release is Libreboot 20221214, under the `testing` directory.**
|
**The latest release is Libreboot 20230319, under the `testing` directory.**
|
||||||
|
|
||||||
### NEW KEY
|
### NEW KEY
|
||||||
|
|
||||||
Full key fingerprint: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
Full key fingerprint: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||||
|
|
||||||
The above key is for Libreboot 20221214, and subsequent releases.
|
This key is for Libreboot releases *after* the 20160907 release.
|
||||||
|
|
||||||
Download the key here: [lbkey.asc](lbkey.asc)
|
Download the key here: [lbkey.asc](lbkey.asc)
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ Libreboot releases are signed using GPG.
|
||||||
|
|
||||||
### OLD KEY:
|
### OLD KEY:
|
||||||
|
|
||||||
This key is for Libreboot 20160907 and all older releases:
|
This key is for Libreboot 20160907, and releases older than 20160907:
|
||||||
|
|
||||||
Full key fingerprint: CDC9 CAE3 2CB4 B7FC 84FD C804 969A 9795 05E8 C5B2
|
Full key fingerprint: CDC9 CAE3 2CB4 B7FC 84FD C804 969A 9795 05E8 C5B2
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ there is a Git repository that you can download from. Go here:
|
||||||
HTTPS mirrors {#https}
|
HTTPS mirrors {#https}
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
**The latest release is Libreboot 20221214, under the `testing` directory.**
|
**The latest release is Libreboot 20230319, under the `testing` directory.**
|
||||||
|
|
||||||
These mirrors are recommended, since they use TLS (https://) encryption.
|
These mirrors are recommended, since they use TLS (https://) encryption.
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ crontab. This page tells you how to use crontab:
|
||||||
HTTP mirrors {#http}
|
HTTP mirrors {#http}
|
||||||
------------
|
------------
|
||||||
|
|
||||||
**The latest release is Libreboot 20221214, under the `testing` directory.**
|
**The latest release is Libreboot 20230319, under the `testing` directory.**
|
||||||
|
|
||||||
WARNING: these mirrors are non-HTTPS which means that they are
|
WARNING: these mirrors are non-HTTPS which means that they are
|
||||||
unencrypted. Your traffic could be subject to interference by
|
unencrypted. Your traffic could be subject to interference by
|
||||||
|
@ -156,7 +156,7 @@ if using HTTPS.
|
||||||
FTP mirrors {#ftp}
|
FTP mirrors {#ftp}
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
**The latest release is Libreboot 20221214, under the `testing` directory.**
|
**The latest release is Libreboot 20230319, under the `testing` directory.**
|
||||||
|
|
||||||
WARNING: FTP is also unencrypted, like HTTP. The same risks are present.
|
WARNING: FTP is also unencrypted, like HTTP. The same risks are present.
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,13 @@ Libreboot із джерельного кода, [прочитайте цю ст
|
||||||
Код підпису GPG
|
Код підпису GPG
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
**Останнім випуском є Libreboot 20221214, в директорії `testing`.**
|
**Останнім випуском є Libreboot 20230319, в директорії `testing`.**
|
||||||
|
|
||||||
### НОВИЙ КЛЮЧ
|
### НОВИЙ КЛЮЧ
|
||||||
|
|
||||||
Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||||
|
|
||||||
Вищезазначений ключ для Libreboot 20221214, та наступних випусків.
|
Вищезазначений ключ для Libreboot 20230319, та наступних випусків.
|
||||||
|
|
||||||
Завантажте ключ тут: [lbkey.asc](lbkey.asc)
|
Завантажте ключ тут: [lbkey.asc](lbkey.asc)
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ Libreboot із джерельного кода, [прочитайте цю ст
|
||||||
Дзеркала HTTPS {#https}
|
Дзеркала HTTPS {#https}
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
**Останнім випуском є Libreboot 20221214, в директорії `testing`.**
|
**Останнім випуском є Libreboot 20230319, в директорії `testing`.**
|
||||||
|
|
||||||
Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування.
|
Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування.
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
||||||
Дзеркала HTTP {#http}
|
Дзеркала HTTP {#http}
|
||||||
------------
|
------------
|
||||||
|
|
||||||
**Останнім випуском є Libreboot 20221214, під директорією `testing`.**
|
**Останнім випуском є Libreboot 20230319, під директорією `testing`.**
|
||||||
|
|
||||||
УВАГА: ці дзеркала є не-HTTPS, що означає, що вони
|
УВАГА: ці дзеркала є не-HTTPS, що означає, що вони
|
||||||
незашифровані. Ваш трафік може бути об'єктом втручання
|
незашифровані. Ваш трафік може бути об'єктом втручання
|
||||||
|
@ -156,7 +156,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
||||||
Дзеркала FTP {#ftp}
|
Дзеркала FTP {#ftp}
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
**Останнім випуском є Libreboot 20221214, під директорією `testing`.**
|
**Останнім випуском є Libreboot 20230319, під директорією `testing`.**
|
||||||
|
|
||||||
УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні.
|
УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні.
|
||||||
|
|
||||||
|
|
|
@ -11,8 +11,8 @@ remplacement pour le micrologiciel UEFI/BIOS propriétaire.
|
||||||
Des canaux d'aide sont disponibles
|
Des canaux d'aide sont disponibles
|
||||||
dans le canal [\#libreboot](https://web.libera.chat/#libreboot) sur le serveur IRC [Libera](https://libera.chat/).
|
dans le canal [\#libreboot](https://web.libera.chat/#libreboot) sur le serveur IRC [Libera](https://libera.chat/).
|
||||||
|
|
||||||
**NOUVELLE VERSION: La dernière version est [Libreboot 20221214](news/libreboot20221214.md), sortie
|
**NOUVELLE VERSION: La dernière version est [Libreboot 20230319](news/libreboot20230319.md), sortie
|
||||||
le 14 Décembre 2022.**
|
le 14 Mars 2022.**
|
||||||
|
|
||||||
Pourquoi devriez-vous utiliser Libreboot?
|
Pourquoi devriez-vous utiliser Libreboot?
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
|
@ -13,9 +13,9 @@ firmware. Help is available
|
||||||
via [\#libreboot](https://web.libera.chat/#libreboot)
|
via [\#libreboot](https://web.libera.chat/#libreboot)
|
||||||
on [Libera](https://libera.chat/) IRC.
|
on [Libera](https://libera.chat/) IRC.
|
||||||
|
|
||||||
**NEW RELEASE: The latest release is Libreboot 20221214, released on
|
**NEW RELEASE: The latest release is Libreboot 20230319, released on
|
||||||
14 December 2022.
|
19 March 2023.
|
||||||
See: [Libreboot 20221214 release announcement](news/libreboot20221214.md).**
|
See: [Libreboot 20230319 release announcement](news/libreboot20230319.md).**
|
||||||
|
|
||||||
Why should you use *libreboot*?
|
Why should you use *libreboot*?
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
|
@ -13,9 +13,8 @@ x-toc-enable: true
|
||||||
через [\#libreboot](https://web.libera.chat/#libreboot)
|
через [\#libreboot](https://web.libera.chat/#libreboot)
|
||||||
на [Libera](https://libera.chat/) IRC.
|
на [Libera](https://libera.chat/) IRC.
|
||||||
|
|
||||||
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20221214, випущено
|
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20230319, випущено 19 березня 2023.
|
||||||
14 грудня 2022.
|
Дивіться: [Оголошення про випуск Libreboot 20230319](news/libreboot20230319.md).**
|
||||||
Дивіться: [Оголошення про випуск Libreboot 20221214](news/libreboot20221214.md).**
|
|
||||||
|
|
||||||
Чому вам варто використовувати *libreboot*?
|
Чому вам варто використовувати *libreboot*?
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
libreboot202303xx.md
|
libreboot20230319.md
|
||||||
usa-libre-part3.md
|
usa-libre-part3.md
|
||||||
usa-libre-part2.md
|
usa-libre-part2.md
|
||||||
fedfree.md
|
fedfree.md
|
||||||
|
|
|
@ -0,0 +1,305 @@
|
||||||
|
% Libreboot 20230319 released!
|
||||||
|
% Leah Rowe
|
||||||
|
% 19 March 2023
|
||||||
|
|
||||||
|
Libreboot provides boot firmware for supported x86/ARM machines, starting a
|
||||||
|
bootloader that then loads your operating system. It replaces proprietary
|
||||||
|
BIOS/UEFI firmware on x86 machines, and provides an *improved* configuration
|
||||||
|
on ARM-based chromebooks supported (U-Boot bootloader, instead of Google's
|
||||||
|
depthcharge bootloader). On x86 machines, the GRUB and SeaBIOS coreboot
|
||||||
|
payloads are officially supported, provided in varying configurations per
|
||||||
|
machine. You can find the list of supported hardware in the Libreboot
|
||||||
|
documentation.
|
||||||
|
|
||||||
|
The last Libreboot release, version 20221214, was released on 14 December
|
||||||
|
in 2022. *This* new release, Libreboot 20230319, is released today on
|
||||||
|
March 19th, 2023.
|
||||||
|
|
||||||
|
This is marked as a *testing* release. Not all ROM image configurations have
|
||||||
|
been provided pre-compiled; specifically, `daisy` and `veyron` chromebook
|
||||||
|
boards are not available pre-compiled, but the other boards are. A few new
|
||||||
|
boards have been added, in addition to several fixes and feature additions.
|
||||||
|
|
||||||
|
Build from source
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
*This* release was build-tested on Debian *Sid*, as of 18 March 2023. Your
|
||||||
|
mileage may vary, with other distros. Refer to Libreboot documentation.
|
||||||
|
|
||||||
|
Work done since last release
|
||||||
|
============================
|
||||||
|
|
||||||
|
For more detailed change logs, look at the Git repository. This is
|
||||||
|
a summary of changes.
|
||||||
|
|
||||||
|
Brief overview of changes
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
I've been very busy these last couple months, so there have been less changes
|
||||||
|
in Libreboot lately. I'm expecting to have a lot more time throughout the
|
||||||
|
coming summer, which I plan to make full use of for the next Libreboot
|
||||||
|
release.
|
||||||
|
|
||||||
|
The changes can be summarised, thus:
|
||||||
|
|
||||||
|
* **LIBRE** raminit code now available, on Haswell boards (ThinkPad T440p and
|
||||||
|
ThinkPad W541). This is using patches from Angel Pons (hell on coreboot IRC),
|
||||||
|
that are currently still in review on coreboot master. The *old* configs
|
||||||
|
that use `mrc.bin` for raminit are still available aswell, so this release
|
||||||
|
contains ROMs with libre raminit *and* ROMs with blob raminit. The reasons
|
||||||
|
are explained below.
|
||||||
|
* **FIXED S3 suspend/resume on Haswell (T440p/W541)** - but only on configs
|
||||||
|
that use `mrc.bin`. The images with libre MRC still have broken S3. S3
|
||||||
|
suspend/resume is what people refer to as *sleep mode* and *wake from sleep*.
|
||||||
|
* **Force console display mode in GRUB**: This corresponds to the
|
||||||
|
setting `GRUB_TERMINAL=console` that you might find in `/etc/default/grub`
|
||||||
|
on a Linux machine. In Libreboot, switching VGA/text modes is unsupported,
|
||||||
|
it's stuck in one mode until Linux/BSD Kernel Mode Setting takes over.
|
||||||
|
With this change to GRUB, GRUB's VGA mode switching is disabled. This might
|
||||||
|
make a few Linux distro installer menus work a bit nicer.
|
||||||
|
* **New ports:** Lenovo T530 and W530 thinkpads added.
|
||||||
|
* **Bump coreboot revision**: February 2023 revision for most x86 boards,
|
||||||
|
including Haswell (T440p/W541) when `mrc.bin` is in use; Haswell (T440p/W541)
|
||||||
|
setups that don't use `mrc.bin` (and instead use Angel`s libre replacement
|
||||||
|
code), it's currently based on coreboot from mid-2022 because that's what
|
||||||
|
Angel's as yet unmerged patches are based on (relative to coreboot's
|
||||||
|
master branch)
|
||||||
|
* **Bump GRUB revision:** February 2023 revision now, on all boards.
|
||||||
|
* **Bump SeaBIOS revision:** February 2023 revision now, on all
|
||||||
|
boards.
|
||||||
|
* `grub.cfg`: 5 seconds boot delay, instead of 10 seconds.
|
||||||
|
* GM45 thinkpads: default to 256MB VRAM instead, which is more stable than
|
||||||
|
the previous setting of 352MB. Many reports from users indicated performance
|
||||||
|
issues when the 352MB config was used.
|
||||||
|
* Stricter handling of exit status in lbmk. More errors result in a hard
|
||||||
|
exit than before, preventing the build process from erroneously continuing.
|
||||||
|
* Fixed fault checks in the Libreboot build system, when checking which
|
||||||
|
coreboot utilities are needed (e.g. cbfstool, ifdtool)
|
||||||
|
* util/nvmutil: Massively re-factored the codebase, making it more efficient
|
||||||
|
and *correct*.
|
||||||
|
|
||||||
|
REMARK: libre raminit on Haswell
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
Upon testing, I've discovered that the libre code has the following problems:
|
||||||
|
|
||||||
|
* I haven't gotten S3 suspend/resume working properly on that yet.
|
||||||
|
* Broken USB device detection in GRUB.
|
||||||
|
* SeaBIOS still works, for USB devices.
|
||||||
|
|
||||||
|
Therefore, the *libre* MRC setup in this release, for T440p and W541 thinkpads,
|
||||||
|
only provides SeaBIOS payload (booting in text mode, implying use of a
|
||||||
|
bootloader that supports this, and if wanting xorg/wayland, a kernel that does
|
||||||
|
kernel mode setting, which is most BSD/Linux setups these days).
|
||||||
|
|
||||||
|
In this release, and in the build system, the following targets are defined:
|
||||||
|
|
||||||
|
* `t440p_12mb`: libre raminit code used (reverse engineered replacement
|
||||||
|
of `mrc.bin`)
|
||||||
|
* `w541_12mb`: ditto (libre raminit code)
|
||||||
|
* `t440pmrc_12mb`: blob `mrc.bin` used for raminit. GRUB and SeaBIOS payloads
|
||||||
|
both supported.
|
||||||
|
* `w541mrc_12mb`: blob `mrc.bin` used for raminit. GRUB and SeaBIOS payloads
|
||||||
|
both supported.
|
||||||
|
|
||||||
|
The libre raminit comes from this patchset:
|
||||||
|
|
||||||
|
<https://review.coreboot.org/c/coreboot/+/64198/5>
|
||||||
|
|
||||||
|
The MRC blob (and Angel's replacement code) don't just do raminit, they handle
|
||||||
|
a few other init tasks aswell, including USB host controller.
|
||||||
|
|
||||||
|
New boards, x86
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Lenovo ThinkPad W530
|
||||||
|
* Lenovo ThinkPad T530
|
||||||
|
|
||||||
|
I bought these machines, which I've not added to the release but plan to
|
||||||
|
add for the next release:
|
||||||
|
|
||||||
|
* HP EliteBook 8560w (<https://review.coreboot.org/c/coreboot/+/39398>)
|
||||||
|
* Lenovo G505S (<http://dangerousprototypes.com/docs/Lenovo_G505S_hacking>)
|
||||||
|
* Dell Latitude E6400 (now merged in coreboot master. It's an ICH9M machine
|
||||||
|
but with DDR2 raminit)
|
||||||
|
|
||||||
|
^ I would have put these in today's release, but didn't have time, and wanted
|
||||||
|
to get this release done today.
|
||||||
|
|
||||||
|
Removed boards
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* asus p2b\_ls/p3b\_f - they didn't boot properly in pcbox, and the real
|
||||||
|
hardware is basically useless / impossible to find
|
||||||
|
|
||||||
|
lbmk Git changes
|
||||||
|
------------
|
||||||
|
|
||||||
|
The precise list of commits in `lbmk.git` since the last release, is as
|
||||||
|
follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
* 07b6bb3d - build/release: handle nvmutil (12 hours ago) <Leah Rowe>
|
||||||
|
* 653810b8 - fix bug: me not being downloaded on some boards (12 hours ago) <Leah Rowe>
|
||||||
|
* 2bb63d85 - new board: lenovo/w530 (12 hours ago) <Leah Rowe>
|
||||||
|
* 896e9065 - new board: lenovo/t530 (13 hours ago) <Leah Rowe>
|
||||||
|
* cffa5679 - haswell (lenovo t440p/w541): fix S3 suspend/resume (14 hours ago) <Leah Rowe>
|
||||||
|
* be3d7b7e - haswell: re-add mrc.bin in separate board configs (22 hours ago) <Leah Rowe>
|
||||||
|
* bdc39ffc - haswell: only use txtmod seabios configuration (25 hours ago) <Leah Rowe>
|
||||||
|
* df6b9e28 - remove t440p_12mb_cbfs4mb (retain t440_12mb) (25 hours ago) <Leah Rowe>
|
||||||
|
* 04f1fe17 - remove x220_16mb (x220 with 16MB flash) (29 hours ago) <Leah Rowe>
|
||||||
|
* 548872ce - haswell boards: use libre mrc.bin replacement (2 days ago) <Leah Rowe>
|
||||||
|
* a942bd65 - move download/gitmodule script to root directory (2 days ago) <Leah Rowe>
|
||||||
|
* 59540530 - nuke p2b_ls/p3b_f boards (2 days ago) <Leah Rowe>
|
||||||
|
* ebd9ec96 - debian/ubuntu dependencies scripts: add gettext (3 days ago) <Leah Rowe>
|
||||||
|
* f9e20b8a - util/nvmutil: optimise rhex() further (13 days ago) <Leah Rowe>
|
||||||
|
* f04855c2 - fix flashrom download error (13 days ago) <Leah Rowe>
|
||||||
|
* e2945f02 - payload/grub: force terminal_output to console (2 weeks ago) <Leah Rowe>
|
||||||
|
* 909d3b31 - grub.cfg: set default timeout to 5 seconds (2 weeks ago) <Leah Rowe>
|
||||||
|
* 544737c8 - scripts: build cbutils, not specific utils (2 weeks ago) <Leah Rowe>
|
||||||
|
* 9398ad08 - also fix data.vbt path for lenovo/w541 (2 weeks ago) <Leah Rowe>
|
||||||
|
* d2465e82 - Fix CONFIG_INTEL_GMA_VBT_FILE for the t440p_12mb config (2 weeks ago) <Konstantinos Koukopoulos>
|
||||||
|
* 0e34d199 - update debian dependencies (for sid) (2 weeks ago) <Leah Rowe>
|
||||||
|
* a5aa5bca - ICH9M: default to 256MB VRAM, not 352MB (2 weeks ago) <Leah Rowe>
|
||||||
|
* 6421af5d - bump seabios revision (4 weeks ago) <Leah Rowe>
|
||||||
|
* aba6307d - bump grub revision (4 weeks ago) <Leah Rowe>
|
||||||
|
* 36982ab5 - fix bad ifdtool patch from earlier commit (4 weeks ago) <Leah Rowe>
|
||||||
|
* 3857b4b6 - build/dependencies/debian: add python3 dependency (4 weeks ago) <Leah Rowe>
|
||||||
|
* dac9ea86 - build/boot/roms: fail when build cbutils fails (4 weeks ago) <Leah Rowe>
|
||||||
|
* 0d0f6cf3 - coreboot: update revision of cbtree "default" (4 weeks ago) <Leah Rowe>
|
||||||
|
* dc1fedf9 - Merge branch 'uboot-v2023.01' of alpernebbi/lbmk into master (4 weeks ago) <Leah Rowe>
|
||||||
|
|\
|
||||||
|
| * 7932d5fa - u-boot: Disable environment storage (5 weeks ago) <Alper Nebi Yasak>
|
||||||
|
| * 8d57468e - u-boot: Update to v2023.01 (5 weeks ago) <Alper Nebi Yasak>
|
||||||
|
|/
|
||||||
|
* 6b4a14ce - util/nvmutil: tidy up variable declarations (7 weeks ago) <Leah Rowe>
|
||||||
|
* 031a0b55 - util/nvmutil: setWord(): declare variables first (7 weeks ago) <Leah Rowe>
|
||||||
|
* 257eedca - util/nvmutil: reset errno if any write attempted (7 weeks ago) <Leah Rowe>
|
||||||
|
* adc76e38 - util/nvmutil: do not write non-changes to disk (7 weeks ago) <Leah Rowe>
|
||||||
|
* 3e150bf3 - util/nvmutil: cmd_swap(): write sequentually (7 weeks ago) <Leah Rowe>
|
||||||
|
* 7e3a7355 - util/nvmutil: don't use malloc() (7 weeks ago) <Leah Rowe>
|
||||||
|
* a924d43b - util/nvmutil: fix clang build errors (7 weeks ago) <Leah Rowe>
|
||||||
|
* c822033b - util/nvmutil: simplify rhex() (7 weeks ago) <Leah Rowe>
|
||||||
|
* 0f485245 - util/nvmutil: use gbe[] in word() and setword() (7 weeks ago) <Leah Rowe>
|
||||||
|
* b1186968 - util/nvmutil: code cleanup (7 weeks ago) <Leah Rowe>
|
||||||
|
* 7a986497 - util/nvmutil: call pledge() earlier, in main() (7 weeks ago) <Leah Rowe>
|
||||||
|
* bb6fe263 - util/nvmutil: remove unused #define (7 weeks ago) <Leah Rowe>
|
||||||
|
* 5a5a8662 - util/nvmutil: optimised disk reads (7 weeks ago) <Leah Rowe>
|
||||||
|
* 24d56456 - util/nvmutil: optimise cmd_swap() (7 weeks ago) <Leah Rowe>
|
||||||
|
* ef84329a - util/nvmutil: optimise rhex() for speed (7 weeks ago) <Leah Rowe>
|
||||||
|
* 88a51531 - util/nvmutil: code cleanup in rhex() (7 weeks ago) <Leah Rowe>
|
||||||
|
* ac1cab28 - x230edp_12mb: Correct the path to data.vbt (7 weeks ago) <Alexei Sorokin>
|
||||||
|
* afc80b89 - util/nvmutil: update copyright years (9 weeks ago) <Leah Rowe>
|
||||||
|
* 8242dca5 - util/nvmutil: limit bytes written per command (9 weeks ago) <Leah Rowe>
|
||||||
|
* e398331b - util/nvmutil: make writeGbeFile more readable (9 weeks ago) <Leah Rowe>
|
||||||
|
* 8dea350a - util/nvmutil: only write parts that are modified (9 weeks ago) <Leah Rowe>
|
||||||
|
* d0fa08d5 - blobs/inject: fix wrong nvmutil path for make (10 weeks ago) <Leah Rowe>
|
||||||
|
* e8072934 - Merge branch 'veyron-uboot-dmreset' of alpernebbi/lbmk into master (10 weeks ago) <Leah Rowe>
|
||||||
|
|\
|
||||||
|
| * e11650c3 - u-boot: Enable DM_RESET for veyron boards (3 months ago) <Alper Nebi Yasak>
|
||||||
|
* | 6b104542 - Merge branch 'peach-uboot-usbehci' of alpernebbi/lbmk into master (10 weeks ago) <Leah Rowe>
|
||||||
|
|\ \
|
||||||
|
| |/
|
||||||
|
|/|
|
||||||
|
| * 80bf54b2 - u-boot: Enable USB_EHCI_EXYNOS on peach boards (3 months ago) <Alper Nebi Yasak>
|
||||||
|
|/
|
||||||
|
* 7f5dfebf - Do not rely on bashisms and behaviour undefined by the POSIX specification. Part 2 (3 months ago) <Ferass 'Vitali64' EL HAFIDI>
|
||||||
|
* f7870446 - Do not rely on bashisms and behaviour undefined by the POSIX specification. (3 months ago) <Ferass 'Vitali64' EL HAFIDI>
|
||||||
|
* d45b2e70 - util/nvmutil: use err() more consistently (3 months ago) <Leah Rowe>
|
||||||
|
* d726b16f - util/nvmutil: more robust pointer handling (3 months ago) <Leah Rowe>
|
||||||
|
* 448ee510 - util/nvmutil: optimise cmd_swap() further (3 months ago) <Leah Rowe>
|
||||||
|
* effcb942 - util/nvmutil: greatly optimise cmd_copy() (3 months ago) <Leah Rowe>
|
||||||
|
* 6e5828e4 - util/nvmutil: greatly optimise cmd_swap() (3 months ago) <Leah Rowe>
|
||||||
|
* 7aafc62b - scripts/blobs/inject: fix bad cbfstool build check (3 months ago) <Leah Rowe>
|
||||||
|
* 6ebd178f - util/nvmutil: simplified error handling in rhex() (3 months ago) <Leah Rowe>
|
||||||
|
* 04da953c - util/nvmutil: return errno when calling err() (3 months ago) <Leah Rowe>
|
||||||
|
* 00187811 - util/nvmutil: exit non-zero if close() fails (3 months ago) <Leah Rowe>
|
||||||
|
```
|
||||||
|
|
||||||
|
Major works planned
|
||||||
|
===================
|
||||||
|
|
||||||
|
In general, you should also check the issue tracker to find other notes.
|
||||||
|
There is always more work to do, to improve Libreboot.
|
||||||
|
|
||||||
|
Linux distro in flash
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
STILL ON TODO SINCE LAST RELEASE.
|
||||||
|
|
||||||
|
This is another project that has been on hold for a while. The issue
|
||||||
|
has been that I need a decent userland project. I've looked at many
|
||||||
|
different userlands and since late June in 2022, decided to make
|
||||||
|
my own. I want a BusyBox-like solution, but based on code from OpenBSD,
|
||||||
|
ported to run under Linux with musl libc.
|
||||||
|
|
||||||
|
I want this distro to provide a kexec bootloader in flash, similar to Heads,
|
||||||
|
and I also want it to use apk-tools, pointing at Alpine Linux repositories
|
||||||
|
so as to allow any number of packages to be downloaded. It could also provide
|
||||||
|
lots of utils in general, to be a live *rescue system* of sorts. Linux system
|
||||||
|
in flash, that can bootstrap other systems.
|
||||||
|
|
||||||
|
About a week before this release, I actually started on the project for real,
|
||||||
|
after having many false starts. I've forked a project called `lobase` which
|
||||||
|
already ports OpenBSD's userland utilities *to glibc* under Linux, and it's
|
||||||
|
as of today about 5 years outdated based on OpenBSD 6.3.
|
||||||
|
|
||||||
|
I've ported these utilities directly from OpenBSD 7.2, in my local fork of
|
||||||
|
lobase, superimposing the new code on top of the old and adapting according
|
||||||
|
to musl libc (lobase is full of hacks for glibc that I don't need):
|
||||||
|
|
||||||
|
`mail`, `cat`, `ls`, `head`, `rcs`, `hexdump`, `whois` and `time`
|
||||||
|
|
||||||
|
I've been working on this in a dedicated Alpine Linux virtual machine,
|
||||||
|
currently on release 3.17 of Alpine Linux. Alpine is an ideal test distro for
|
||||||
|
such development, because it already uses musl libc and has *libressl*
|
||||||
|
available in aports.
|
||||||
|
|
||||||
|
I don't have enough to release yet, but when I have a release ready, I will
|
||||||
|
upload it to a Git repository. When the userland port is fully complete,
|
||||||
|
I shall then base off of Alpine Linux abuild+aports build system
|
||||||
|
infrastructure to provide small base images. It will be similar to the Heads
|
||||||
|
project, but built separately and not specifically targeted at Libreboot,
|
||||||
|
but in general to any coreboot setup, on supported hardware. It won't be a
|
||||||
|
general purpose distro, but I would at that point submit my userland port to
|
||||||
|
Alpine, proposing it as a replacement of their busybox package in base.
|
||||||
|
|
||||||
|
Unlike Heads, I don't plan yet to make this a direct coreboot payload.
|
||||||
|
Instead, it'll be a standalone image loaded into CBFS, and chainloaded via
|
||||||
|
the GRUB or SeaBIOS payloads, which are both capable of executing ELF binaries
|
||||||
|
from the flash.
|
||||||
|
|
||||||
|
Lobase, which my development is forked from, can be found here (archived):
|
||||||
|
<https://github.com/Duncaen/lobase>
|
||||||
|
|
||||||
|
I've been re-using lobase's build system, adapting newer code from OpenBSD.
|
||||||
|
It's a lot of work, but I'm hopeful I can have this ready before the next
|
||||||
|
Libreboot release.
|
||||||
|
|
||||||
|
Re-factor and optimize GRUB
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
STILL ON TODO SINCE LAST RELEASE.
|
||||||
|
|
||||||
|
GRUB is full of unused bloat that almost nobody uses, yet is in the current
|
||||||
|
Libreboot builds. It's been on TODO for some time, but work has not yet
|
||||||
|
begun on this project. My efforts are currently focused on the Linux distro.
|
||||||
|
|
||||||
|
What I want is a fork of GRUB, optimized to run on bare metal as a coreboot
|
||||||
|
payload, on x86 and ARM platforms.
|
||||||
|
|
||||||
|
I have an update since the last release. Paul Menzel of coreboot *has* made
|
||||||
|
GRUB modules more configurable, making it possible to reduce the size of the
|
||||||
|
payload. His patch is not yet used in Libreboot (not in this release, anyway),
|
||||||
|
but the patch in GRUB is:
|
||||||
|
|
||||||
|
```
|
||||||
|
commit 6c5ee45548fcb65d7921c9fca5867b256f9a48ad
|
||||||
|
Author: Paul Menzel <pmenzel@molgen.mpg.de>
|
||||||
|
Date: Thu Mar 7 12:16:06 2019 +0100
|
||||||
|
Makefile: Allow to set file systems modules for default_payload.elf
|
||||||
|
```
|
||||||
|
|
||||||
|
I'm going to play around with this when I get the time. Even with this
|
||||||
|
modification, GRUB is still full of code that Libreboot will never use.
|
||||||
|
A *GRUB Valhalla Rampage* is still in order!
|
|
@ -1,112 +0,0 @@
|
||||||
% March 2023 Libreboot release expected soon
|
|
||||||
% Leah Rowe
|
|
||||||
% 16 March 2023
|
|
||||||
|
|
||||||
Introduction
|
|
||||||
============
|
|
||||||
|
|
||||||
Development on Libreboot has largely focused on fixing issues since the
|
|
||||||
December 2022 release, and I very recently updated coreboot revisions (for
|
|
||||||
x86 boards) to a newer February 2023 revision. The GRUB and SeaBIOS payloads
|
|
||||||
have also been updated to newer revisions from upstream. A few minor fixes
|
|
||||||
here and there (e.g. VRAM size on GM45 machines causing instability, heavy
|
|
||||||
code re-factoring of nvmutil, minor build system tweaks).
|
|
||||||
|
|
||||||
The build system in Libreboot has matured quite a bit since the reboot of the
|
|
||||||
project back in 2021, to the point where much less work on the build system is
|
|
||||||
needed these days. The focus from now on is going to be on new hardware support
|
|
||||||
and hardware testing (an ambitious agenda, for which board maintainers will be
|
|
||||||
needed).
|
|
||||||
|
|
||||||
Saturday, 18 March 2023
|
|
||||||
-----------------------
|
|
||||||
|
|
||||||
I'll have more to say on the day of release, via Change Log, but
|
|
||||||
I'm basically confident that I'll have a new Libreboot release out
|
|
||||||
the door on ~Saturday, 18 March 2023. This release will be marked *testing*,
|
|
||||||
because there are still many blockers preventing the declaration of a stable
|
|
||||||
release, but in practise all of the boards that have pre-built ROMs will
|
|
||||||
at least boot and be usable.
|
|
||||||
|
|
||||||
The current state of Libreboot is that it's ready for a new testing
|
|
||||||
release, without many major issues, but for one major problem:
|
|
||||||
|
|
||||||
Haswell S3 issue (and fix)
|
|
||||||
==========================
|
|
||||||
|
|
||||||
The problem
|
|
||||||
-----------
|
|
||||||
|
|
||||||
The S3 suspend/resume feature on Haswell (ThinkPad T440p/W541) is still
|
|
||||||
broken. Resuming from suspend results in a cold boot. This is due to quirks in
|
|
||||||
how Intel's MRC blob works (for raminit), coupled with how Libreboot configures
|
|
||||||
both the IFD and CBFS size in coreboot.
|
|
||||||
|
|
||||||
I now know of two possible ways to fix it, and I'm confident that one or both
|
|
||||||
will be effective:
|
|
||||||
|
|
||||||
Fix
|
|
||||||
---
|
|
||||||
|
|
||||||
The Heads project, which is another coreboot distro similar to Libreboot,
|
|
||||||
recently added T440p support, but they fixed the S3 bug. The relevant
|
|
||||||
differences in their firmware, compared to Libreboot, is as follows:
|
|
||||||
|
|
||||||
* IFD changes, related to read/write bits. Most likely irrelevant for the
|
|
||||||
purpose of this
|
|
||||||
* CBFS size on theirs is set to 8MB, and the reasoning is explained here:
|
|
||||||
<https://github.com/osresearch/heads/pull/1282/commits/f0792117efa177ded19878f652c5a28e8cc62a71>
|
|
||||||
|
|
||||||
Basically, the `mrc.bin` blob provided for raminit on Haswell (T440p/W541 etc)
|
|
||||||
caches the coreboot code in ways that Libreboot currently screws up. At the
|
|
||||||
time of this post, I'm currently adapting the changes from Heads and conducting
|
|
||||||
tests. I believe their changes will fix it.
|
|
||||||
|
|
||||||
However, 8MB CBFS is far from ideal, as Libreboot currently provides much
|
|
||||||
larger size of ~11.7MB CBFS size (same size as that of the BIOS region, per
|
|
||||||
rules set in the intel flash descriptor).
|
|
||||||
|
|
||||||
Heads also has unrelated differences in its IFD, which you can read about here:
|
|
||||||
<https://github.com/osresearch/heads/pull/1282#issuecomment-1400634600>
|
|
||||||
|
|
||||||
Libre MRC replacement
|
|
||||||
---------------------
|
|
||||||
|
|
||||||
Angel Pons (`hell` on coreboot IRC) has been reverse engineering `mrc.bin` on
|
|
||||||
Haswell platforms. I've learned that they have in fact released a WIP of their
|
|
||||||
work, and it apparently works well. You can find the patch set here:
|
|
||||||
|
|
||||||
<https://review.coreboot.org/c/coreboot/+/64176/5/>
|
|
||||||
|
|
||||||
When you follow up on the chain of commits, it ends here:
|
|
||||||
|
|
||||||
<https://review.coreboot.org/c/coreboot/+/64198/5>
|
|
||||||
|
|
||||||
The MRC blob provides initialisation of the memory controller. Hell's work
|
|
||||||
implements a libre replacement of it, with source code.
|
|
||||||
|
|
||||||
Plan
|
|
||||||
----
|
|
||||||
|
|
||||||
Unrelated to the S3 issue, I'm testing the differing IFD setup from Heads,
|
|
||||||
but inserted into Libreboot.
|
|
||||||
|
|
||||||
Then I'm going to *ignore* the 8MB CBFS config option in Heads, and retain
|
|
||||||
the current larger CBFS size set in Libreboot. I shall do this, while
|
|
||||||
merging Angel's patches into Libreboot (coreboot has not yet merged them,
|
|
||||||
so the patches are under review, but Libreboot has integrated unmerged patches
|
|
||||||
before, from coreboot).
|
|
||||||
|
|
||||||
If the libre raminit works, then I'll re-test the S3 suspend/resume function.
|
|
||||||
Whether or not that fixes it, I will start building the Libreboot release.
|
|
||||||
(my first priority, per Libreboot's binary blob reduction policy, is to provide
|
|
||||||
libre code wherever possible - broken S3 suspend/resume would not be enough to
|
|
||||||
make me retain the `mrc.bin` blob).
|
|
||||||
|
|
||||||
I was hoping to have the release out *today*, but instead I've decided to
|
|
||||||
announce that today that I'm working on it.
|
|
||||||
|
|
||||||
This business with Haswell is the only major issue I've yet to fix in
|
|
||||||
Libreboot, at least for x86.
|
|
||||||
|
|
||||||
*ETA Saturday, 18 March 2023 for release. Libreboot 20230318.*
|
|
Loading…
Reference in New Issue