haswell: only provide NRI-based ROMs in releases

release="n" is set in target.cfg on haswell build targets
that use mrc.bin

script/update/release exports LBMK_RELEASE="y"

script/build/roms skips building a given target if release="n"
in target.cfg *and* LBMK_RELEASE="y"

you could also do the export yourself before running ./build roms,
for example:

export LBMK_RELEASE="y"
./build roms all

This would skip these ROM images. The native haswell raminit is
now stable enough in my testing, that I wish to delete the MRC-based
targets. This is in line with Libreboot's Binary Blob Reduction Policy,
which states: if a blob can be avoided, it should be avoided.

The problem is that users often run the inject script in *lbmk* from
Git, instead of from the src release archive. I forsee some users
running this on modern lbmk with older release images. If the mrc-based
target isn't there, the user may use an NRI-based target name, and
think it works; they will insert without MRC. I foresaw this ages
ago, which is why Caleb and I ensured that the script checks hashes,
and hashes are included in releases.

Therefore: for the time being, keep the MRC-based configs in lbmk
but do not include images for them in releases. This can be done
indefinitely, but I'll probably remove those configs entirely at
some point.

On the following boards, Libreboot now will *only* provide NRI-based
ROM images for the following machines:

* Dell OptiPlex 9020 SFF
* Dell OptiPlex 9020 MT
* Lenovo ThinkPad T440p
* Lenovo ThinkPad W541/W540

I now recommend exclusive use of NRI-based images, on Haswell
hardware. It's stable enough in my testing, and now supports S3.

Signed-off-by: Leah Rowe <leah@libreboot.org>
9020tpm
Leah Rowe 2024-04-24 05:27:27 +01:00
parent f5035e327a
commit ed0678ae2e
12 changed files with 27 additions and 1 deletions

2
build
View File

@ -13,6 +13,8 @@ export LC_ALL=C
. "include/err.sh" . "include/err.sh"
. "include/option.sh" . "include/option.sh"
export LBMK_RELEASE="$lbmk_release"
eval "$(setvars "" option aur_notice tmpdir)" eval "$(setvars "" option aur_notice tmpdir)"
err="fail" err="fail"

View File

@ -5,3 +5,4 @@ payload_seabios_withgrub="y"
payload_seabios_grubonly="y" payload_seabios_grubonly="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_seabios_withgrub="y"
payload_seabios_grubonly="y" payload_seabios_grubonly="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_seabios_withgrub="y"
payload_seabios_grubonly="y" payload_seabios_grubonly="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_seabios_withgrub="y"
payload_seabios_grubonly="y" payload_seabios_grubonly="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y" payload_seabios="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y" payload_seabios="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y" payload_seabios="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -5,3 +5,4 @@ payload_grub_withseabios="y"
payload_seabios="y" payload_seabios="y"
payload_memtest="y" payload_memtest="y"
grub_scan_disk="ahci" grub_scan_disk="ahci"
release="n"

View File

@ -4,6 +4,13 @@
version=""; versiondate=""; projectname=""; _nogit="" version=""; versiondate=""; projectname=""; _nogit=""
err="err_" err="err_"
# if "y": a coreboot target won't be built if target.cfg says release="n"
# (this is used to exclude certain build targets from releases)
lbmk_release=
set | grep LBMK_RELEASE 1>/dev/null 2>/dev/null || lbmk_release="n" || :
[ -z "$lbmk_release" ] && lbmk_release="$LBMK_RELEASE"
[ "$lbmk_release" = "n" ] || [ "$lbmk_release" = "y" ] || lbmk_release="n"
x_() { x_() {
[ $# -lt 1 ] || ${@} || $err "Unhandled non-zero exit: $@"; return 0 [ $# -lt 1 ] || ${@} || $err "Unhandled non-zero exit: $@"; return 0
} }

View File

@ -20,7 +20,7 @@ cfgsdir="config/coreboot"
# target.cfg files have to specifically enable [a] payload(s) # target.cfg files have to specifically enable [a] payload(s)
pv="payload_grub payload_grub_withseabios payload_seabios payload_memtest t" pv="payload_grub payload_grub_withseabios payload_seabios payload_memtest t"
pv="${pv} payload_seabios_withgrub payload_seabios_grubonly payload_uboot memtest_bin" pv="${pv} payload_seabios_withgrub payload_seabios_grubonly payload_uboot memtest_bin"
v="romdir cbrom initmode displaymode cbcfg targetdir tree keymaps" v="romdir cbrom initmode displaymode cbcfg targetdir tree keymaps release"
v="${v} grub_timeout ubdir board grub_scan_disk uboot_config" v="${v} grub_timeout ubdir board grub_scan_disk uboot_config"
eval "$(setvars "n" ${pv})" eval "$(setvars "n" ${pv})"
eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)" eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"
@ -56,6 +56,13 @@ main()
grub_background="background1280x800.png" grub_background="background1280x800.png"
board="${x}" board="${x}"
configure_target configure_target
# exclude certain targets from the release
if [ "$release" = "n" ] && [ "$lbmk_release" = "y" ]; then
printf "Skipping target: %s\n" "$x"
continue
fi
build_payloads build_payloads
build_target_mainboard build_target_mainboard
[ -d "bin/${board}" ] || continue [ -d "bin/${board}" ] || continue

View File

@ -9,6 +9,8 @@ set -u -e
eval "$(setvars "" vdir relname src_dirname srcdir _xm target romdir mode)" eval "$(setvars "" vdir relname src_dirname srcdir _xm target romdir mode)"
export LBMK_RELEASE="y"
main() main()
{ {
vdir="release" vdir="release"