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:\
|
||||
<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
|
||||
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
|
||||
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
|
||||
cover it. For now, assume that these are broken - ROM images are excluded,
|
||||
for now, and have been retroactively deleted from the Libreboot 20221214
|
||||
release. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
||||
for now, and have been deleted from the Libreboot 20221214 and 20230319
|
||||
releases. - see: <https://review.coreboot.org/plugins/gitiles/blobs/+/4c0dcf96ae73ba31bf9aa689768a5ecd47bac19e>
|
||||
and <https://review.coreboot.org/plugins/gitiles/blobs/+/b36cc7e08f7337f76997b25ee7344ab8824e268d>**
|
||||
|
||||
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
|
||||
|
||||
**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
|
||||
the [nvmutil documentation](nvmutil.md).
|
||||
|
||||
**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
|
||||
follows (and has been applied already in the lbmk Git repository, as of 22
|
||||
December 2022):**
|
||||
attempting to use cbfstool, due to a faulty check in a script. This is fixed in
|
||||
recent Libreboot releases or revisions. The fix is as
|
||||
follows:
|
||||
|
||||
Edit line 137 in `resources/scripts/blobs/inject`. The line in 20221214 says
|
||||
this:
|
||||
|
|
|
@ -14,13 +14,13 @@ Libreboot from source, [read this page](docs/build/).
|
|||
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
|
||||
|
||||
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)
|
||||
|
||||
|
@ -28,7 +28,7 @@ Libreboot releases are signed using GPG.
|
|||
|
||||
### 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
|
||||
|
||||
|
@ -51,7 +51,7 @@ there is a Git repository that you can download from. Go here:
|
|||
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.
|
||||
|
||||
|
@ -142,7 +142,7 @@ crontab. This page tells you how to use crontab:
|
|||
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
|
||||
unencrypted. Your traffic could be subject to interference by
|
||||
|
@ -156,7 +156,7 @@ if using HTTPS.
|
|||
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.
|
||||
|
||||
|
|
|
@ -14,13 +14,13 @@ Libreboot із джерельного кода, [прочитайте цю ст
|
|||
Код підпису GPG
|
||||
---------------
|
||||
|
||||
**Останнім випуском є Libreboot 20221214, в директорії `testing`.**
|
||||
**Останнім випуском є Libreboot 20230319, в директорії `testing`.**
|
||||
|
||||
### НОВИЙ КЛЮЧ
|
||||
|
||||
Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||
|
||||
Вищезазначений ключ для Libreboot 20221214, та наступних випусків.
|
||||
Вищезазначений ключ для Libreboot 20230319, та наступних випусків.
|
||||
|
||||
Завантажте ключ тут: [lbkey.asc](lbkey.asc)
|
||||
|
||||
|
@ -51,7 +51,7 @@ Libreboot із джерельного кода, [прочитайте цю ст
|
|||
Дзеркала HTTPS {#https}
|
||||
-------------
|
||||
|
||||
**Останнім випуском є Libreboot 20221214, в директорії `testing`.**
|
||||
**Останнім випуском є Libreboot 20230319, в директорії `testing`.**
|
||||
|
||||
Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування.
|
||||
|
||||
|
@ -142,7 +142,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
|||
Дзеркала HTTP {#http}
|
||||
------------
|
||||
|
||||
**Останнім випуском є Libreboot 20221214, під директорією `testing`.**
|
||||
**Останнім випуском є Libreboot 20230319, під директорією `testing`.**
|
||||
|
||||
УВАГА: ці дзеркала є не-HTTPS, що означає, що вони
|
||||
незашифровані. Ваш трафік може бути об'єктом втручання
|
||||
|
@ -156,7 +156,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
|||
Дзеркала FTP {#ftp}
|
||||
-----------
|
||||
|
||||
**Останнім випуском є Libreboot 20221214, під директорією `testing`.**
|
||||
**Останнім випуском є Libreboot 20230319, під директорією `testing`.**
|
||||
|
||||
УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні.
|
||||
|
||||
|
|
|
@ -11,8 +11,8 @@ remplacement pour le micrologiciel UEFI/BIOS propriétaire.
|
|||
Des canaux d'aide sont disponibles
|
||||
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
|
||||
le 14 Décembre 2022.**
|
||||
**NOUVELLE VERSION: La dernière version est [Libreboot 20230319](news/libreboot20230319.md), sortie
|
||||
le 14 Mars 2022.**
|
||||
|
||||
Pourquoi devriez-vous utiliser Libreboot?
|
||||
-----------------------------------
|
||||
|
|
|
@ -13,9 +13,9 @@ firmware. Help is available
|
|||
via [\#libreboot](https://web.libera.chat/#libreboot)
|
||||
on [Libera](https://libera.chat/) IRC.
|
||||
|
||||
**NEW RELEASE: The latest release is Libreboot 20221214, released on
|
||||
14 December 2022.
|
||||
See: [Libreboot 20221214 release announcement](news/libreboot20221214.md).**
|
||||
**NEW RELEASE: The latest release is Libreboot 20230319, released on
|
||||
19 March 2023.
|
||||
See: [Libreboot 20230319 release announcement](news/libreboot20230319.md).**
|
||||
|
||||
Why should you use *libreboot*?
|
||||
----------------------------
|
||||
|
|
|
@ -13,9 +13,8 @@ x-toc-enable: true
|
|||
через [\#libreboot](https://web.libera.chat/#libreboot)
|
||||
на [Libera](https://libera.chat/) IRC.
|
||||
|
||||
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20221214, випущено
|
||||
14 грудня 2022.
|
||||
Дивіться: [Оголошення про випуск Libreboot 20221214](news/libreboot20221214.md).**
|
||||
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20230319, випущено 19 березня 2023.
|
||||
Дивіться: [Оголошення про випуск Libreboot 20230319](news/libreboot20230319.md).**
|
||||
|
||||
Чому вам варто використовувати *libreboot*?
|
||||
----------------------------
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
libreboot202303xx.md
|
||||
libreboot20230319.md
|
||||
usa-libre-part3.md
|
||||
usa-libre-part2.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