From 3f5206789c2db9eeaed28482e6e1ce25664c2b13 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 16 Mar 2023 15:37:18 +0000 Subject: [PATCH] march 2023 libreboot release coming soon --- site/news/MANIFEST | 1 + site/news/libreboot202303xx.md | 109 +++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 site/news/libreboot202303xx.md diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 24c6f15..cc60b48 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot202303xx.md usa-libre-part3.md usa-libre-part2.md fedfree.md diff --git a/site/news/libreboot202303xx.md b/site/news/libreboot202303xx.md new file mode 100644 index 0000000..3fc0daa --- /dev/null +++ b/site/news/libreboot202303xx.md @@ -0,0 +1,109 @@ +% March 2023 Libreboot release expected soon +% Leah Rowe +% 16 March 2023 + +Introduction +============ + +iDevelopment 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 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: + + +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). + +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: + + + +When you follow up on the chain of commits, it ends here: + + + +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.*