summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rwxr-xr-xbuild18
-rw-r--r--config/coreboot/default/patches/0052-Disable-compression-on-refcode-insertion.patch31
-rw-r--r--config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/coreboot/hp820g2_12mb/target.cfg1
-rw-r--r--config/coreboot/next/patches/0013-soc-intel-pmc-Hardcoded-poweroff-after-power-fail.patch82
-rw-r--r--config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/coreboot/t480_vfsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/t480_vfsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/coreboot/t480s_vfsp_16mb/config/libgfxinit_corebootfb2
-rw-r--r--config/coreboot/t480s_vfsp_16mb/config/libgfxinit_txtmode2
-rw-r--r--config/dependencies/arch2
-rwxr-xr-xconfig/dependencies/debian4
-rwxr-xr-xconfig/dependencies/fedora382
-rwxr-xr-xconfig/dependencies/fedora402
-rwxr-xr-xconfig/dependencies/fedora415
-rw-r--r--config/dependencies/parabola2
-rwxr-xr-xconfig/dependencies/trisquel6
-rwxr-xr-xconfig/dependencies/ubuntu20044
-rwxr-xr-xconfig/dependencies/ubuntu24044
-rw-r--r--config/dependencies/void2
-rw-r--r--config/flashprog/patches/0001-Workaround-for-MX25-chips.patch24
-rw-r--r--config/flashprog/target.cfg3
-rw-r--r--config/git/flashprog/pkg.cfg2
-rw-r--r--config/grub/default/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch4
-rw-r--r--config/grub/default/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch6
-rw-r--r--config/grub/default/patches/0003-Add-CC0-license.patch8
-rw-r--r--config/grub/default/patches/0004-Define-GRUB_UINT32_MAX.patch4
-rw-r--r--config/grub/default/patches/0005-Add-Argon2-algorithm.patch11
-rw-r--r--config/grub/default/patches/0006-Error-on-missing-Argon2id-parameters.patch4
-rw-r--r--config/grub/default/patches/0007-Compile-with-Argon2id-support.patch8
-rw-r--r--config/grub/default/patches/0008-Make-grub-install-work-with-Argon2.patch4
-rw-r--r--config/grub/default/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch4
-rw-r--r--config/grub/default/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch4
-rw-r--r--config/grub/default/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch8
-rw-r--r--config/grub/default/patches/0012-don-t-print-error-if-module-not-found.patch8
-rw-r--r--config/grub/default/patches/0013-don-t-print-empty-error-messages.patch4
-rw-r--r--config/grub/default/target.cfg2
-rw-r--r--config/grub/nvme/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch4
-rw-r--r--config/grub/nvme/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch6
-rw-r--r--config/grub/nvme/patches/0003-Add-CC0-license.patch8
-rw-r--r--config/grub/nvme/patches/0004-Define-GRUB_UINT32_MAX.patch4
-rw-r--r--config/grub/nvme/patches/0005-Add-Argon2-algorithm.patch11
-rw-r--r--config/grub/nvme/patches/0006-Error-on-missing-Argon2id-parameters.patch4
-rw-r--r--config/grub/nvme/patches/0007-Compile-with-Argon2id-support.patch8
-rw-r--r--config/grub/nvme/patches/0008-Make-grub-install-work-with-Argon2.patch4
-rw-r--r--config/grub/nvme/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch4
-rw-r--r--config/grub/nvme/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch4
-rw-r--r--config/grub/nvme/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch8
-rw-r--r--config/grub/nvme/patches/0012-don-t-print-error-if-module-not-found.patch8
-rw-r--r--config/grub/nvme/patches/0013-don-t-print-empty-error-messages.patch4
-rw-r--r--config/grub/nvme/patches/0014-Add-native-NVMe-driver-based-on-SeaBIOS.patch17
-rw-r--r--config/grub/nvme/target.cfg2
-rw-r--r--config/grub/xhci/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch4
-rw-r--r--config/grub/xhci/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch6
-rw-r--r--config/grub/xhci/patches/0003-Add-CC0-license.patch8
-rw-r--r--config/grub/xhci/patches/0004-Define-GRUB_UINT32_MAX.patch4
-rw-r--r--config/grub/xhci/patches/0005-Add-Argon2-algorithm.patch11
-rw-r--r--config/grub/xhci/patches/0006-Error-on-missing-Argon2id-parameters.patch4
-rw-r--r--config/grub/xhci/patches/0007-Compile-with-Argon2id-support.patch8
-rw-r--r--config/grub/xhci/patches/0008-Make-grub-install-work-with-Argon2.patch4
-rw-r--r--config/grub/xhci/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch4
-rw-r--r--config/grub/xhci/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch4
-rw-r--r--config/grub/xhci/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch8
-rw-r--r--config/grub/xhci/patches/0012-don-t-print-error-if-module-not-found.patch8
-rw-r--r--config/grub/xhci/patches/0013-don-t-print-empty-error-messages.patch4
-rw-r--r--config/grub/xhci/patches/0014-grub-core-bus-usb-Parse-SuperSpeed-companion-descrip.patch4
-rw-r--r--config/grub/xhci/patches/0015-usb-Add-enum-for-xHCI.patch4
-rw-r--r--config/grub/xhci/patches/0016-usbtrans-Set-default-maximum-packet-size.patch4
-rw-r--r--config/grub/xhci/patches/0017-grub-core-bus-usb-Add-function-pointer-for-attach-de.patch4
-rw-r--r--config/grub/xhci/patches/0018-grub-core-bus-usb-usbhub-Add-new-private-fields-for-.patch4
-rw-r--r--config/grub/xhci/patches/0019-grub-core-bus-usb-Add-xhci-support.patch6
-rw-r--r--config/grub/xhci/patches/0020-grub-core-bus-usb-usbhub-Add-xHCI-non-root-hub-suppo.patch4
-rw-r--r--config/grub/xhci/patches/0021-Fix-compilation-on-x86_64.patch4
-rw-r--r--config/grub/xhci/patches/0022-Add-native-NVMe-driver-based-on-SeaBIOS.patch17
-rw-r--r--config/grub/xhci/target.cfg2
-rw-r--r--config/seabios/default/target.cfg2
-rw-r--r--config/u-boot/default/patches/0009-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch61
-rw-r--r--config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch61
-rw-r--r--config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch61
-rw-r--r--include/git.sh2
-rw-r--r--include/lib.sh36
-rw-r--r--include/rom.sh27
-rw-r--r--include/vendor.sh414
-rwxr-xr-xscript/trees69
l---------update1
-rw-r--r--util/nvmutil/nvmutil.c79
l---------vendor1
94 files changed, 942 insertions, 396 deletions
diff --git a/.gitignore b/.gitignore
index 28671db8..177512a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,3 +41,4 @@
/f
/r
/e
+/xbmkpath/
diff --git a/build b/build
index 985bbe9e..033cb433 100755
--- a/build
+++ b/build
@@ -1,8 +1,6 @@
#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-3.0-or-later
-# Copyright (c) 2014-2015,2020-2024 Leah Rowe <leah@libreboot.org>
-# Copyright (c) 2015 Patrick "P. J." McDermott <pj@pehjota.net>
-# Copyright (c) 2015-2016 Klemens Nanni <contact@autoboot.org>
+# Copyright (c) 2020-2024 Leah Rowe <leah@libreboot.org>
# Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
set -u -e
@@ -25,23 +23,23 @@ main()
spath="script/$1"; shcmd="shift 1"
[ "${1#-*}" != "$1" ] && spath="script/trees" && shcmd=":"
- for g in "which git" "git config --global user.name" \
+ for g in "command -v git" "git config --global user.name" \
"git config --global user.email" "git_init"; do
eval "$g 1>/dev/null 2>/dev/null || $err \"Unconfigured: $g\""
done
case "${spath#script/}" in
version) printf "%s\nWebsite: %s\n" "$relname" "$projectsite" ;;
- release) shift 1; mkrelease $@ ;;
- inject) shift 1; vendor_inject $@ ;;
- download) shift 1; vendor_download $@ ;;
+ release) shift 1; mkrelease "$@" ;;
+ inject) shift 1; vendor_inject "$@" ;;
+ download) shift 1; vendor_download "$@" ;;
roms)
[ $# -gt 1 ] && [ "$2" = "serprog" ] && \
mk -b stm32-vserprog pico-serprog && return 0
- shift 1; x_ ./mk -b coreboot $@ ;;
+ shift 1; x_ ./mk -b coreboot "$@" ;;
*)
[ -f "$spath" ] || $err "bad command"
- $shcmd; "$spath" $@ || $err "excmd: $spath $(echo "$@")" ;;
+ $shcmd; "$spath" "$@" || $err "excmd: $spath $(echo "$@")" ;;
esac
set -u -e # some commands disable them. turn them on!
}
@@ -128,5 +126,5 @@ tmp_cleanup()
rm -f lock || return 1
}
-main $@
+main "$@"
tmp_cleanup || err_ "can't rm TMPDIR upon non-zero exit: $TMPDIR"
diff --git a/config/coreboot/default/patches/0052-Disable-compression-on-refcode-insertion.patch b/config/coreboot/default/patches/0052-Disable-compression-on-refcode-insertion.patch
new file mode 100644
index 00000000..1c089279
--- /dev/null
+++ b/config/coreboot/default/patches/0052-Disable-compression-on-refcode-insertion.patch
@@ -0,0 +1,31 @@
+From 1e72e6df7f5d71fd41350e34d0a8bd5230349235 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Tue, 31 Dec 2024 14:42:24 +0000
+Subject: [PATCH 1/1] Disable compression on refcode insertion
+
+Compression is not reliably reproducible. In an lbmk release
+context, this means we cannot rely on vendorfile insertion.
+
+Therefore, use uncompressed refcode.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ Makefile.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.mk b/Makefile.mk
+index e9ad2ccbb2..6a96d45a83 100644
+--- a/Makefile.mk
++++ b/Makefile.mk
+@@ -1364,7 +1364,7 @@ endif
+ cbfs-files-$(CONFIG_HAVE_REFCODE_BLOB) += $(CONFIG_CBFS_PREFIX)/refcode
+ $(CONFIG_CBFS_PREFIX)/refcode-file := $(REFCODE_BLOB)
+ $(CONFIG_CBFS_PREFIX)/refcode-type := stage
+-$(CONFIG_CBFS_PREFIX)/refcode-compression := $(CBFS_COMPRESS_FLAG)
++$(CONFIG_CBFS_PREFIX)/refcode-compression := none
+
+ cbfs-files-$(CONFIG_SEABIOS_VGA_COREBOOT) += vgaroms/seavgabios.bin
+ vgaroms/seavgabios.bin-file := $(CONFIG_PAYLOAD_VGABIOS_FILE)
+--
+2.39.5
+
diff --git a/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_corebootfb
index 0a5401d6..576ab534 100644
--- a/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_corebootfb
@@ -314,7 +314,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_txtmode b/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_txtmode
index 33e2c3a3..6207ecd3 100644
--- a/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/dell3050micro_fsp_16mb/config/libgfxinit_txtmode
@@ -312,7 +312,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_corebootfb
index 2c14d09f..e8d7edee 100644
--- a/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_corebootfb
@@ -314,7 +314,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_txtmode b/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_txtmode
index e52d3968..8bb5603c 100644
--- a/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/dell3050micro_vfsp_16mb/config/libgfxinit_txtmode
@@ -312,7 +312,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/hp820g2_12mb/target.cfg b/config/coreboot/hp820g2_12mb/target.cfg
index f94fb6aa..7fe45119 100644
--- a/config/coreboot/hp820g2_12mb/target.cfg
+++ b/config/coreboot/hp820g2_12mb/target.cfg
@@ -5,7 +5,6 @@ xarch="i386-elf"
payload_seabios="y"
payload_grub="y"
payload_memtest="y"
-release="n"
grub_scan_disk="nvme ahci"
grubtree="xhci"
vcfg="hp820g2"
diff --git a/config/coreboot/next/patches/0013-soc-intel-pmc-Hardcoded-poweroff-after-power-fail.patch b/config/coreboot/next/patches/0013-soc-intel-pmc-Hardcoded-poweroff-after-power-fail.patch
new file mode 100644
index 00000000..6ea65c8d
--- /dev/null
+++ b/config/coreboot/next/patches/0013-soc-intel-pmc-Hardcoded-poweroff-after-power-fail.patch
@@ -0,0 +1,82 @@
+From aa13bb380d8286373089de291b62c6070df20573 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Tue, 31 Dec 2024 01:40:42 +0000
+Subject: [PATCH 1/1] soc/intel/pmc: Hardcoded poweroff after power fail
+
+Coreboot can set the power state for power on after previous
+power failure, based on the option table. On the ThinkPad T480,
+we have no nvram and, due to coreboot's design, we therefore
+have no option table, so the default setting is enabled.
+
+In my testing, this seems to be that the system will turn on
+after a power failure. If your ThinkPad was previously in a state
+where it wouldn't turn on when plugging in the power, it'd be fine.
+
+If your battery ran out later on, this would be triggered and
+your ThinkPad would permanently turn on, when plugging in a charger,
+and there is currently no way to configure this behaviour.
+
+We currently only use the common SoC PMC code on the ThinkPad
+T480, T480s and the Dell OptiPlex 3050 Micro, at the time of
+this patch, and it is desirable that the system be set to power
+off after power fail anyway.
+
+In some cases, you might want the opposite, for example if you're
+running a server. This will be documented on the website, for that
+reason.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ src/soc/intel/common/block/pmc/pmclib.c | 36 +++----------------------
+ 1 file changed, 4 insertions(+), 32 deletions(-)
+
+diff --git a/src/soc/intel/common/block/pmc/pmclib.c b/src/soc/intel/common/block/pmc/pmclib.c
+index c51a960854..a836932fe5 100644
+--- a/src/soc/intel/common/block/pmc/pmclib.c
++++ b/src/soc/intel/common/block/pmc/pmclib.c
+@@ -760,38 +760,10 @@ void pmc_clear_pmcon_sts(void)
+
+ void pmc_set_power_failure_state(const bool target_on)
+ {
+- const unsigned int state = get_uint_option("power_on_after_fail",
+- CONFIG_MAINBOARD_POWER_FAILURE_STATE);
+-
+- /*
+- * On the shutdown path (target_on == false), we only need to
+- * update the register for MAINBOARD_POWER_STATE_PREVIOUS. For
+- * all other cases, we don't write the register to avoid clob-
+- * bering the value set on the boot path. This is necessary,
+- * for instance, when we can't access the option backend in SMM.
+- */
+-
+- switch (state) {
+- case MAINBOARD_POWER_STATE_OFF:
+- if (!target_on)
+- break;
+- printk(BIOS_INFO, "Set power off after power failure.\n");
+- pmc_soc_set_afterg3_en(false);
+- break;
+- case MAINBOARD_POWER_STATE_ON:
+- if (!target_on)
+- break;
+- printk(BIOS_INFO, "Set power on after power failure.\n");
+- pmc_soc_set_afterg3_en(true);
+- break;
+- case MAINBOARD_POWER_STATE_PREVIOUS:
+- printk(BIOS_INFO, "Keep power state after power failure.\n");
+- pmc_soc_set_afterg3_en(target_on);
+- break;
+- default:
+- printk(BIOS_WARNING, "Unknown power-failure state: %d\n", state);
+- break;
+- }
++ if (!target_on)
++ return;
++ printk(BIOS_INFO, "Set power off after power failure.\n");
++ pmc_soc_set_afterg3_en(false);
+ }
+
+ /* This function returns the highest assertion duration of the SLP_Sx assertion widths */
+--
+2.39.5
+
diff --git a/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
index d23ba10c..af1b04ef 100644
--- a/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480_fsp_16mb/config/libgfxinit_corebootfb
@@ -339,7 +339,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
index 6f4430f8..46306c80 100644
--- a/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480_fsp_16mb/config/libgfxinit_txtmode
@@ -337,7 +337,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480_vfsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480_vfsp_16mb/config/libgfxinit_corebootfb
index 297659bd..f379acda 100644
--- a/config/coreboot/t480_vfsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480_vfsp_16mb/config/libgfxinit_corebootfb
@@ -339,7 +339,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480_vfsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480_vfsp_16mb/config/libgfxinit_txtmode
index 897e81a2..3b70bc4e 100644
--- a/config/coreboot/t480_vfsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480_vfsp_16mb/config/libgfxinit_txtmode
@@ -337,7 +337,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
index f5c0e0d5..b88dd06c 100644
--- a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_corebootfb
@@ -339,7 +339,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
index 2e765f2c..a1e48c43 100644
--- a/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480s_fsp_16mb/config/libgfxinit_txtmode
@@ -337,7 +337,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_corebootfb b/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_corebootfb
index 84f351c0..bf364714 100644
--- a/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_corebootfb
+++ b/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_corebootfb
@@ -339,7 +339,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_txtmode b/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_txtmode
index 6b31994c..ad6e60ee 100644
--- a/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_txtmode
+++ b/config/coreboot/t480s_vfsp_16mb/config/libgfxinit_txtmode
@@ -337,7 +337,7 @@ CONFIG_INTEL_CAR_NEM_ENHANCED=y
# CONFIG_USE_INTEL_FSP_MP_INIT is not set
CONFIG_CPU_SUPPORTS_PM_TIMER_EMULATION=y
CONFIG_HAVE_HYPERTHREADING=y
-CONFIG_FSP_HYPERTHREADING=y
+# CONFIG_FSP_HYPERTHREADING is not set
# CONFIG_INTEL_KEYLOCKER is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_MAX is not set
# CONFIG_SOC_INTEL_COMMON_BLOCK_PRMRR_SIZE_256MB is not set
diff --git a/config/dependencies/arch b/config/dependencies/arch
index ec75425a..ff20ecd8 100644
--- a/config/dependencies/arch
+++ b/config/dependencies/arch
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="pacman -S --needed --noconfirm"
+pkg_add="pacman -S --needed"
pkglist=" \
acpica arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
autogen base-devel bison cmake curl device-mapper doxygen \
diff --git a/config/dependencies/debian b/config/dependencies/debian
index d147673c..00ccfc1a 100755
--- a/config/dependencies/debian
+++ b/config/dependencies/debian
@@ -1,13 +1,13 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="apt-get -y install"
+pkg_add="apt-get install $reinstall"
pkglist=" \
acpica-tools autoconf autogen automake autopoint autotools-dev bc \
binutils-arm-none-eabi bison build-essential cmake curl device-tree-compiler \
doxygen e2fsprogs efitools flex fonts-unifont gawk gcc-arm-linux-gnueabi \
gcc-arm-none-eabi gdb gettext git gnat help2man innoextract libdevmapper-dev \
libfdt-dev libfont-freetype-perl libfreetype-dev libftdi-dev libftdi1-dev libfuse-dev \
-libjaylink-dev libgnutls28-dev libgpiod-dev liblz4-tool liblzma-dev libncurses5-dev
+libjaylink-dev libgnutls28-dev libgpiod-dev lz4 liblz4-dev liblzma-dev libncurses5-dev
libncurses-dev libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev libpython3-dev \
libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0 libusb-1.0-0-dev \
libusb-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted pciutils \
diff --git a/config/dependencies/fedora38 b/config/dependencies/fedora38
index 2e192e6f..a34bbbf0 100755
--- a/config/dependencies/fedora38
+++ b/config/dependencies/fedora38
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="dnf -y install"
+pkg_add="dnf ${reinstall}install"
pkglist=" \
acpica-tools arm-none-eabi-binutils arm-none-eabi-gcc \
arm-none-eabi-gcc arm-none-eabi-newlib autogen bison bzip2 cmake curl \
diff --git a/config/dependencies/fedora40 b/config/dependencies/fedora40
index 297c0266..3ca84aa0 100755
--- a/config/dependencies/fedora40
+++ b/config/dependencies/fedora40
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="dnf -y install"
+pkg_add="dnf ${reinstall}install"
pkglist=" \
acpica-tools arm-none-eabi-binutils arm-none-eabi-gcc \
arm-none-eabi-gcc arm-none-eabi-newlib autogen bison bzip2 cmake curl \
diff --git a/config/dependencies/fedora41 b/config/dependencies/fedora41
index 5ba6f552..4c06b199 100755
--- a/config/dependencies/fedora41
+++ b/config/dependencies/fedora41
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="dnf -y install"
+pkg_add="dnf ${reinstall}install"
pkglist=" \
acpica-tools arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-gcc-cs-c++ \
arm-none-eabi-gcc arm-none-eabi-newlib autogen bison bzip2 cmake curl \
@@ -10,6 +10,7 @@ innoextract intltool libftdi-devel libgpiod-devel libjaylink-devel \
libselinux-devel libusb1 libusb1-devel nasm ncurses-devel openssl-devel openssl-devel-engine \
p7zip p7zip-plugins pandoc parted pciutils-devel perl perl-libwww-perl \
python-unversioned-command python3 python3-setuptools rsync sharutils \
-subversion systemd-devel texinfo unar unifont unifont-fonts \
+subversion systemd-devel texinfo unar unifont unifont-fonts uuid-devel \
unifont-ttf-fonts unzip wget xz zlib-devel ccache swig python3-devel \
+libuuid-devel \
"
diff --git a/config/dependencies/parabola b/config/dependencies/parabola
index 17aca3ae..9a4006a4 100644
--- a/config/dependencies/parabola
+++ b/config/dependencies/parabola
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="pacman -S --needed --noconfirm"
+pkg_add="pacman -S --needed"
pkglist=" \
acpica arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
autogen base-devel bdf-unifont bison cmake curl device-mapper doxygen \
diff --git a/config/dependencies/trisquel b/config/dependencies/trisquel
index a6d5e3ca..fb364c28 100755
--- a/config/dependencies/trisquel
+++ b/config/dependencies/trisquel
@@ -1,13 +1,13 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="apt-get -y install"
+pkg_add="apt-get install $reinstall"
pkglist=" \
autoconf autogen automake autopoint autotools-dev bc binutils-arm-none-eabi \
bison build-essential cmake curl device-tree-compiler doxygen e2fsprogs efitools \
flex gawk gcc-arm-linux-gnueabi gcc-arm-none-eabi gdb gettext git gnat help2man \
innoextract libdevmapper-dev libfdt-dev libfont-freetype-perl libfreetype6-dev \
-libftdi-dev libfuse-dev libgnutls28-dev libgpiod-dev libjaylink-dev liblz4-tool \
-liblzma-dev libncurses5-dev ccache \
+libftdi-dev libfuse-dev libgnutls28-dev libgpiod-dev libjaylink-dev \
+liblzma-dev libncurses5-dev ccache lz4 liblz4-dev \
libncurses-dev libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev \
libpython3-dev libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0-0 \
libusb-1.0-0-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted \
diff --git a/config/dependencies/ubuntu2004 b/config/dependencies/ubuntu2004
index a328b999..ce69a4d9 100755
--- a/config/dependencies/ubuntu2004
+++ b/config/dependencies/ubuntu2004
@@ -1,12 +1,12 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="apt-get -y install"
+pkg_add="apt-get install $reinstall"
pkglist=" \
autoconf autogen automake autopoint autotools-dev bc binutils-arm-none-eabi \
bison build-essential cmake curl device-tree-compiler doxygen e2fsprogs efitools \
flex gawk gcc-arm-linux-gnueabi gcc-arm-none-eabi gdb gettext git gnat help2man \
innoextract libdevmapper-dev libfdt-dev libfont-freetype-perl libfreetype6-dev \
-libftdi-dev libfuse-dev libgnutls28-dev liblz4-tool liblzma-dev libncurses5-dev \
+libftdi-dev libfuse-dev libgnutls28-dev lz4 liblz4-dev liblzma-dev libncurses5-dev \
libncurses-dev libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev \
libpython3-dev libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0-0 \
libusb-1.0-0-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted \
diff --git a/config/dependencies/ubuntu2404 b/config/dependencies/ubuntu2404
index f1a1aff1..b0633e69 100755
--- a/config/dependencies/ubuntu2404
+++ b/config/dependencies/ubuntu2404
@@ -1,12 +1,12 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="apt-get -y install"
+pkg_add="apt-get install $reinstall"
pkglist=" \
autoconf autogen automake autopoint autotools-dev bc binutils-arm-none-eabi \
bison build-essential cmake curl device-tree-compiler doxygen e2fsprogs efitools \
flex gawk gcc-arm-linux-gnueabi gcc-arm-none-eabi gdb gettext git gnat help2man \
innoextract libdevmapper-dev libfdt-dev libfont-freetype-perl libfreetype6-dev \
-libftdi-dev libfuse-dev libgnutls28-dev liblz4-tool liblzma-dev libncurses5-dev \
+libftdi-dev libfuse-dev libgnutls28-dev lz4 liblz4-dev liblzma-dev libncurses5-dev \
libncurses-dev libnewlib-arm-none-eabi libopts25 libopts25-dev libpci-dev \
libpython3-dev libsdl2-dev libselinux1-dev libssl-dev libtool libusb-1.0-0 \
libusb-1.0-0-dev lz4 lzma lzma-alone m4 nasm openssl p7zip p7zip-full parted \
diff --git a/config/dependencies/void b/config/dependencies/void
index 9060b7c1..a02d706e 100644
--- a/config/dependencies/void
+++ b/config/dependencies/void
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-pkg_add="xbps-install -y"
+pkg_add="xbps-install"
pkglist=" \
acpica-utils autogen base-devel bison cmake \
cross-arm-none-eabi-binutils cross-arm-none-eabi-gcc \
diff --git a/config/flashprog/patches/0001-Workaround-for-MX25-chips.patch b/config/flashprog/patches/0001-Workaround-for-MX25-chips.patch
index fc3befb1..f7b9ad79 100644
--- a/config/flashprog/patches/0001-Workaround-for-MX25-chips.patch
+++ b/config/flashprog/patches/0001-Workaround-for-MX25-chips.patch
@@ -1,4 +1,4 @@
-From 9d8c79eecf760e4f963a0a7f29b577cd84962a2a Mon Sep 17 00:00:00 2001
+From 9d7b97a0f08a3f0f62c389aee61e92377d82d645 Mon Sep 17 00:00:00 2001
From: consts <grudnevkv@gmail.com>
Date: Fri, 2 Mar 2018 07:03:37 +0000
Subject: [PATCH 1/1] Workaround for MX25 chips
@@ -17,10 +17,10 @@ Change-Id: I43a306b67862b59c1dcd02729e189f3bf73f481b
3 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/cli_classic.c b/cli_classic.c
-index ab5f8b1..2825033 100644
+index 26253dc..5a80394 100644
--- a/cli_classic.c
+++ b/cli_classic.c
-@@ -67,6 +67,7 @@ static void cli_classic_usage(const char *name)
+@@ -68,6 +68,7 @@ static void cli_classic_usage(const char *name)
" -o | --output <logfile> log output to <logfile>\n"
" --flash-contents <ref-file> assume flash contents to be <ref-file>\n"
" -L | --list-supported print supported devices\n"
@@ -28,7 +28,7 @@ index ab5f8b1..2825033 100644
#if CONFIG_PRINT_WIKI == 1
" -z | --list-supported-wiki print supported devices in wiki syntax\n"
#endif
-@@ -262,6 +263,7 @@ int main(int argc, char *argv[])
+@@ -231,6 +232,7 @@ int flashprog_classic_main(int argc, char *argv[])
{"version", 0, NULL, 'R'},
{"output", 1, NULL, 'o'},
{"progress", 0, NULL, OPTION_PROGRESS},
@@ -36,9 +36,9 @@ index ab5f8b1..2825033 100644
{NULL, 0, NULL, 0},
};
-@@ -478,6 +480,9 @@ int main(int argc, char *argv[])
- cli_classic_abort_usage("No log filename specified.\n");
- }
+@@ -357,6 +359,9 @@ int flashprog_classic_main(int argc, char *argv[])
+ cli_classic_usage(argv[0]);
+ exit(0);
break;
+ case 'm': /* --workaround-mx */
+ workaround_mx = 1;
@@ -47,12 +47,12 @@ index ab5f8b1..2825033 100644
show_progress = true;
break;
diff --git a/include/programmer.h b/include/programmer.h
-index 873dc37..2007fd6 100644
+index 11d15a8..3b33d5a 100644
--- a/include/programmer.h
+++ b/include/programmer.h
-@@ -364,6 +364,7 @@ enum ich_chipset {
- CHIPSET_GEMINI_LAKE,
- CHIPSET_ELKHART_LAKE,
+@@ -372,6 +372,7 @@ enum ich_chipset {
+ CHIPSET_LUNAR_LAKE,
+ CHIPSET_ARROW_LAKE,
};
+extern int workaround_mx; /* workaround for MX25* chips, makes flash operations more reliable, less failures */
@@ -87,5 +87,5 @@ index 748ef99..9bbdee9 100644
readarr);
}
--
-2.39.2
+2.39.5
diff --git a/config/flashprog/target.cfg b/config/flashprog/target.cfg
new file mode 100644
index 00000000..2d9243b7
--- /dev/null
+++ b/config/flashprog/target.cfg
@@ -0,0 +1,3 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+makeargs="WARNERROR=no"
diff --git a/config/git/flashprog/pkg.cfg b/config/git/flashprog/pkg.cfg
index e1a89795..6cfbdb38 100644
--- a/config/git/flashprog/pkg.cfg
+++ b/config/git/flashprog/pkg.cfg
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-rev="d128a0ae87086b37c0e5d7a8d934bcdee173402f"
+rev="eb2c04185f8f471c768b742d66e4c552effdd9cb"
url="https://review.sourcearcade.org/flashprog"
bkup_url="https://github.com/SourceArcade/flashprog.git"
diff --git a/config/grub/default/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch b/config/grub/default/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
index 7aa0d568..e5d24e7e 100644
--- a/config/grub/default/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
+++ b/config/grub/default/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
@@ -1,4 +1,4 @@
-From 8b55c63ab6094bc9017eedd34bd7d0ae3c04cb9c Mon Sep 17 00:00:00 2001
+From 26b89e90c8d6d89f2e52b00ad15ba58fd2e1fbfb Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 31 Oct 2021 03:47:05 +0000
Subject: [PATCH 01/13] mitigate grub's missing characters for borders/arrow
@@ -86,5 +86,5 @@ index 9c383e64a..8ec1dd1e8 100644
grub_term_highlight_color = old_color_highlight;
geo->timeout_y = geo->first_entry_y + geo->num_entries
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch b/config/grub/default/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
index 66e68f5c..6b0665db 100644
--- a/config/grub/default/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
+++ b/config/grub/default/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
@@ -1,4 +1,4 @@
-From 3b719f8153350f9bfac2cb889d37562cdf566cc8 Mon Sep 17 00:00:00 2001
+From 10d264bdfde24fcf78da6f641898eb267f83066f Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sat, 19 Nov 2022 16:30:24 +0000
Subject: [PATCH 02/13] say the name libreboot, in the grub menu
@@ -8,7 +8,7 @@ Subject: [PATCH 02/13] say the name libreboot, in the grub menu
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
-index bd4431000..300f55fe1 100644
+index bd4431000..ff16e0f2e 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -209,7 +209,7 @@ grub_normal_init_page (struct grub_term_output *term,
@@ -21,5 +21,5 @@ index bd4431000..300f55fe1 100644
return;
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0003-Add-CC0-license.patch b/config/grub/default/patches/0003-Add-CC0-license.patch
index 5795b05c..a5f75eb4 100644
--- a/config/grub/default/patches/0003-Add-CC0-license.patch
+++ b/config/grub/default/patches/0003-Add-CC0-license.patch
@@ -1,4 +1,4 @@
-From 09cbe5c71236987605cd375c4f69c6a36401e81c Mon Sep 17 00:00:00 2001
+From 689c09a6b675ba52318cd879b289ac3d67073cd4 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 03/13] Add CC0 license
@@ -10,10 +10,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 0bf40caa6..4011e2d15 100644
+index 8ad015b07..9980bae90 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -470,7 +470,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
+@@ -494,7 +494,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
if (grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3") == 0
|| grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3+") == 0
@@ -38,5 +38,5 @@ index a42c20bd1..7157a30aa 100644
grub_util_error ("%s: incompatible license", filename);
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0004-Define-GRUB_UINT32_MAX.patch b/config/grub/default/patches/0004-Define-GRUB_UINT32_MAX.patch
index cb910c85..9550110e 100644
--- a/config/grub/default/patches/0004-Define-GRUB_UINT32_MAX.patch
+++ b/config/grub/default/patches/0004-Define-GRUB_UINT32_MAX.patch
@@ -1,4 +1,4 @@
-From fb7e3d852bf3658b6e3cf4725c40f2a3eaa56c5b Mon Sep 17 00:00:00 2001
+From 63dc3c9ca6e5635b5c7e7ba24c996b23e79a92e3 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 04/13] Define GRUB_UINT32_MAX
@@ -35,5 +35,5 @@ index 45079bf65..8c0b30395 100644
#define GRUB_PROPERLY_ALIGNED_ARRAY(name, size) grub_properly_aligned_t name[((size) + sizeof (grub_properly_aligned_t) - 1) / sizeof (grub_properly_aligned_t)]
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0005-Add-Argon2-algorithm.patch b/config/grub/default/patches/0005-Add-Argon2-algorithm.patch
index 1adfdef7..fef68ee3 100644
--- a/config/grub/default/patches/0005-Add-Argon2-algorithm.patch
+++ b/config/grub/default/patches/0005-Add-Argon2-algorithm.patch
@@ -1,4 +1,4 @@
-From 9bc9e32ace3f103ff12aab063c8a250c8ba6a642 Mon Sep 17 00:00:00 2001
+From be6452a88ff3cbe033d37b739829e41798682510 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 05/13] Add Argon2 algorithm
@@ -30,10 +30,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
create mode 100644 grub-core/lib/argon2/ref.c
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
-index 1276c5930..cd6fb0e1e 100644
+index 3ad8e3efa..d7c6232af 100644
--- a/docs/grub-dev.texi
+++ b/docs/grub-dev.texi
-@@ -503,11 +503,75 @@ GRUB includes some code from other projects, and it is sometimes necessary
+@@ -503,12 +503,76 @@ GRUB includes some code from other projects, and it is sometimes necessary
to update it.
@menu
@@ -41,6 +41,7 @@ index 1276c5930..cd6fb0e1e 100644
* Gnulib::
* jsmn::
* minilzo::
+ * libtasn1::
@end menu
+@node Argon2
@@ -110,7 +111,7 @@ index 1276c5930..cd6fb0e1e 100644
@section Gnulib
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 705d73fab..452f11b20 100644
+index f70e02e69..f5f9b040c 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1219,6 +1219,14 @@ module = {
@@ -2607,5 +2608,5 @@ index 000000000..c933df80d
+ }
+}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0006-Error-on-missing-Argon2id-parameters.patch b/config/grub/default/patches/0006-Error-on-missing-Argon2id-parameters.patch
index 6fb8fca2..8abe7669 100644
--- a/config/grub/default/patches/0006-Error-on-missing-Argon2id-parameters.patch
+++ b/config/grub/default/patches/0006-Error-on-missing-Argon2id-parameters.patch
@@ -1,4 +1,4 @@
-From 7090ad00b4c3b4a9af3d7e9df245aed5969da79d Mon Sep 17 00:00:00 2001
+From 39f620fbe7c4a791062b59d4a8d26c35408aca45 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 06/13] Error on missing Argon2id parameters
@@ -54,5 +54,5 @@ index d5106402f..bc818ea69 100644
goto err;
case LUKS2_KDF_TYPE_PBKDF2:
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0007-Compile-with-Argon2id-support.patch b/config/grub/default/patches/0007-Compile-with-Argon2id-support.patch
index 65d89c33..19da5e51 100644
--- a/config/grub/default/patches/0007-Compile-with-Argon2id-support.patch
+++ b/config/grub/default/patches/0007-Compile-with-Argon2id-support.patch
@@ -1,4 +1,4 @@
-From 54bad25f08aab9bae2fbc2122aba9eb678549cc6 Mon Sep 17 00:00:00 2001
+From c192948ea0329d06cf4706667305b473b48c15f5 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 07/13] Compile with Argon2id support
@@ -11,7 +11,7 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Makefile.util.def b/Makefile.util.def
-index 0f74a1680..5a15e5637 100644
+index 038253b37..2f19569c9 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -3,7 +3,7 @@ AutoGen definitions Makefile.tpl;
@@ -35,7 +35,7 @@ index 0f74a1680..5a15e5637 100644
common = grub-core/disk/luks.c;
common = grub-core/disk/luks2.c;
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 452f11b20..5c1af8682 100644
+index f5f9b040c..f1f38d8d3 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1242,7 +1242,7 @@ module = {
@@ -79,5 +79,5 @@ index bc818ea69..5b9eaa599 100644
hash = grub_crypto_lookup_md_by_name (k->kdf.u.pbkdf2.hash);
if (!hash)
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0008-Make-grub-install-work-with-Argon2.patch b/config/grub/default/patches/0008-Make-grub-install-work-with-Argon2.patch
index 83c268ed..cb954976 100644
--- a/config/grub/default/patches/0008-Make-grub-install-work-with-Argon2.patch
+++ b/config/grub/default/patches/0008-Make-grub-install-work-with-Argon2.patch
@@ -1,4 +1,4 @@
-From a04a61ac008379d14749b0a1c47a8c9641c9eed5 Mon Sep 17 00:00:00 2001
+From 2887e35e882a86e474052112a23608570b3f41b2 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 08/13] Make grub-install work with Argon2
@@ -22,5 +22,5 @@ index 7dc5657bb..cf7315891 100644
have_cryptodisk = 1;
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch b/config/grub/default/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
index 2a728537..763fea91 100644
--- a/config/grub/default/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
+++ b/config/grub/default/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
@@ -1,4 +1,4 @@
-From 68f1bf73366ee0da82676c076cd9f282f89a888b Mon Sep 17 00:00:00 2001
+From 548c5b227718783776b81d1e074b1982e76f2327 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Mon, 30 Oct 2023 22:19:21 +0000
Subject: [PATCH 09/13] at_keyboard coreboot: force scancodes2+translate
@@ -103,5 +103,5 @@ index f8a129eb7..8207225c2 100644
grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set);
if (ps2_state.current_set == 2)
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch b/config/grub/default/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
index bd15fdd5..a0eff28d 100644
--- a/config/grub/default/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
+++ b/config/grub/default/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
@@ -1,4 +1,4 @@
-From c0f2f1b156cbc6f89accf9ce827ae13e8a347969 Mon Sep 17 00:00:00 2001
+From 89764949b2bcfaad122800f336aa205fea4a1fed Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Tue, 31 Oct 2023 10:33:28 +0000
Subject: [PATCH 10/13] keylayouts: don't print "Unknown key" message
@@ -34,5 +34,5 @@ index aa3ba34f2..445fa0601 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch b/config/grub/default/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
index 5031474a..d2ed0055 100644
--- a/config/grub/default/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
+++ b/config/grub/default/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
@@ -1,4 +1,4 @@
-From 34cab10d16b45938be82705bc8720c76f2aa1542 Mon Sep 17 00:00:00 2001
+From c6de75a3369aebb51df1659d89a6d7024c84d85e Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:14:58 +0000
Subject: [PATCH 11/13] don't print missing prefix errors on the screen
@@ -85,10 +85,10 @@ index 18de52562..2a0fea6c8 100644
}
file = try_open_from_prefix (prefix, filename);
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 4011e2d15..af3bd00d0 100644
+index 9980bae90..4457cad7c 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -758,7 +758,7 @@ grub_dl_load (const char *name)
+@@ -871,7 +871,7 @@ grub_dl_load (const char *name)
return 0;
if (! grub_dl_dir) {
@@ -98,5 +98,5 @@ index 4011e2d15..af3bd00d0 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0012-don-t-print-error-if-module-not-found.patch b/config/grub/default/patches/0012-don-t-print-error-if-module-not-found.patch
index 9184e6fb..85cde7a7 100644
--- a/config/grub/default/patches/0012-don-t-print-error-if-module-not-found.patch
+++ b/config/grub/default/patches/0012-don-t-print-error-if-module-not-found.patch
@@ -1,4 +1,4 @@
-From bf4fbc14d4d9a4612b70531b9678676571a46818 Mon Sep 17 00:00:00 2001
+From e8e419fe16843e7b7d8c614531df9447db689d28 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:36:22 +0000
Subject: [PATCH 12/13] don't print error if module not found
@@ -17,10 +17,10 @@ Signed-off-by: Leah Rowe <leah@libreboot.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index af3bd00d0..21d0cedb1 100644
+index 4457cad7c..ea9fe8019 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -486,7 +486,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
+@@ -510,7 +510,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
s = grub_dl_find_section (e, ".modname");
if (!s)
@@ -30,5 +30,5 @@ index af3bd00d0..21d0cedb1 100644
mod->name = grub_strdup ((char *) e + s->sh_offset);
if (! mod->name)
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/patches/0013-don-t-print-empty-error-messages.patch b/config/grub/default/patches/0013-don-t-print-empty-error-messages.patch
index 1fc76bcd..70ce3059 100644
--- a/config/grub/default/patches/0013-don-t-print-empty-error-messages.patch
+++ b/config/grub/default/patches/0013-don-t-print-empty-error-messages.patch
@@ -1,4 +1,4 @@
-From e920aefcca3ad131d0f14d02955c3420fb99ee85 Mon Sep 17 00:00:00 2001
+From 6eb22aa4110b99245fd31dcaad979d5049d398d6 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 17:25:20 +0000
Subject: [PATCH 13/13] don't print empty error messages
@@ -27,5 +27,5 @@ index 53c734de7..7cac53983 100644
}
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/default/target.cfg b/config/grub/default/target.cfg
index b06d8e64..300fdd7e 100644
--- a/config/grub/default/target.cfg
+++ b/config/grub/default/target.cfg
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
tree="default"
-rev="b53ec06a1d6f22ffc1139cbfc0f292e4ca2da9cd"
+rev="6811f6f09d61996a3acbc4fc0414e45964f0e2d9"
diff --git a/config/grub/nvme/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch b/config/grub/nvme/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
index b5ab0e5a..e7f71551 100644
--- a/config/grub/nvme/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
+++ b/config/grub/nvme/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
@@ -1,4 +1,4 @@
-From b89bf30d11fdc4fdc9bc5350621e73a2fc0d5b89 Mon Sep 17 00:00:00 2001
+From 985e87b15e60edb31d8b70f765b97cc8d436d10e Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 31 Oct 2021 03:47:05 +0000
Subject: [PATCH 01/14] mitigate grub's missing characters for borders/arrow
@@ -86,5 +86,5 @@ index 9c383e64a..8ec1dd1e8 100644
grub_term_highlight_color = old_color_highlight;
geo->timeout_y = geo->first_entry_y + geo->num_entries
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch b/config/grub/nvme/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
index c1a674ec..5036a859 100644
--- a/config/grub/nvme/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
+++ b/config/grub/nvme/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
@@ -1,4 +1,4 @@
-From e074baff4a8ab3a6f8e397b49f6b3eade8728e02 Mon Sep 17 00:00:00 2001
+From f9ae737976ff52fc656459942dd0bdbd763e66df Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sat, 19 Nov 2022 16:30:24 +0000
Subject: [PATCH 02/14] say the name libreboot, in the grub menu
@@ -8,7 +8,7 @@ Subject: [PATCH 02/14] say the name libreboot, in the grub menu
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
-index bd4431000..300f55fe1 100644
+index bd4431000..ff16e0f2e 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -209,7 +209,7 @@ grub_normal_init_page (struct grub_term_output *term,
@@ -21,5 +21,5 @@ index bd4431000..300f55fe1 100644
return;
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0003-Add-CC0-license.patch b/config/grub/nvme/patches/0003-Add-CC0-license.patch
index 6434ed21..cfb8f56a 100644
--- a/config/grub/nvme/patches/0003-Add-CC0-license.patch
+++ b/config/grub/nvme/patches/0003-Add-CC0-license.patch
@@ -1,4 +1,4 @@
-From a62b61c5f3fda5a49e007095d79e654603c658d8 Mon Sep 17 00:00:00 2001
+From 40c559b7f1e402520a9044b4d3e22b7afd1bb981 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 03/14] Add CC0 license
@@ -10,10 +10,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 0bf40caa6..4011e2d15 100644
+index 8ad015b07..9980bae90 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -470,7 +470,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
+@@ -494,7 +494,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
if (grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3") == 0
|| grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3+") == 0
@@ -38,5 +38,5 @@ index a42c20bd1..7157a30aa 100644
grub_util_error ("%s: incompatible license", filename);
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0004-Define-GRUB_UINT32_MAX.patch b/config/grub/nvme/patches/0004-Define-GRUB_UINT32_MAX.patch
index 310fe8bf..bdd6d4de 100644
--- a/config/grub/nvme/patches/0004-Define-GRUB_UINT32_MAX.patch
+++ b/config/grub/nvme/patches/0004-Define-GRUB_UINT32_MAX.patch
@@ -1,4 +1,4 @@
-From c8c80f05753c26b7d7f5e3c3993039c565194875 Mon Sep 17 00:00:00 2001
+From 2d5493a02da107e7f3673b0ff5f0920ad557df78 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 04/14] Define GRUB_UINT32_MAX
@@ -35,5 +35,5 @@ index 45079bf65..8c0b30395 100644
#define GRUB_PROPERLY_ALIGNED_ARRAY(name, size) grub_properly_aligned_t name[((size) + sizeof (grub_properly_aligned_t) - 1) / sizeof (grub_properly_aligned_t)]
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0005-Add-Argon2-algorithm.patch b/config/grub/nvme/patches/0005-Add-Argon2-algorithm.patch
index b26e1f2c..d816825e 100644
--- a/config/grub/nvme/patches/0005-Add-Argon2-algorithm.patch
+++ b/config/grub/nvme/patches/0005-Add-Argon2-algorithm.patch
@@ -1,4 +1,4 @@
-From d171eb927e33f20627797cdca0dc81a3f3f478e0 Mon Sep 17 00:00:00 2001
+From 520573cfa2b370a7d72102321bb0735a86e2999c Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 05/14] Add Argon2 algorithm
@@ -30,10 +30,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
create mode 100644 grub-core/lib/argon2/ref.c
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
-index 1276c5930..cd6fb0e1e 100644
+index 3ad8e3efa..d7c6232af 100644
--- a/docs/grub-dev.texi
+++ b/docs/grub-dev.texi
-@@ -503,11 +503,75 @@ GRUB includes some code from other projects, and it is sometimes necessary
+@@ -503,12 +503,76 @@ GRUB includes some code from other projects, and it is sometimes necessary
to update it.
@menu
@@ -41,6 +41,7 @@ index 1276c5930..cd6fb0e1e 100644
* Gnulib::
* jsmn::
* minilzo::
+ * libtasn1::
@end menu
+@node Argon2
@@ -110,7 +111,7 @@ index 1276c5930..cd6fb0e1e 100644
@section Gnulib
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 705d73fab..452f11b20 100644
+index f70e02e69..f5f9b040c 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1219,6 +1219,14 @@ module = {
@@ -2607,5 +2608,5 @@ index 000000000..c933df80d
+ }
+}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0006-Error-on-missing-Argon2id-parameters.patch b/config/grub/nvme/patches/0006-Error-on-missing-Argon2id-parameters.patch
index 98a69414..c94c7580 100644
--- a/config/grub/nvme/patches/0006-Error-on-missing-Argon2id-parameters.patch
+++ b/config/grub/nvme/patches/0006-Error-on-missing-Argon2id-parameters.patch
@@ -1,4 +1,4 @@
-From 916de62553b3bcc4a565e1ea8f562031fb2a7b0f Mon Sep 17 00:00:00 2001
+From d3b500914ce84be6bcae0f4f5fefff21e4e0ca63 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 06/14] Error on missing Argon2id parameters
@@ -54,5 +54,5 @@ index d5106402f..bc818ea69 100644
goto err;
case LUKS2_KDF_TYPE_PBKDF2:
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0007-Compile-with-Argon2id-support.patch b/config/grub/nvme/patches/0007-Compile-with-Argon2id-support.patch
index 487ab2a2..cd4b6e49 100644
--- a/config/grub/nvme/patches/0007-Compile-with-Argon2id-support.patch
+++ b/config/grub/nvme/patches/0007-Compile-with-Argon2id-support.patch
@@ -1,4 +1,4 @@
-From fa5deb59606422773ba8e77f3ab56226a10b116b Mon Sep 17 00:00:00 2001
+From 5774fd23a381d7d96e65ede9dd300b7e83fa1f06 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 07/14] Compile with Argon2id support
@@ -11,7 +11,7 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Makefile.util.def b/Makefile.util.def
-index 0f74a1680..5a15e5637 100644
+index 038253b37..2f19569c9 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -3,7 +3,7 @@ AutoGen definitions Makefile.tpl;
@@ -35,7 +35,7 @@ index 0f74a1680..5a15e5637 100644
common = grub-core/disk/luks.c;
common = grub-core/disk/luks2.c;
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 452f11b20..5c1af8682 100644
+index f5f9b040c..f1f38d8d3 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1242,7 +1242,7 @@ module = {
@@ -79,5 +79,5 @@ index bc818ea69..5b9eaa599 100644
hash = grub_crypto_lookup_md_by_name (k->kdf.u.pbkdf2.hash);
if (!hash)
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0008-Make-grub-install-work-with-Argon2.patch b/config/grub/nvme/patches/0008-Make-grub-install-work-with-Argon2.patch
index 327989fa..7e240cc8 100644
--- a/config/grub/nvme/patches/0008-Make-grub-install-work-with-Argon2.patch
+++ b/config/grub/nvme/patches/0008-Make-grub-install-work-with-Argon2.patch
@@ -1,4 +1,4 @@
-From dad12fd3307bd15e55f5ea483f174a1d3eaa45f5 Mon Sep 17 00:00:00 2001
+From b8b9be1749d4802dde57f3547a1ee91c8fec1c3e Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 08/14] Make grub-install work with Argon2
@@ -22,5 +22,5 @@ index 7dc5657bb..cf7315891 100644
have_cryptodisk = 1;
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch b/config/grub/nvme/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
index ddd3b85b..0fea10a5 100644
--- a/config/grub/nvme/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
+++ b/config/grub/nvme/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
@@ -1,4 +1,4 @@
-From 55d2ea1ebaa6b399736aa24393e08d007fde988c Mon Sep 17 00:00:00 2001
+From 93790c5686ea2ac4da8d2c67377fe84fd37df953 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Mon, 30 Oct 2023 22:19:21 +0000
Subject: [PATCH 09/14] at_keyboard coreboot: force scancodes2+translate
@@ -103,5 +103,5 @@ index f8a129eb7..8207225c2 100644
grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set);
if (ps2_state.current_set == 2)
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch b/config/grub/nvme/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
index ed3c1f4a..06c308d1 100644
--- a/config/grub/nvme/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
+++ b/config/grub/nvme/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
@@ -1,4 +1,4 @@
-From 4e89b0da7213b710bfb4d95a20e34b193f39e58c Mon Sep 17 00:00:00 2001
+From a18f0ddb9a396828bd11f540ed134047efe4b2bd Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Tue, 31 Oct 2023 10:33:28 +0000
Subject: [PATCH 10/14] keylayouts: don't print "Unknown key" message
@@ -34,5 +34,5 @@ index aa3ba34f2..445fa0601 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch b/config/grub/nvme/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
index 77cb7a64..f2b8de10 100644
--- a/config/grub/nvme/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
+++ b/config/grub/nvme/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
@@ -1,4 +1,4 @@
-From d14c9af2656ee6b63b029ac28816f38d4ae26946 Mon Sep 17 00:00:00 2001
+From 233c4f1a1182fd10ef60da98dd00b687c9edbee4 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:14:58 +0000
Subject: [PATCH 11/14] don't print missing prefix errors on the screen
@@ -85,10 +85,10 @@ index 18de52562..2a0fea6c8 100644
}
file = try_open_from_prefix (prefix, filename);
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 4011e2d15..af3bd00d0 100644
+index 9980bae90..4457cad7c 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -758,7 +758,7 @@ grub_dl_load (const char *name)
+@@ -871,7 +871,7 @@ grub_dl_load (const char *name)
return 0;
if (! grub_dl_dir) {
@@ -98,5 +98,5 @@ index 4011e2d15..af3bd00d0 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0012-don-t-print-error-if-module-not-found.patch b/config/grub/nvme/patches/0012-don-t-print-error-if-module-not-found.patch
index ada8288e..41b0c2a8 100644
--- a/config/grub/nvme/patches/0012-don-t-print-error-if-module-not-found.patch
+++ b/config/grub/nvme/patches/0012-don-t-print-error-if-module-not-found.patch
@@ -1,4 +1,4 @@
-From d58c6298f62e70084a14aabc6c46b31d61f28152 Mon Sep 17 00:00:00 2001
+From c5ef7185f0e32a1a33aca181427cbee8f22af8d2 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:36:22 +0000
Subject: [PATCH 12/14] don't print error if module not found
@@ -17,10 +17,10 @@ Signed-off-by: Leah Rowe <leah@libreboot.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index af3bd00d0..21d0cedb1 100644
+index 4457cad7c..ea9fe8019 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -486,7 +486,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
+@@ -510,7 +510,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
s = grub_dl_find_section (e, ".modname");
if (!s)
@@ -30,5 +30,5 @@ index af3bd00d0..21d0cedb1 100644
mod->name = grub_strdup ((char *) e + s->sh_offset);
if (! mod->name)
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0013-don-t-print-empty-error-messages.patch b/config/grub/nvme/patches/0013-don-t-print-empty-error-messages.patch
index f89977b4..0c9c7f80 100644
--- a/config/grub/nvme/patches/0013-don-t-print-empty-error-messages.patch
+++ b/config/grub/nvme/patches/0013-don-t-print-empty-error-messages.patch
@@ -1,4 +1,4 @@
-From 031ee85c97452f6d1a5f341ff41c65aace5584c4 Mon Sep 17 00:00:00 2001
+From 8e8d7a4f391538e4c0d42226ac48f5a1325deeb5 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 17:25:20 +0000
Subject: [PATCH 13/14] don't print empty error messages
@@ -27,5 +27,5 @@ index 53c734de7..7cac53983 100644
}
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/patches/0014-Add-native-NVMe-driver-based-on-SeaBIOS.patch b/config/grub/nvme/patches/0014-Add-native-NVMe-driver-based-on-SeaBIOS.patch
index bfe28efd..c6b7bb87 100644
--- a/config/grub/nvme/patches/0014-Add-native-NVMe-driver-based-on-SeaBIOS.patch
+++ b/config/grub/nvme/patches/0014-Add-native-NVMe-driver-based-on-SeaBIOS.patch
@@ -1,4 +1,4 @@
-From 246a626a369fc3730c6b5c21982fd89ed19c6fe0 Mon Sep 17 00:00:00 2001
+From 0e358c800b58f8122e8d333541eba08cf1b4dbef Mon Sep 17 00:00:00 2001
From: Mate Kukri <km@mkukri.xyz>
Date: Mon, 20 May 2024 11:43:35 +0100
Subject: [PATCH 14/14] Add native NVMe driver based on SeaBIOS
@@ -31,19 +31,20 @@ index 43635d5ff..2c86dbbf6 100644
endif
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 5c1af8682..02967d3ff 100644
+index f1f38d8d3..d09f9ffbc 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
-@@ -2614,3 +2614,9 @@ module = {
- enable = efi;
- depends = part_gpt;
- };
+@@ -2676,4 +2676,10 @@ module = {
+ common = tests/asn1/asn1_test.c;
+ cflags = '-Wno-uninitialized';
+ cppflags = '-I$(srcdir)/lib/libtasn1-grub -I$(srcdir)/tests/asn1/';
++};
+
+module = {
+ name = nvme;
+ common = disk/nvme.c;
+ enable = pci;
-+};
+ };
diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c
index 6806bff9c..fd68a513e 100644
--- a/grub-core/commands/nativedisk.c
@@ -1070,5 +1071,5 @@ index fbf23df7f..186e76f0b 100644
struct grub_disk;
--
-2.39.2
+2.39.5
diff --git a/config/grub/nvme/target.cfg b/config/grub/nvme/target.cfg
index 331070b0..ea4018df 100644
--- a/config/grub/nvme/target.cfg
+++ b/config/grub/nvme/target.cfg
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
tree="nvme"
-rev="b53ec06a1d6f22ffc1139cbfc0f292e4ca2da9cd"
+rev="6811f6f09d61996a3acbc4fc0414e45964f0e2d9"
diff --git a/config/grub/xhci/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch b/config/grub/xhci/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
index 0cc0cb34..757c8e03 100644
--- a/config/grub/xhci/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
+++ b/config/grub/xhci/patches/0001-mitigate-grub-s-missing-characters-for-borders-arrow.patch
@@ -1,4 +1,4 @@
-From 1ee64f2373af3ad992993f9cf103a29df0359c3c Mon Sep 17 00:00:00 2001
+From c94b9ea258feb53773bab06bc2a6c6e66a44f867 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 31 Oct 2021 03:47:05 +0000
Subject: [PATCH 01/22] mitigate grub's missing characters for borders/arrow
@@ -86,5 +86,5 @@ index 9c383e64a..8ec1dd1e8 100644
grub_term_highlight_color = old_color_highlight;
geo->timeout_y = geo->first_entry_y + geo->num_entries
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch b/config/grub/xhci/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
index 26c7df43..c6da216d 100644
--- a/config/grub/xhci/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
+++ b/config/grub/xhci/patches/0002-say-the-name-libreboot-in-the-grub-menu.patch
@@ -1,4 +1,4 @@
-From 0e89a40423cdd6f8f20ad03d1c2f54ee7b5ea1b6 Mon Sep 17 00:00:00 2001
+From da775eafbe79e3100ca2262bde49e3e65978e83f Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sat, 19 Nov 2022 16:30:24 +0000
Subject: [PATCH 02/22] say the name libreboot, in the grub menu
@@ -8,7 +8,7 @@ Subject: [PATCH 02/22] say the name libreboot, in the grub menu
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
-index bd4431000..300f55fe1 100644
+index bd4431000..ff16e0f2e 100644
--- a/grub-core/normal/main.c
+++ b/grub-core/normal/main.c
@@ -209,7 +209,7 @@ grub_normal_init_page (struct grub_term_output *term,
@@ -21,5 +21,5 @@ index bd4431000..300f55fe1 100644
return;
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0003-Add-CC0-license.patch b/config/grub/xhci/patches/0003-Add-CC0-license.patch
index cf35c343..44d27eb5 100644
--- a/config/grub/xhci/patches/0003-Add-CC0-license.patch
+++ b/config/grub/xhci/patches/0003-Add-CC0-license.patch
@@ -1,4 +1,4 @@
-From c9be46c903d4aabc88fe4d9394d7a8e024868c32 Mon Sep 17 00:00:00 2001
+From b91e5cafa7863b5a61e97d483f98dcece374721a Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 03/22] Add CC0 license
@@ -10,10 +10,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 0bf40caa6..4011e2d15 100644
+index 8ad015b07..9980bae90 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -470,7 +470,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
+@@ -494,7 +494,8 @@ grub_dl_check_license (grub_dl_t mod, Elf_Ehdr *e)
if (grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3") == 0
|| grub_strcmp ((char *) e + s->sh_offset, "LICENSE=GPLv3+") == 0
@@ -38,5 +38,5 @@ index a42c20bd1..7157a30aa 100644
grub_util_error ("%s: incompatible license", filename);
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0004-Define-GRUB_UINT32_MAX.patch b/config/grub/xhci/patches/0004-Define-GRUB_UINT32_MAX.patch
index 08566ba9..2d830d43 100644
--- a/config/grub/xhci/patches/0004-Define-GRUB_UINT32_MAX.patch
+++ b/config/grub/xhci/patches/0004-Define-GRUB_UINT32_MAX.patch
@@ -1,4 +1,4 @@
-From c988b6b3bb7567f9ed6bb0332b992577011970c2 Mon Sep 17 00:00:00 2001
+From 58e0d7b7bcec2392b81dda613d070804f7c68cf5 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 04/22] Define GRUB_UINT32_MAX
@@ -35,5 +35,5 @@ index 45079bf65..8c0b30395 100644
#define GRUB_PROPERLY_ALIGNED_ARRAY(name, size) grub_properly_aligned_t name[((size) + sizeof (grub_properly_aligned_t) - 1) / sizeof (grub_properly_aligned_t)]
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0005-Add-Argon2-algorithm.patch b/config/grub/xhci/patches/0005-Add-Argon2-algorithm.patch
index 85a629c5..ff2dc74e 100644
--- a/config/grub/xhci/patches/0005-Add-Argon2-algorithm.patch
+++ b/config/grub/xhci/patches/0005-Add-Argon2-algorithm.patch
@@ -1,4 +1,4 @@
-From e2cfe7dcdb384ce5268a7c6e5cc8a6e8e01fc05f Mon Sep 17 00:00:00 2001
+From 65a9b252b79d5d1fa022e3da9ef91459ad8efb94 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 05/22] Add Argon2 algorithm
@@ -30,10 +30,10 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
create mode 100644 grub-core/lib/argon2/ref.c
diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
-index 1276c5930..cd6fb0e1e 100644
+index 3ad8e3efa..d7c6232af 100644
--- a/docs/grub-dev.texi
+++ b/docs/grub-dev.texi
-@@ -503,11 +503,75 @@ GRUB includes some code from other projects, and it is sometimes necessary
+@@ -503,12 +503,76 @@ GRUB includes some code from other projects, and it is sometimes necessary
to update it.
@menu
@@ -41,6 +41,7 @@ index 1276c5930..cd6fb0e1e 100644
* Gnulib::
* jsmn::
* minilzo::
+ * libtasn1::
@end menu
+@node Argon2
@@ -110,7 +111,7 @@ index 1276c5930..cd6fb0e1e 100644
@section Gnulib
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 705d73fab..452f11b20 100644
+index f70e02e69..f5f9b040c 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1219,6 +1219,14 @@ module = {
@@ -2607,5 +2608,5 @@ index 000000000..c933df80d
+ }
+}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0006-Error-on-missing-Argon2id-parameters.patch b/config/grub/xhci/patches/0006-Error-on-missing-Argon2id-parameters.patch
index 30de08cc..22553006 100644
--- a/config/grub/xhci/patches/0006-Error-on-missing-Argon2id-parameters.patch
+++ b/config/grub/xhci/patches/0006-Error-on-missing-Argon2id-parameters.patch
@@ -1,4 +1,4 @@
-From 08a2fce70c6e988eb0112d5ad2787843910811bc Mon Sep 17 00:00:00 2001
+From 809908898f9d67979885a651b295ca1fa066039c Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 06/22] Error on missing Argon2id parameters
@@ -54,5 +54,5 @@ index d5106402f..bc818ea69 100644
goto err;
case LUKS2_KDF_TYPE_PBKDF2:
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0007-Compile-with-Argon2id-support.patch b/config/grub/xhci/patches/0007-Compile-with-Argon2id-support.patch
index 23f361dc..b77a5751 100644
--- a/config/grub/xhci/patches/0007-Compile-with-Argon2id-support.patch
+++ b/config/grub/xhci/patches/0007-Compile-with-Argon2id-support.patch
@@ -1,4 +1,4 @@
-From 268da8d0ccce822ffa4c2d9d35fe717245daa726 Mon Sep 17 00:00:00 2001
+From 26ae5da9ed8382869b699a653988e6c8f32bd3d1 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 07/22] Compile with Argon2id support
@@ -11,7 +11,7 @@ Signed-off-by: Nicholas Johnson <nick@nicholasjohnson.ch>
3 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/Makefile.util.def b/Makefile.util.def
-index 0f74a1680..5a15e5637 100644
+index 038253b37..2f19569c9 100644
--- a/Makefile.util.def
+++ b/Makefile.util.def
@@ -3,7 +3,7 @@ AutoGen definitions Makefile.tpl;
@@ -35,7 +35,7 @@ index 0f74a1680..5a15e5637 100644
common = grub-core/disk/luks.c;
common = grub-core/disk/luks2.c;
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 452f11b20..5c1af8682 100644
+index f5f9b040c..f1f38d8d3 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -1242,7 +1242,7 @@ module = {
@@ -79,5 +79,5 @@ index bc818ea69..5b9eaa599 100644
hash = grub_crypto_lookup_md_by_name (k->kdf.u.pbkdf2.hash);
if (!hash)
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0008-Make-grub-install-work-with-Argon2.patch b/config/grub/xhci/patches/0008-Make-grub-install-work-with-Argon2.patch
index ffdb306c..00f94eef 100644
--- a/config/grub/xhci/patches/0008-Make-grub-install-work-with-Argon2.patch
+++ b/config/grub/xhci/patches/0008-Make-grub-install-work-with-Argon2.patch
@@ -1,4 +1,4 @@
-From 5e540d3e4c01940c66425c4475a1cb6a35b188e8 Mon Sep 17 00:00:00 2001
+From 6ce0b0629aa1377237c19290f33008ff81969962 Mon Sep 17 00:00:00 2001
From: Ax333l <main@axelen.xyz>
Date: Thu, 17 Aug 2023 00:00:00 +0000
Subject: [PATCH 08/22] Make grub-install work with Argon2
@@ -22,5 +22,5 @@ index 7dc5657bb..cf7315891 100644
have_cryptodisk = 1;
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch b/config/grub/xhci/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
index e4b26a38..31798205 100644
--- a/config/grub/xhci/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
+++ b/config/grub/xhci/patches/0009-at_keyboard-coreboot-force-scancodes2-translate.patch
@@ -1,4 +1,4 @@
-From 9e9c69a74e5c14fd87ae56c8b9171a808d89742e Mon Sep 17 00:00:00 2001
+From 3f69e2c35ccf2a37fd35f1821c7b85cc6df07ca7 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Mon, 30 Oct 2023 22:19:21 +0000
Subject: [PATCH 09/22] at_keyboard coreboot: force scancodes2+translate
@@ -103,5 +103,5 @@ index f8a129eb7..8207225c2 100644
grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set);
if (ps2_state.current_set == 2)
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch b/config/grub/xhci/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
index e8a3ce14..742aae38 100644
--- a/config/grub/xhci/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
+++ b/config/grub/xhci/patches/0010-keylayouts-don-t-print-Unknown-key-message.patch
@@ -1,4 +1,4 @@
-From ccbcdb93af6747fe77094dfa9e114a034420bdd5 Mon Sep 17 00:00:00 2001
+From 44befdaa1ee588591f46c13d057fdef56b87218c Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Tue, 31 Oct 2023 10:33:28 +0000
Subject: [PATCH 10/22] keylayouts: don't print "Unknown key" message
@@ -34,5 +34,5 @@ index aa3ba34f2..445fa0601 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch b/config/grub/xhci/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
index de68bb78..960c693d 100644
--- a/config/grub/xhci/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
+++ b/config/grub/xhci/patches/0011-don-t-print-missing-prefix-errors-on-the-screen.patch
@@ -1,4 +1,4 @@
-From 21a829a3a6f5e7d9028059df8057fdf8bce8fe06 Mon Sep 17 00:00:00 2001
+From bfecf6d86ccf82fb85af93600931cee589891089 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:14:58 +0000
Subject: [PATCH 11/22] don't print missing prefix errors on the screen
@@ -85,10 +85,10 @@ index 18de52562..2a0fea6c8 100644
}
file = try_open_from_prefix (prefix, filename);
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index 4011e2d15..af3bd00d0 100644
+index 9980bae90..4457cad7c 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -758,7 +758,7 @@ grub_dl_load (const char *name)
+@@ -871,7 +871,7 @@ grub_dl_load (const char *name)
return 0;
if (! grub_dl_dir) {
@@ -98,5 +98,5 @@ index 4011e2d15..af3bd00d0 100644
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0012-don-t-print-error-if-module-not-found.patch b/config/grub/xhci/patches/0012-don-t-print-error-if-module-not-found.patch
index 37f52e03..c098f7e8 100644
--- a/config/grub/xhci/patches/0012-don-t-print-error-if-module-not-found.patch
+++ b/config/grub/xhci/patches/0012-don-t-print-error-if-module-not-found.patch
@@ -1,4 +1,4 @@
-From edb8208100c523b5776f2cb0712fdc0c9065e517 Mon Sep 17 00:00:00 2001
+From f44fc56f06559313841de2b53637020fbe139803 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 16:36:22 +0000
Subject: [PATCH 12/22] don't print error if module not found
@@ -17,10 +17,10 @@ Signed-off-by: Leah Rowe <leah@libreboot.org>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c
-index af3bd00d0..21d0cedb1 100644
+index 4457cad7c..ea9fe8019 100644
--- a/grub-core/kern/dl.c
+++ b/grub-core/kern/dl.c
-@@ -486,7 +486,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
+@@ -510,7 +510,7 @@ grub_dl_resolve_name (grub_dl_t mod, Elf_Ehdr *e)
s = grub_dl_find_section (e, ".modname");
if (!s)
@@ -30,5 +30,5 @@ index af3bd00d0..21d0cedb1 100644
mod->name = grub_strdup ((char *) e + s->sh_offset);
if (! mod->name)
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0013-don-t-print-empty-error-messages.patch b/config/grub/xhci/patches/0013-don-t-print-empty-error-messages.patch
index 74d8bade..23672773 100644
--- a/config/grub/xhci/patches/0013-don-t-print-empty-error-messages.patch
+++ b/config/grub/xhci/patches/0013-don-t-print-empty-error-messages.patch
@@ -1,4 +1,4 @@
-From 65cb1871a3e125355df78a6d1d6f1bc7e356c4e8 Mon Sep 17 00:00:00 2001
+From e459ed55902003644e7bcd76361cc43247231a99 Mon Sep 17 00:00:00 2001
From: Leah Rowe <leah@libreboot.org>
Date: Sun, 5 Nov 2023 17:25:20 +0000
Subject: [PATCH 13/22] don't print empty error messages
@@ -27,5 +27,5 @@ index 53c734de7..7cac53983 100644
}
}
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0014-grub-core-bus-usb-Parse-SuperSpeed-companion-descrip.patch b/config/grub/xhci/patches/0014-grub-core-bus-usb-Parse-SuperSpeed-companion-descrip.patch
index 4c84b8c3..bc18cb13 100644
--- a/config/grub/xhci/patches/0014-grub-core-bus-usb-Parse-SuperSpeed-companion-descrip.patch
+++ b/config/grub/xhci/patches/0014-grub-core-bus-usb-Parse-SuperSpeed-companion-descrip.patch
@@ -1,4 +1,4 @@
-From 3273128b6dc6df83ef6b1d54d009a1ae26844bff Mon Sep 17 00:00:00 2001
+From 85fdf29d37b58be96042d6df24f8bc08bba9906d Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:00:27 +0100
Subject: [PATCH 14/22] grub-core/bus/usb: Parse SuperSpeed companion
@@ -242,5 +242,5 @@ index aac5ab05a..bb2ab2e27 100644
{
grub_uint8_t length;
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0015-usb-Add-enum-for-xHCI.patch b/config/grub/xhci/patches/0015-usb-Add-enum-for-xHCI.patch
index 937ff1af..d8330e59 100644
--- a/config/grub/xhci/patches/0015-usb-Add-enum-for-xHCI.patch
+++ b/config/grub/xhci/patches/0015-usb-Add-enum-for-xHCI.patch
@@ -1,4 +1,4 @@
-From 3b8f2defcda1a3b51ad0be8795a2338a0ed5ca59 Mon Sep 17 00:00:00 2001
+From 26a5ed135c94b295b9a0037f5e7201eb5d38fde4 Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:47:06 +0100
Subject: [PATCH 15/22] usb: Add enum for xHCI
@@ -25,5 +25,5 @@ index 688c11f6d..ea6ee8c2c 100644
typedef int (*grub_usb_iterate_hook_t) (grub_usb_device_t dev, void *data);
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0016-usbtrans-Set-default-maximum-packet-size.patch b/config/grub/xhci/patches/0016-usbtrans-Set-default-maximum-packet-size.patch
index 8f6bb001..27402534 100644
--- a/config/grub/xhci/patches/0016-usbtrans-Set-default-maximum-packet-size.patch
+++ b/config/grub/xhci/patches/0016-usbtrans-Set-default-maximum-packet-size.patch
@@ -1,4 +1,4 @@
-From ba7ce6daec155bc3deac4e0c48d470afa024ab94 Mon Sep 17 00:00:00 2001
+From 13bc84d9f43328ba47273cbcf87c517398dcfc93 Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:48:03 +0100
Subject: [PATCH 16/22] usbtrans: Set default maximum packet size
@@ -29,5 +29,5 @@ index c5680b33a..c1080bb33 100644
max = 64;
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0017-grub-core-bus-usb-Add-function-pointer-for-attach-de.patch b/config/grub/xhci/patches/0017-grub-core-bus-usb-Add-function-pointer-for-attach-de.patch
index 60680bd0..eede3791 100644
--- a/config/grub/xhci/patches/0017-grub-core-bus-usb-Add-function-pointer-for-attach-de.patch
+++ b/config/grub/xhci/patches/0017-grub-core-bus-usb-Add-function-pointer-for-attach-de.patch
@@ -1,4 +1,4 @@
-From c4cd7fbe3e2e8ff4cbe6d0db8c3356aeee614af5 Mon Sep 17 00:00:00 2001
+From 1518589ff286b54a27d4b11f017cb43c90cbf566 Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:51:42 +0100
Subject: [PATCH 17/22] grub-core/bus/usb: Add function pointer for
@@ -117,5 +117,5 @@ index ea6ee8c2c..4dd179db2 100644
grub_uint64_t pending_reset;
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0018-grub-core-bus-usb-usbhub-Add-new-private-fields-for-.patch b/config/grub/xhci/patches/0018-grub-core-bus-usb-usbhub-Add-new-private-fields-for-.patch
index bc0f957f..099ef79d 100644
--- a/config/grub/xhci/patches/0018-grub-core-bus-usb-usbhub-Add-new-private-fields-for-.patch
+++ b/config/grub/xhci/patches/0018-grub-core-bus-usb-usbhub-Add-new-private-fields-for-.patch
@@ -1,4 +1,4 @@
-From 1ab23afbfa7ae436741947c0b9bdacc434ad6153 Mon Sep 17 00:00:00 2001
+From 8dd981a95cc7731b63b2d79ce6f98ce2d6b5a993 Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:54:40 +0100
Subject: [PATCH 18/22] grub-core/bus/usb/usbhub: Add new private fields for
@@ -73,5 +73,5 @@ index 4dd179db2..609faf7d0 100644
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0019-grub-core-bus-usb-Add-xhci-support.patch b/config/grub/xhci/patches/0019-grub-core-bus-usb-Add-xhci-support.patch
index 02a24d5a..aaabb3da 100644
--- a/config/grub/xhci/patches/0019-grub-core-bus-usb-Add-xhci-support.patch
+++ b/config/grub/xhci/patches/0019-grub-core-bus-usb-Add-xhci-support.patch
@@ -1,4 +1,4 @@
-From 8c9e61e7b0f28a66d0f63c07b10fc6617a709010 Mon Sep 17 00:00:00 2001
+From dde187c07a8f2a1d3357aa362ffcc0fe8dab72d7 Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Sun, 15 Nov 2020 19:59:25 +0100
Subject: [PATCH 19/22] grub-core/bus/usb: Add xhci support
@@ -74,7 +74,7 @@ index 43635d5ff..65016f856 100644
endif
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 5c1af8682..9d59acd1e 100644
+index f1f38d8d3..fda723f0c 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
@@ -667,6 +667,13 @@ module = {
@@ -2810,5 +2810,5 @@ index 609faf7d0..eb71fa1c7 100644
#endif /* GRUB_USB_H */
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0020-grub-core-bus-usb-usbhub-Add-xHCI-non-root-hub-suppo.patch b/config/grub/xhci/patches/0020-grub-core-bus-usb-usbhub-Add-xHCI-non-root-hub-suppo.patch
index 735ef22d..6a3266b2 100644
--- a/config/grub/xhci/patches/0020-grub-core-bus-usb-usbhub-Add-xHCI-non-root-hub-suppo.patch
+++ b/config/grub/xhci/patches/0020-grub-core-bus-usb-usbhub-Add-xHCI-non-root-hub-suppo.patch
@@ -1,4 +1,4 @@
-From 127961742cf7992f6989c6e89a18ab6d8f0b297f Mon Sep 17 00:00:00 2001
+From 28856bd0646e0396b3d5249a99b731f2743aec5a Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Thu, 3 Dec 2020 13:44:55 +0100
Subject: [PATCH 20/22] grub-core/bus/usb/usbhub: Add xHCI non root hub support
@@ -123,5 +123,5 @@ index 039ebed65..d6c3f71dc 100644
#define GRUB_USB_FEATURE_ENDP_HALT 0x00
#define GRUB_USB_FEATURE_DEV_REMOTE_WU 0x01
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0021-Fix-compilation-on-x86_64.patch b/config/grub/xhci/patches/0021-Fix-compilation-on-x86_64.patch
index 6a5f0502..8f80664c 100644
--- a/config/grub/xhci/patches/0021-Fix-compilation-on-x86_64.patch
+++ b/config/grub/xhci/patches/0021-Fix-compilation-on-x86_64.patch
@@ -1,4 +1,4 @@
-From 8d46c537d4df8c785af4b85644d311ba53af5964 Mon Sep 17 00:00:00 2001
+From 040942842dc05c9b94c9be21f01b08da3e25fe6d Mon Sep 17 00:00:00 2001
From: Patrick Rudolph <patrick.rudolph@9elements.com>
Date: Wed, 24 Feb 2021 08:25:41 +0100
Subject: [PATCH 21/22] Fix compilation on x86_64
@@ -86,5 +86,5 @@ index f4591ffb5..3495bb919 100644
}
else
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/patches/0022-Add-native-NVMe-driver-based-on-SeaBIOS.patch b/config/grub/xhci/patches/0022-Add-native-NVMe-driver-based-on-SeaBIOS.patch
index 82452f1c..c105dd19 100644
--- a/config/grub/xhci/patches/0022-Add-native-NVMe-driver-based-on-SeaBIOS.patch
+++ b/config/grub/xhci/patches/0022-Add-native-NVMe-driver-based-on-SeaBIOS.patch
@@ -1,4 +1,4 @@
-From 394102db8f4de6782b628b29c59d2634f2c72674 Mon Sep 17 00:00:00 2001
+From 2fb0de8881bd2fe637d05bec0ae887f380434b7d Mon Sep 17 00:00:00 2001
From: Mate Kukri <km@mkukri.xyz>
Date: Mon, 20 May 2024 11:43:35 +0100
Subject: [PATCH 22/22] Add native NVMe driver based on SeaBIOS
@@ -31,19 +31,20 @@ index 65016f856..7bc0866ba 100644
endif
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 9d59acd1e..56076728b 100644
+index fda723f0c..27a707fda 100644
--- a/grub-core/Makefile.core.def
+++ b/grub-core/Makefile.core.def
-@@ -2621,3 +2621,9 @@ module = {
- enable = efi;
- depends = part_gpt;
- };
+@@ -2683,4 +2683,10 @@ module = {
+ common = tests/asn1/asn1_test.c;
+ cflags = '-Wno-uninitialized';
+ cppflags = '-I$(srcdir)/lib/libtasn1-grub -I$(srcdir)/tests/asn1/';
++};
+
+module = {
+ name = nvme;
+ common = disk/nvme.c;
+ enable = pci;
-+};
+ };
diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c
index 6806bff9c..fd68a513e 100644
--- a/grub-core/commands/nativedisk.c
@@ -1070,5 +1071,5 @@ index fbf23df7f..186e76f0b 100644
struct grub_disk;
--
-2.39.2
+2.39.5
diff --git a/config/grub/xhci/target.cfg b/config/grub/xhci/target.cfg
index f1ff519b..540f11f7 100644
--- a/config/grub/xhci/target.cfg
+++ b/config/grub/xhci/target.cfg
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
tree="xhci"
-rev="b53ec06a1d6f22ffc1139cbfc0f292e4ca2da9cd"
+rev="6811f6f09d61996a3acbc4fc0414e45964f0e2d9"
diff --git a/config/seabios/default/target.cfg b/config/seabios/default/target.cfg
index 2ee6cf6f..9ff1db3e 100644
--- a/config/seabios/default/target.cfg
+++ b/config/seabios/default/target.cfg
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
tree="default"
-rev="62a1429ec1ec67f14c039d97627a6a7ef70a983c"
+rev="1602647f1be24fe63d11138d802e735c8e674e63"
diff --git a/config/u-boot/default/patches/0009-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/default/patches/0009-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
new file mode 100644
index 00000000..905b311c
--- /dev/null
+++ b/config/u-boot/default/patches/0009-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
@@ -0,0 +1,61 @@
+From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 30 Oct 2024 06:07:16 +0100
+Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use
+ SWIG_AppendOutput
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Swig has changed language specific AppendOutput functions. The helper
+macro SWIG_AppendOutput remains unchanged. Use that instead
+of SWIG_Python_AppendOutput, which would require an extra parameter
+since swig 4.3.0.
+
+/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
+| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
+| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
+| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
+Link: https://github.com/dgibson/dtc/pull/154
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 56cc5d48f4..e4659489a9 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
+ fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
+ buff = PyByteArray_FromStringAndSize(
+ (const char *)($1 + 1), fdt32_to_cpu($1->len));
+- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
++ resultobj = SWIG_AppendOutput(resultobj, buff);
+ }
+ }
+
+@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
+
+ %typemap(argout) int *depth {
+ PyObject *val = Py_BuildValue("i", *arg$argnum);
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+
+ %apply int *depth { int *depth };
+@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
+ if (PyTuple_GET_SIZE(resultobj) == 0)
+ resultobj = val;
+ else
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+ }
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
new file mode 100644
index 00000000..905b311c
--- /dev/null
+++ b/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
@@ -0,0 +1,61 @@
+From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 30 Oct 2024 06:07:16 +0100
+Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use
+ SWIG_AppendOutput
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Swig has changed language specific AppendOutput functions. The helper
+macro SWIG_AppendOutput remains unchanged. Use that instead
+of SWIG_Python_AppendOutput, which would require an extra parameter
+since swig 4.3.0.
+
+/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
+| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
+| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
+| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
+Link: https://github.com/dgibson/dtc/pull/154
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 56cc5d48f4..e4659489a9 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
+ fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
+ buff = PyByteArray_FromStringAndSize(
+ (const char *)($1 + 1), fdt32_to_cpu($1->len));
+- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
++ resultobj = SWIG_AppendOutput(resultobj, buff);
+ }
+ }
+
+@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
+
+ %typemap(argout) int *depth {
+ PyObject *val = Py_BuildValue("i", *arg$argnum);
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+
+ %apply int *depth { int *depth };
+@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
+ if (PyTuple_GET_SIZE(resultobj) == 0)
+ resultobj = val;
+ else
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+ }
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
new file mode 100644
index 00000000..905b311c
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
@@ -0,0 +1,61 @@
+From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 30 Oct 2024 06:07:16 +0100
+Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use
+ SWIG_AppendOutput
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Swig has changed language specific AppendOutput functions. The helper
+macro SWIG_AppendOutput remains unchanged. Use that instead
+of SWIG_Python_AppendOutput, which would require an extra parameter
+since swig 4.3.0.
+
+/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
+| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
+| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
+| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
+Link: https://github.com/dgibson/dtc/pull/154
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 56cc5d48f4..e4659489a9 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
+ fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
+ buff = PyByteArray_FromStringAndSize(
+ (const char *)($1 + 1), fdt32_to_cpu($1->len));
+- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
++ resultobj = SWIG_AppendOutput(resultobj, buff);
+ }
+ }
+
+@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
+
+ %typemap(argout) int *depth {
+ PyObject *val = Py_BuildValue("i", *arg$argnum);
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+
+ %apply int *depth { int *depth };
+@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
+ if (PyTuple_GET_SIZE(resultobj) == 0)
+ resultobj = val;
+ else
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+ }
+
+--
+2.39.5
+
diff --git a/include/git.sh b/include/git.sh
index 77a22763..aaeabcd4 100644
--- a/include/git.sh
+++ b/include/git.sh
@@ -115,7 +115,7 @@ tmpclone()
git_am_patches "$3" "$5"
) || repofail="y"
- [ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone $@ retry
+ [ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
[ "$repofail" = "y" ] && $err "!clone $1 $2 $3 $4 $5"; :
}
diff --git a/include/lib.sh b/include/lib.sh
index 92651c84..0af8db49 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -10,14 +10,15 @@ _ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
ifdtool="elf/ifdtool/default/ifdtool"
cbfstool="elf/cbfstool/default/cbfstool"
+rmodtool="elf/cbfstool/default/rmodtool"
tmpgit="$PWD/tmp/gitclone"
grubdata="config/data/grub"
err="err_"
pyver="2"
python="python3"
-which python3 1>/dev/null || python="python"
-which $python 1>/dev/null || pyver=""
+command -v python3 1>/dev/null || python="python"
+command -v $python 1>/dev/null || pyver=""
[ -n "$pyver" ] && pyver="$($python --version | awk '{print $2}')"
if [ "${pyver%%.*}" != "3" ]; then
printf "Wrong python version, or python missing. Must be v 3.x.\n" 1>&2
@@ -45,7 +46,7 @@ chkvars()
}
eval `setvars "" _nogit board xbmk_parent versiondate projectsite projectname \
- aur_notice configdir datadir version relname`
+ aur_notice configdir datadir version relname reinstall`
for fv in projectname projectsite version versiondate; do
eval "[ ! -f "$fv" ] || read -r $fv < \"$fv\" || :"
@@ -72,6 +73,8 @@ e()
install_packages()
{
[ $# -lt 2 ] && $err "fewer than two arguments"
+ [ $# -gt 2 ] && reinstall="$3"
+
eval `setcfg "config/dependencies/$2"`
$pkg_add $pkglist || $err "Cannot install packages"
@@ -80,32 +83,36 @@ install_packages()
printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; return 0
}
if [ $# -gt 0 ] && [ "$1" = "dependencies" ]; then
- install_packages $@ || exit 1
+ install_packages "$@" || exit 1
exit 0
fi
id -u 1>/dev/null 2>/dev/null || $err "suid check failed (id -u)"
[ "$(id -u)" != "0" ] || $err "this command as root is not permitted"
+# XBMK_CACHE is a directory, for caching downloads and git repositories
+[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache"
+[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
+[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \
+ $err "cachedir is default, $PWD/cache, but it exists and is a symlink"
+[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
+[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file"
+
+# unify all temporary files/directories in a single TMPDIR
[ -z "${TMPDIR+x}" ] || [ "${TMPDIR%_*}" = "/tmp/xbmk" ] || unset TMPDIR
[ -n "${TMPDIR+x}" ] && export TMPDIR="$TMPDIR"
-
if [ -z "${TMPDIR+x}" ]; then
[ -f "lock" ] && $err "$PWD/lock exists. Is a build running?"
export TMPDIR="/tmp"
export TMPDIR="$(mktemp -d -t xbmk_XXXXXXXX)"
touch lock || $err "cannot create 'lock' file"
+ rm -Rf "$XBMK_CACHE/xbmkpath" || $err "cannot remove xbmkpath"
+ mkdir -p "$XBMK_CACHE/xbmkpath" || $err "cannot create xbmkpath"
+ export PATH="$XBMK_CACHE/xbmkpath:$PATH" || \
+ $err "Can't create xbmkpath"
xbmk_parent="y"
fi
-# XBMK_CACHE is a directory, for caching downloads and git repositories
-[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$PWD/cache"
-[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
-[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$PWD/cache" ] && \
- $err "cachedir is default, $PWD/cache, but it exists and is a symlink"
-[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$PWD/cache"
-[ -f "$XBMK_CACHE" ] && $err "cachedir '$XBMK_CACHE' exists but it's a file"
-
# 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)
[ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n"
@@ -116,7 +123,7 @@ expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
1>/dev/null 2>/dev/null || export XBMK_THREADS=1 # user gave a non-integer
x_() {
- [ $# -lt 1 ] || $@ || \
+ [ $# -lt 1 ] || "$@" || \
$err "Unhandled non-zero exit: $(echo "$@")"; return 0
}
@@ -166,7 +173,6 @@ mktarball()
mkdir -p "${2%/*}" || $err "mk, !mkdir -p \"${2%/*}\""
printf "\nCreating archive: %s\n\n" "$2"
tar -c "$1" | xz -T$XBMK_THREADS -9e > "$2" || $err "mktarball 2, $1"
- mksha512sum "$2" "${2##*/}.sha512"
}
mksha512sum()
diff --git a/include/rom.sh b/include/rom.sh
index 0ea791d2..60980d22 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -84,10 +84,14 @@ check_coreboot_utils()
utilmode="" && [ -n "$mode" ] && utilmode="clean"
x_ make -C "$utilsrcdir" $utilmode -j$XBMK_THREADS $makeargs
- [ -z "$mode" ] && [ ! -f "$utilelfdir/$util" ] && \
- x_ mkdir -p "$utilelfdir" && \
- x_ cp "$utilsrcdir/$util" "elf/$util/$1"
- [ -z "$mode" ] || x_ rm -Rf "$utilelfdir"; continue
+ if [ -z "$mode" ] && [ ! -f "$utilelfdir/$util" ]; then
+ x_ mkdir -p "$utilelfdir"
+ x_ cp "$utilsrcdir/$util" "$utilelfdir"
+ [ "$util" = "cbfstool" ] || continue
+ x_ cp "$utilsrcdir/rmodtool" "$utilelfdir"
+ elif [ -n "$mode" ]; then
+ x_ rm -Rf "$utilelfdir"
+ fi; continue
done; return 0
}
@@ -251,15 +255,16 @@ cprom()
x_ cp "$tmprom" "$newrom" && [ $# -gt 0 ] && [ "$1" != "seauboot" ] && \
cbfs "$newrom" "config/data/grub/keymap/$1" keymap.gkb raw
[ $# -gt 0 ] && [ "$1" = "seauboot" ] && \
- cbfs "$newrom" "config/data/grub/bootorder_uboot" "bootorder" raw
-
- [ "$XBMK_RELEASE" = "y" ] || return 0
- $dry mksha512sum "$newrom" "vendorhashes"; $dry ./mk inject \
- -r "$newrom" -b "$target" -n nuke || $err "!nuke $newrom"
+ cbfs "$newrom" "config/data/grub/bootorder_uboot" bootorder raw; :
}
mkcoreboottar()
{
- [ "$target" = "$tree" ] && return 0; [ "$XBMK_RELEASE" = "y" ] && \
- [ "$release" != "n" ] && $dry mkrom_tarball "bin/$target"; :
+ [ "$target" = "$tree" ] && return 0
+ [ "$XBMK_RELEASE" = "y" ] || return 0
+ [ "$release" != "n" ] || return 0
+ $dry mkrom_tarball "bin/$target"
+ $dry ./mk inject "bin/${relname}_${target}.tar.xz" nuke || \
+ $err "Can't delete vendorfiles in 'bin/${relname}_$target.tar.xz'"
+ return 0
}
diff --git a/include/vendor.sh b/include/vendor.sh
index 7d1356f2..29b991cd 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-3.0-only
# Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
# Copyright (c) 2022 Ferass El Hafidi <vitali64pmemail@protonmail.com>
-# Copyright (c) 2023-2024 Leah Rowe <leah@libreboot.org>
+# Copyright (c) 2023-2025 Leah Rowe <leah@libreboot.org>
e6400_unpack="$PWD/src/bios_extract/dell_inspiron_1100_unpacker.py"
me7updateparser="$PWD/util/me7_update_parser/me7_update_parser.py"
@@ -10,6 +10,11 @@ uefiextract="$PWD/elf/uefitool/uefiextract"
vendir="vendorfiles"
appdir="$vendir/app"
cbcfgsdir="config/coreboot"
+hashfiles="vendorhashes blobhashes" # blobhashes for backwards compatibility
+dontflash="!!! AN ERROR OCCURED! Please DO NOT flash if injection failed. !!!"
+vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_BLOBS_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_"
+vguide="https://libreboot.org/docs/install/ivy_has_common.html"
+tmpromdel="$PWD/tmp/DO_NOT_FLASH"
cv="CONFIG_HAVE_ME_BIN CONFIG_ME_BIN_PATH CONFIG_INCLUDE_SMSC_SCH5545_EC_FW \
CONFIG_SMSC_SCH5545_EC_FW_FILE CONFIG_KBC1126_FIRMWARE CONFIG_KBC1126_FW1 \
@@ -25,10 +30,10 @@ eval `setvars "" EC_url_bkup EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \
E6400_VGA_romname SCH5545EC_DL_url_bkup SCH5545EC_DL_hash _dest tree \
mecleaner kbc1126_ec_dump MRC_refcode_cbtree new_mac _dl SCH5545EC_DL_url \
- archive EC_url boarddir rom cbdir DL_url nukemode cbfstoolref vrelease \
- verify _7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch \
+ archive EC_url boarddir rom cbdir DL_url nukemode cbfstoolref FSPFD_hash \
+ _7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch tmpromdir \
IFD_platform ifdprefix cdir sdir _me _metmp mfs TBFW_url_bkup TBFW_url \
- TBFW_hash TBFW_size FSPFD_hash $cv`
+ TBFW_hash TBFW_size hashfile has_hashes xromsize xchanged $cv`
vendor_download()
{
@@ -40,16 +45,16 @@ readkconfig()
{
check_defconfig "$boarddir" 1>"$TMPDIR/vendorcfg.list" && return 1
- rm -f "$TMPDIR/tmpcbcfg" || $err "!rm -f \"$TMPDIR/tmpcbcfg\""
+ rm -f "$TMPDIR/tmpcbcfg" || $err "!rm $TMPDIR/tmpcbcfg - $dontflash"
while read -r cbcfgfile; do
for cbc in $cv; do
rm -f "$TMPDIR/tmpcbcfg2" || \
- $err "!rm $TMPDIR/tmpcbcfg2"
+ $err "!rm $TMPDIR/tmpcbcfg2 - $dontflash"
grep "$cbc" "$cbcfgfile" 1>"$TMPDIR/tmpcbcfg2" \
2>/dev/null || :
[ -f "$TMPDIR/tmpcbcfg2" ] || continue
cat "$TMPDIR/tmpcbcfg2" >> "$TMPDIR/tmpcbcfg" || \
- $err "!cat $TMPDIR/tmpcbcfg2"
+ $err "!cat $TMPDIR/tmpcbcfg2 - $dontflash"
done
done < "$TMPDIR/vendorcfg.list"
@@ -117,20 +122,22 @@ fetch()
dlop="curl" && [ $# -gt 5 ] && dlop="$6"
download "$dl" "$dl_bkup" "$_dl" "$dlsum" "$dlop"
- rm -Rf "${_dl}_extracted" || $err "!rm -Rf ${_ul}_extracted"
+ rm -Rf "${_dl}_extracted" || $err "!rm ${_ul}_extracted. $dontflash"
e "$_dest" f && return 0
- mkdir -p "${_dest%/*}" || $err "mkdirs: !mkdir -p ${_dest%/*}"
+ mkdir -p "${_dest%/*}" || \
+ $err "mkdirs: !mkdir -p ${_dest%/*} - $dontflash"
remkdir "$appdir"; extract_archive "$_dl" "$appdir" "$dl_type" || \
- [ "$dl_type" = "e6400vga" ] || $err "mkd $_dest $dl_type: !extract"
+ [ "$dl_type" = "e6400vga" ] || \
+ $err "mkd $_dest $dl_type: !extract. $dontflash"
eval "extract_$dl_type"; set -u -e
- e "$_dest" f missing && $err "!extract_$dl_type"; :
+ e "$_dest" f missing && $err "!extract_$dl_type. $dontflash"; :
}
extract_intel_me()
{
- e "$mecleaner" f not && $err "$cbdir: me_cleaner missing"
+ e "$mecleaner" f not && $err "$cbdir: me_cleaner missing. $dontflash"
cdir="$PWD/$appdir"
_me="$PWD/$_dest"
@@ -146,7 +153,7 @@ extract_intel_me()
if [ "$ME11bootguard" = "y" ]; then
apply_me11_deguard_mod
else
- mv "$_metmp" "$_me" || $err "!mv $_metmp" "$_me"
+ mv "$_metmp" "$_me" || $err "!mv $_metmp $_me - $dontflash"
fi
}
@@ -157,12 +164,13 @@ extract_intel_me_bruteforce()
e "$_metmp" f && return 0
[ -z "$sdir" ] && sdir="$(mktemp -d)"
- mkdir -p "$sdir" || $err "extract_intel_me: !mkdir -p \"$sdir\""
+ mkdir -p "$sdir" || \
+ $err "extract_intel_me: !mkdir -p \"$sdir\" - $dontflash"
set +u +e
(
[ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}"
- cd "$cdir" || $err "extract_intel_me: !cd \"$cdir\""
+ cd "$cdir" || $err "extract_intel_me: !cd \"$cdir\" - $dontflash"
for i in *; do
[ -f "$_metmp" ] && break
[ -L "$i" ] && continue
@@ -184,7 +192,7 @@ extract_intel_me_bruteforce()
cd "$cdir" || :
done
)
- rm -Rf "$sdir" || $err "extract_intel_me: !rm -Rf $sdir"
+ rm -Rf "$sdir" || $err "extract_intel_me: !rm -Rf $sdir - $dontflash"
}
apply_me11_deguard_mod()
@@ -195,8 +203,8 @@ apply_me11_deguard_mod()
--version "$ME11version" \
--pch "$ME11pch" --sku "$ME11sku" --fake-fpfs data/fpfs/zero \
--input "$_metmp" --output "$_me" || \
- $err "Error running deguard for $_me"
- ) || $err "Error running deguard for $_me"
+ $err "Error running deguard for $_me - $dontflash"
+ ) || $err "Error running deguard for $_me - $dontflash"
}
extract_archive()
@@ -212,7 +220,7 @@ extract_archive()
"$1" -o"$2" || unar "$1" -o "$2" || unzip "$1" -d "$2" || return 1
[ ! -d "${_dl}_extracted" ] || cp -R "${_dl}_extracted" "$2" || \
- $err "!mv '${_dl}_extracted' '$2'"; :
+ $err "!mv '${_dl}_extracted' '$2' - $dontflash"; :
}
decat_fspfd()
@@ -222,27 +230,34 @@ decat_fspfd()
_fspsplit="$cbdir/3rdparty/fsp/Tools/SplitFspBin.py"
$python "$_fspsplit" split -f "$_fspfd" -o "$_fspdir" -n "Fsp.fd" || \
- $err "decat_fspfd '$1' '$2': Cannot de-concatenate"; :
+ $err "decat_fspfd '$1' '$2': Can't de-concatenate; $dontflash"; :
}
extract_kbc1126ec()
{
- e "$kbc1126_ec_dump" f missing && $err "$cbdir: kbc1126 util missing"
+ e "$kbc1126_ec_dump" f missing && \
+ $err "$cbdir: kbc1126 util missing - $dontflash"
(
x_ cd "$appdir/"; mv Rompaq/68*.BIN ec.bin || :
if [ ! -f "ec.bin" ]; then
unar -D ROM.CAB Rom.bin || unar -D Rom.CAB Rom.bin || \
- unar -D 68*.CAB Rom.bin || $err "can't extract Rom.bin"
+ unar -D 68*.CAB Rom.bin || \
+ $err "can't extract Rom.bin - $dontflash"
x_ mv Rom.bin ec.bin
fi
- [ -f ec.bin ] || $err "extract_kbc1126_ec $board: can't extract"
- "$kbc1126_ec_dump" ec.bin || $err "!1126ec $board extract ecfw"
- ) || $err "can't extract kbc1126 ec firmware"
-
- e "$appdir/ec.bin.fw1" f not && $err "$board: kbc1126ec fetch failed"
- e "$appdir/ec.bin.fw2" f not && $err "$board: kbc1126ec fetch failed"
-
- cp "$appdir/"ec.bin.fw* "${_dest%/*}/" || $err "!cp 1126ec $_dest"
+ [ -f ec.bin ] || \
+ $err "extract_kbc1126_ec $board: can't extract - $dontflash"
+ "$kbc1126_ec_dump" ec.bin || \
+ $err "!1126ec $board extract ecfw - $dontflash"
+ ) || $err "can't extract kbc1126 ec firmware - $dontflash"
+
+ e "$appdir/ec.bin.fw1" f not && \
+ $err "$board: kbc1126ec fetch failed - $dontflash"
+ e "$appdir/ec.bin.fw2" f not && \
+ $err "$board: kbc1126ec fetch failed - $dontflash"
+
+ cp "$appdir/"ec.bin.fw* "${_dest%/*}/" || \
+ $err "!cp 1126ec $_dest - $dontflash"; :
}
extract_e6400vga()
@@ -252,11 +267,12 @@ extract_e6400vga()
tail -c +$E6400_VGA_offset "$_dl" | gunzip > "$appdir/bios.bin" || :
(
x_ cd "$appdir"
- [ -f "bios.bin" ] || $err "extract_e6400vga: can't extract bios.bin"
+ [ -f "bios.bin" ] || \
+ $err "extract_e6400vga: can't extract bios.bin - $dontflash"
"$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n"
- ) || $err "can't extract e6400 vga rom"
+ ) || $err "can't extract e6400 vga rom - $dontflosh"
cp "$appdir/$E6400_VGA_romname" "$_dest" || \
- $err "extract_e6400vga $board: can't copy vga rom to $_dest"
+ $err "extract_e6400vga $board: can't cp $_dest - $dontflash"; :
}
extract_sch5545ec()
@@ -268,8 +284,9 @@ extract_sch5545ec()
_sch5545ec_fw="$_sch5545ec_fw/54 D386BEB8-4B54-4E69-94F5-06091F67E0D3"
_sch5545ec_fw="$_sch5545ec_fw/0 Raw section/body.bin" # <-- this!
- "$uefiextract" "$_bios" || $err "sch5545 !extract"
- cp "$_sch5545ec_fw" "$_dest" || $err "$_dest: !sch5545 copy"
+ "$uefiextract" "$_bios" || $err "sch5545 !extract - $dontflash"
+ cp "$_sch5545ec_fw" "$_dest" || \
+ $err "$_dest: !sch5545 copy - $dontflash"; :
}
# Lenovo ThunderBolt firmware updates:
@@ -280,17 +297,18 @@ extract_tbfw()
x_ mkdir -p tmp
x_ rm -f tmp/tb.bin
find "$appdir" -type f -name "TBT.bin" > "tmp/tb.txt" || \
- $err "extract_tbfw $_dest: Can't extract TBT.bin"
+ $err "extract_tbfw $_dest: Can't extract TBT.bin - $dontflash"
while read -r f; do
[ -f "$f" ] || continue
[ -L "$f" ] && continue
cp "$f" "tmp/tb.bin" || \
- $err "extract_tbfw $_dest: Can't copy TBT.bin"
+ $err "extract_tbfw $_dest: Can't copy TBT.bin - $dontflash"
break
done < "tmp/tb.txt"
dd if=/dev/null of=tmp/tb.bin bs=1 seek=$TBFW_size || \
- $err "extract_tbfw $_dest: Can't pad TBT.bin"
- cp "tmp/tb.bin" "$_dest" || $err "extract_tbfw $_dest: copy error"; :
+ $err "extract_tbfw $_dest: Can't pad TBT.bin - $dontflash"
+ cp "tmp/tb.bin" "$_dest" || \
+ $err "extract_tbfw $_dest: copy error - $dontflash "; :
}
extract_fspm()
@@ -307,69 +325,79 @@ extract_fsps()
copy_fsp()
{
cp "$appdir/Fsp_$1.fd" "$_dest" || \
- $err "copy_fsp: Can't copy $1 to $_dest"; :
+ $err "copy_fsp: Can't copy $1 to $_dest - $dontflash"; :
}
-vendor_inject()
+fail_inject()
{
- set +u +e; [ $# -lt 1 ] && $err "No options specified."
- [ "$1" = "listboards" ] && eval "ls -1 config/coreboot || :; return 0"
-
- archive="$1"; while getopts n:r:b:m: option; do
- case "$option" in
- n) nukemode="$OPTARG" ;;
- r) rom="$OPTARG" ;;
- b) board="$OPTARG" ;;
- m) new_mac="$OPTARG"; chkvars new_mac ;;
- *) : ;;
- esac
- done
-
- check_board || return 0
- [ "$nukemode" = "nuke" ] || x_ ./mk download $board
- if [ "$vrelease" = "y" ]; then
- patch_release_roms
- printf "\nPatched images saved to bin/release/%s/\n" \
- "$board"
- else
- patch_rom "$rom" || :
- fi; :
+ [ -L "$tmpromdel" ] || [ ! -d "$tmpromdel" ] || \
+ rm -Rf "$tmpromdel" || :
+ printf "\n\n%s\n\n" "$dontflash" 1>&2
+ printf "WARNING: File '%s' was NOT modified.\n\n" "$archive" 1>&2
+ printf "Please MAKE SURE vendor files are inserted before flashing\n\n"
+ fail "$1"
}
-check_board()
+vendor_inject()
{
- failcheck="y" && check_release "$archive" && failcheck="n"
- if [ "$failcheck" = "y" ]; then
- [ -f "$rom" ] || $err "check_board \"$rom\": invalid path"
- [ -z "${rom+x}" ] && $err "check_board: no rom specified"
- [ -n "${board+x}" ] || board="$(detect_board "$rom")"
+ _olderr="$err"
+ err="fail_inject"
+ remkdir "$tmpromdel"
+
+ set +u +e; [ $# -lt 1 ] && $err "No options specified. - $dontflash"
+ eval `setvars "" nukemode new_mac xchanged`
+
+ archive="$1";
+ [ $# -gt 1 ] && case "$2" in
+ nuke) nukemode="nuke" ;;
+ setmac)
+ new_mac="??:??:??:??:??:??"
+ [ $# -gt 2 ] && new_mac="$3" ;;
+ *) $err "Unrecognised inject mode: '$2'"
+ esac
+
+ check_release "$archive" || \
+ $err "You must run this script on a release archive. - $dontflash"
+ if readcfg; then
+ [ "$nukemode" = "nuke" ] || x_ ./mk download $board
+ patch_release_roms
else
- vrelease="y"; board="$(detect_board "$archive")"
+ printf "Tarball '%s' (board '%s) doesn't need vendorfiles.\n" \
+ "$archive" "$board"
+ err="$_olderr"
+ return 0
fi
- readcfg || return 1; return 0
+
+ xtype="patched" && [ "$nukemode" = "nuke" ] && xtype="nuked"
+ [ "$xchanged" = "y" ] || \
+ printf "\nRelease archive '%s' was not modified.\n" "$archive"
+ [ "$xchanged" = "y" ] && \
+ printf "\nRelease archive '%s' successfully %s.\n" \
+ "$archive" "$xtype"
+ [ "$xchanged" = "y" ] && [ "$nukemode" = "nuke" ] && \
+ printf "!!!WARNING!!! -> Vendor files removed. DO NOT FLASH.\n"
+ err="$_olderr"
+ return 0
}
check_release()
{
+ [ -L "$archive" ] && \
+ $err "'$archive' is a symlink, not a file - $dontflash"
[ -f "$archive" ] || return 1
- [ "${archive##*.}" = "xz" ] || return 1
- printf "%s\n" "Release archive $archive detected"
-}
-
-# This function tries to determine the board from the filename of the rom.
-# It will only succeed if the filename is not changed from the build/download
-detect_board()
-{
- path="$1"; filename="$(basename "$path")"
- case "$filename" in
- grub_*|seagrub_*|custom_*)
- board="$(echo "$filename" | cut -d '_' -f2-3)" ;;
- seabios_withgrub_*)
- board="$(echo "$filename" | cut -d '_' -f3-4)" ;;
- *.tar.xz) _stripped_prefix="${filename#*_}"
+ archivename="`basename "$archive"`"
+ [ -z "$archivename" ] && \
+ $err "Cannot determine archive file name - $dontflash"
+
+ case "$archivename" in
+ *_src.tar.xz)
+ $err "'$archive' is a src archive, silly!" ;;
+ grub_*|seagrub_*|custom_*|seauboot_*|seabios_withgrub_*)
+ return 1 ;;
+ *.tar.xz) _stripped_prefix="${archivename#*_}"
board="${_stripped_prefix%.tar.xz}" ;;
- *) $err "detect_board $filename: could not detect board type"
- esac; printf "%s\n" "$board"
+ *) $err "'$archive': could not detect board type - $dontflash"
+ esac; :
}
readcfg()
@@ -383,6 +411,7 @@ readcfg()
cbdir="src/coreboot/$tree"
cbfstool="elf/cbfstool/$tree/cbfstool"
+ rmodtool="elf/cbfstool/$tree/rmodtool"
mecleaner="$PWD/$cbdir/util/me_cleaner/me_cleaner.py"
kbc1126_ec_dump="$PWD/$cbdir/util/kbc1126/kbc1126_ec_dump"
cbfstool="elf/cbfstool/$tree/cbfstool"
@@ -394,41 +423,144 @@ readcfg()
patch_release_roms()
{
- remkdir "tmp/romdir"; tar -xf "$archive" -C "tmp/romdir" || \
- $err "patch_release_roms: !tar -xf \"$archive\" -C \"tmp/romdir\""
-
- for x in "tmp/romdir/bin/"*/*.rom ; do
- patch_rom "$x" || return 0
+ has_hashes="n"
+
+ tmpromdir="tmp/DO_NOT_FLASH/bin/$board"
+ remkdir "${tmpromdir%"/bin/$board"}"
+ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}" || \
+ $err "Can't extract '$archive'"
+
+ for _hashes in $hashfiles; do
+ [ -L "$tmpromdir/$_hashes" ] && \
+ $err "'$archive' -> the hashfile is a symlink. $dontflash"
+ [ -f "$tmpromdir/$_hashes" ] && has_hashes="y" && \
+ hashfile="$_hashes" && break; :
done
- (
- cd "tmp/romdir/bin/"* || $err "patch roms: !cd tmp/romdir/bin/*"
+ x_ mkdir -p "tmp"; [ -L "tmp/rom.list" ] && \
+ $err "'$archive' -> tmp/rom.list is a symlink - $dontflash"
+ x_ rm -f "tmp/rom.list" "tmp/zero.1b"
+ x_ dd if=/dev/zero of=tmp/zero.1b bs=1 count=1
+
+ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" > "tmp/rom.list" \
+ || $err "'$archive' -> Can't make tmp/rom.list - $dontflash"
+
+ if readkconfig; then
+ while read -r _xrom ; do
+ process_release_rom "$_xrom" || break
+ done < "tmp/rom.list"
+ rm -f "$tmpromdir/README.md" || :
+ [ "$nukemode" != "nuke" ] || \
+ printf "Make sure you inserted vendor files: %s\n" \
+ "$vguide" > "$tmpromdir/README.md" || :
+ else
+ printf "Skipping vendorfiles on '$archive'"
+ fi
+ (
+ cd "$tmpromdir" || $err "patch '$archive': can't cd $tmpromdir"
# NOTE: For compatibility with older rom releases, defer to sha1
- [ "$verify" != "y" ] || [ "$nukemode" = "nuke" ] || \
- sha512sum --status -c vendorhashes || \
- sha1sum --status -c vendorhashes || sha512sum --status -c \
- blobhashes || sha1sum --status -c blobhashes || \
- $err "patch_release_roms: ROMs did not match expected hashes"
- ) || $err "can't verify vendor hashes"
-
- [ -n "$new_mac" ] && for x in "tmp/romdir/bin/"*/*.rom ; do
- [ -f "$x" ] && modify_gbe "$x"
- done
+ if [ "$has_hashes" = "y" ] && [ "$nukemode" != "nuke" ]; then
+ sha512sum --status -c "$hashfile" || \
+ sha1sum --status -c "$hashfile" || \
+ $err "'$archive' -> Can't verify vendor hashes. $dontflash"
+ rm -f "$hashfile" || \
+ $err "$archive: Can't rm hashfile. $dontflash"
+ fi
+ ) || $err "'$archive' -> Can't verify vendor hashes. $dontflash"
+
+ if [ -n "$new_mac" ]; then
+ if ! modify_mac_addresses; then
+ printf "\nNo GbE region defined for '$board'\n" \
+ 1>&2
+ printf "Therefore, changing the MAC is impossible.\n" \
+ 1>&2
+ printf "This board probably lacks Intel ethernet.\n" \
+ 1>&2
+ fi
+ fi
- x_ mkdir -p bin/release
- mv tmp/romdir/bin/* bin/release/ || $err "$board: !mv release roms"
+ [ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || :
+ [ "$xchanged" = "y" ] || return 0
+ (
+ cd "${tmpromdir%"/bin/$board"}" || \
+ $err "Can't cd '${tmpromdir%"/bin/$board"}'; $dontflash"
+ # ../../ is the root of lbmk
+ mkrom_tarball "bin/$board"
+ ) || $err "Cannot re-generate '$archive' - $dontflash"
+
+ mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \
+ "$archive" || \
+ $err "'$archive' -> Cannot overwrite - $dontflash"; :
+}
+
+process_release_rom()
+{
+ _xrom="$1"; _xromname="${1##*/}"
+ [ -L "$_xrom" ] && \
+ $err "$archive -> '${_xrom#"tmp/DO_NOT_FLASH/"}' is a symlink"
+ [ -f "$_xrom" ] || return 0
+
+ [ -z "${_xromname#"$vfix"}" ] && \
+ $err "'$_xromname'->'"${_xromname#"$vfix"}"' empty. $dontflash"
+ # Remove the prefix and 1-byte pad
+ if [ "$nukemode" != "nuke" ] && \
+ [ "${_xromname#"$vfix"}" != "$_xromname" ]; then
+ _xromnew="${_xrom%/*}/${_xromname#"$vfix"}"
+
+ # Remove the 1-byte padding
+ stat -c '%s' "$_xrom" > "tmp/rom.size" || \
+ $err "$_xrom: Can't get rom size. $dontflash"
+ read -r xromsize < "tmp/rom.size" || \
+ $err "$_xrom: Can't read rom size. $dontflash"
+
+ expr "X$xromsize" : "X-\{0,1\}[0123456789][0123456789]*$" \
+ 1>/dev/null 2>/dev/null || $err "$_xrom size non-integer"
+ [ $xromsize -lt 2 ] && $err \
+ "$_xrom: Will not create empty file. $dontflash"
+
+ # TODO: check whether the size would be a multiple of 64KB
+ # the smallest rom images we do are 512kb
+ xromsize="`expr $xromsize - 1`"
+ [ $xromsize -lt 524288 ] && \
+ $err "$_xrom size too small; likely not a rom. $dontflash"
+
+ dd if="$_xrom" of="$_xromnew" bs=$xromsize count=1 || \
+ $err "$_xrom: Can't resize. $dontflash"
+ rm -f "$_xrom" || $err "Can't rm $_xrom - $dontflash"
+
+ _xrom="$_xromnew"
+ fi
+
+ [ "$nukemode" = "nuke" ] && \
+ mksha512sum "$_xrom" "vendorhashes"
+
+ patch_rom "$_xrom" || return 1 # if break return, can still change MAC
+ [ "$nukemode" != "nuke" ] && return 0
+
+ # Rename the file, prefixing a warning saying not to flash
+ # the target image, which now has vendor files removed. Also
+ # pad it so that flashprog returns an error if the user tries
+ # to flash it, due to mismatching ROM size vs chip size
+ cat "$_xrom" tmp/zero.1b > "${_xrom%/*}/$vfix${_xrom##*/}" || \
+ $err "'$archive' -> can't pad/rename '$_xrom'. $dontflash"
+ rm -f "$_xrom" || $err "'$archive' -> can't rm '$_xrom'. $dontflash"
}
patch_rom()
{
rom="$1"
- readkconfig || return 1
- [ "$CONFIG_HAVE_MRC" = "y" ] && inject "mrc.bin" "$CONFIG_MRC_FILE" \
- "mrc" "0xfffa0000"
+ if [ "$has_hashes" != "y" ] && [ "$nukemode" != "nuke" ]; then
+ printf "inject: '%s' has no hash file. Skipping.\n" \
+ "$archive" 1>&2
+ return 1
+ fi
+
[ -n "$CONFIG_HAVE_REFCODE_BLOB" ] && inject "fallback/refcode" \
"$CONFIG_REFCODE_BLOB_FILE" "stage"
+ [ "$CONFIG_HAVE_MRC" = "y" ] && inject "mrc.bin" "$CONFIG_MRC_FILE" \
+ "mrc" "0xfffa0000"
[ "$CONFIG_HAVE_ME_BIN" = "y" ] && inject IFD "$CONFIG_ME_BIN_PATH" me
[ "$CONFIG_KBC1126_FIRMWARE" = "y" ] && inject ecfw1.bin \
"$CONFIG_KBC1126_FW1" raw "$CONFIG_KBC1126_FW1_OFFSET" && inject \
@@ -455,15 +587,17 @@ patch_rom()
[ -z "$CONFIG_FSP_USE_REPO" ] && [ -z "$CONFIG_FSP_FULL_FD" ] && \
[ -n "$CONFIG_FSP_S_FILE" ] && \
inject "$CONFIG_FSP_S_CBFS" "$CONFIG_FSP_S_FILE" fsp
- [ -n "$new_mac" ] && [ "$vrelease" != "y" ] && modify_gbe "$rom"
+ # TODO: modify gbe *after checksum verification only*
+ # TODO: insert default gbe if doing -n nuke
printf "ROM image successfully patched: %s\n" "$rom"
+ xchanged="y"
}
inject()
{
[ $# -lt 3 ] && $err "$@, $rom: usage: inject name path type (offset)"
- [ "$2" = "/dev/null" ] && return 0; verify="y"
+ [ "$2" = "/dev/null" ] && return 0
eval `setvars "" cbfsname _dest _t _offset`
cbfsname="$1"; _dest="${2##*../}"; _t="$3"
@@ -482,26 +616,56 @@ inject()
$_t:$_dest "$rom" -O "$rom" || \
$err "failed: inject '$_t' '$_dest' on '$rom'"
[ "$nukemode" != "nuke" ] || "$ifdtool" $ifdprefix --nuke $_t \
- "$rom" -O "$rom" || $err "$rom: !nuke IFD/$_t"; return 0
+ "$rom" -O "$rom" || $err "$rom: !nuke IFD/$_t"
+ xchanged="y"
+ return 0
elif [ "$nukemode" = "nuke" ]; then
"$cbfstool" "$rom" remove -n "$cbfsname" || \
- $err "inject $rom: can't remove $cbfsname"; return 0
+ $err "inject $rom: can't remove $cbfsname"
+ xchanged="y"
+ return 0
fi
- [ "$_t" != "stage" ] || "$cbfstool" "$rom" add-stage -f \
- "$_dest" -n "$cbfsname" -t stage -c lzma || $err "$rom: !add ref"
- [ "$_t" = "stage" ] || "$cbfstool" "$rom" add -f "$_dest" \
- -n "$cbfsname" -t $_t $_offset || $err "$rom !add $_t ($_dest)"; :
+ if [ "$_t" = "stage" ]; then # the only stage we handle is refcode
+ x_ mkdir -p tmp; x_ rm -f "tmp/refcode"
+ "$rmodtool" -i "$_dest" -o "tmp/refcode" || "!reloc refcode"
+ "$cbfstool" "$rom" add-stage -f "tmp/refcode" -n "$cbfsname" \
+ -t stage || $err "$rom: !add ref"
+ else
+ "$cbfstool" "$rom" add -f "$_dest" -n "$cbfsname" \
+ -t $_t $_offset || $err "$rom !add $_t ($_dest)"
+ fi; xchanged="y"; :
}
-modify_gbe()
+modify_mac_addresses()
{
- chkvars CONFIG_GBE_BIN_PATH
+ [ "$nukemode" = "nuke" ] && \
+ $err "Cannot modify MAC addresses while nuking vendor files"
+ # chkvars CONFIG_GBE_BIN_PATH
+ [ -n "$CONFIG_GBE_BIN_PATH" ] || return 1
e "${CONFIG_GBE_BIN_PATH##*../}" f n && $err "missing gbe file"
- x_ make -C util/nvmutil
- x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "$TMPDIR/gbe"
- x_ "util/nvmutil/nvm" "$TMPDIR/gbe" setmac $new_mac
- "$ifdtool" $ifdprefix -i GbE:"$TMPDIR/gbe" "$1" -O "$1" || \
- $err "Cannot insert modified GbE region into target image."
+ x_ make -C util/nvmutil
+ x_ mkdir -p tmp
+ [ -L "tmp/gbe" ] && $err "tmp/gbe exists but is a symlink"
+ [ -d "tmp/gbe" ] && $err "tmp/gbe exists but is a directory"
+ if [ -e "tmp/gbe" ]; then
+ [ -f "tmp/gbe" ] || $err "tmp/gbe exists and is not a file"
+ fi
+ x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "tmp/gbe"
+
+ x_ "util/nvmutil/nvm" "tmp/gbe" setmac "$new_mac"
+
+ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom" > "tmp/rom.list" \
+ || $err "'$archive' -> Can't make tmp/rom.list - $dontflash"
+
+ while read -r _xrom; do
+ [ -L "$_xrom" ] && continue
+ [ -f "$_xrom" ] || continue
+ "$ifdtool" $ifdprefix -i GbE:"tmp/gbe" "$_xrom" -O \
+ "$_xrom" || $err "'$_xrom': Can't insert new GbE file"
+ xchanged="y"
+ done < "tmp/rom.list"
+ printf "\nThe following GbE NVM words were written in '$archive':\n"
+ x_ util/nvmutil/nvm tmp/gbe dump
}
diff --git a/script/trees b/script/trees
index 698d2b34..a3ea1e6f 100755
--- a/script/trees
+++ b/script/trees
@@ -14,9 +14,10 @@ XBMKPATH="$PATH"
eval `setvars "" xarch srcdir premake cmakedir xlang mode makeargs elfdir cmd \
project target target_dir targets xtree _f release bootstrapargs mkhelper \
autoconfargs listfile autogenargs btype tree rev tree_depend build_depend \
- defconfig postmake mkhelpercfg dry dest_dir mdir cleanargs`; badhash="n"
+ defconfig postmake mkhelpercfg dry dest_dir mdir cleanargs gccver gccfull \
+ gnatver gnatfull gccdir gnatdir`; badhash="n"
-main()
+tree()
{
while getopts f:b:m:u:c:x:s:l:n:d: option; do
[ -n "$_f" ] && $err "only one flag is permitted"
@@ -205,13 +206,72 @@ check_cross_compiler()
xfix="${_xarch%-*}" && [ "$xfix" = "x86_64" ] && xfix="x64"
+ # match gnat-X to gcc
+ check_gnu_path gcc gnat || check_gnu_path gnat gcc || \
+ $err "Cannot match host GCC/GNAT versions"
+
# sometimes buildgcc fails for like no reason. try twice.
make -C "$cbdir" crossgcc-$xfix $xgccargs || \
make -C "$cbdir" crossgcc-$xfix $xgccargs || \
$err "!mkxgcc $project/$xtree '$xfix' '$xgccargs'"
+
+ # we only want to mess with hostcc to build xgcc
+ rm -f "$XBMK_CACHE/xbmkpath/"* || \
+ $err "Cannot clear xbmkpath/"; :
done; return 0
}
+# fix mismatching gcc/gnat versions on debian trixie/sid. as of december 2024,
+# trixie/sid had gnat-13 as gnat and gcc-14 as gcc, but has gnat-14 in apt. in
+# some cases, gcc 13+14 and gnat-13 are present; or gnat-14 and gcc-14, but
+# gnat in PATH never resolves to gnat-14, because gnat-14 was "experimental"
+check_gnu_path()
+{
+ [ $# -lt 2 ] && $err "check_gnu_path: Too few arguments"
+ [ "$1" = "$2" ] && $err "check_gnu_path: Both arguments identical"
+ for _gnuarg in 1 2; do
+ eval "[ \"\$$_gnuarg\" = \"gcc\" ] && continue"
+ eval "[ \"\$$_gnuarg\" = \"gnat\" ] && continue"
+ $err "check_gnu_path: Invalid argument \"$_gnuarg\""
+ done
+ command -v $1 1>/dev/null || $err "Host '$1' unavailable"
+
+ eval `setvars "" gccver gccfull gnatver gnatfull gccdir gnatdir`
+ gnu_setver "$1" "$1" || $err "Command '$1' unavailable."
+ gnu_setver "$2" "$2" || :
+
+ eval "[ -z \"\$$1ver\" ] && $err \"Cannot detect host '$1' version\""
+ [ "$gnatfull" = "$gccfull" ] && return 0
+
+ eval "$1dir="$(dirname "$(command -v $1)")""
+ eval "_gnudir=\"\$$1dir\"; _gnuver=\"\$$1ver\""
+ for _gnubin in "$_gnudir/$2-"*; do
+ [ -f "$_gnubin" ] || continue
+ [ "${_gnubin#"$_gnudir/$2-"}" = "$_gnuver" ] || continue
+ _gnuver="${_gnubin#"$_gnudir/$2-"}"; break
+ done
+ gnu_setver "$2" "$_gnudir/$2-$_gnuver" || return 1
+ [ "$gnatfull" = "$gccfull" ] || return 1
+
+ (
+ rm -f "$XBMK_CACHE/xbmkpath/"* || $err "Cannot clear xbmkpath/"
+ cd "$XBMK_CACHE/xbmkpath" || $err "Can't cd to xbmkpath/"
+ for _gnubin in "$_gnudir/$2"*"-$_gnuver"; do
+ [ -e "$_gnubin" ] || continue; _gnuutil="${_gnubin##*/}"
+ x_ ln -s "$_gnubin" "${_gnuutil%"-$_gnuver"}"
+ done
+ ) || $err "Cannot create $2-$_gnuver link in $_gnudir"; :
+}
+
+gnu_setver()
+{
+ eval "$2 --version 1>/dev/null 2>/dev/null || return 1"
+ eval "$1ver=\"`$2 --version 2>/dev/null | head -n1`\""
+ eval "$1ver=\"\${$1ver##* }\""
+ eval "$1full=\"\$$1ver\""
+ eval "$1ver=\"\${$1ver%%.*}\""; :
+}
+
check_defconfig()
{
[ -f "$defconfig" ] || $dry $err "$project/$target: missing defconfig"
@@ -243,7 +303,8 @@ handle_makefile()
$dry x_ cp "$srcdir/$_copy" "$defconfig"
[ -e "$srcdir/.git" ] && [ "$project" = "u-boot" ] && \
- [ "$mode" = "distclean" ] && $dry x_ git -C "$srcdir" $cleanargs clean -fdx; :
+ [ "$mode" = "distclean" ] && \
+ $dry x_ git -C "$srcdir" $cleanargs clean -fdx; :
}
run_make_command()
@@ -291,6 +352,6 @@ copy_elf()
done < "$listfile"; x_ make clean -C "$srcdir" $cleanargs
}
-main $@ || exit 0
+tree "$@" || exit 0
. "$mkhelpercfg"
$cmd
diff --git a/update b/update
new file mode 120000
index 00000000..c795b054
--- /dev/null
+++ b/update
@@ -0,0 +1 @@
+build \ No newline at end of file
diff --git a/util/nvmutil/nvmutil.c b/util/nvmutil/nvmutil.c
index 35abbfae..f95df4cf 100644
--- a/util/nvmutil/nvmutil.c
+++ b/util/nvmutil/nvmutil.c
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: MIT */
-/* SPDX-FileCopyrightText: 2022, 2023 Leah Rowe <leah@libreboot.org> */
-/* SPDX-FileCopyrightText: 2023 Riku Viitanen <riku.viitanen@protonmail.com> */
+/* Copyright (c) 2022-2025 Leah Rowe <leah@libreboot.org> */
+/* Copyright (c) 2023 Riku Viitanen <riku.viitanen@protonmail.com> */
#include <sys/stat.h>
@@ -14,22 +14,22 @@
#include <string.h>
#include <unistd.h>
-void cmd_setchecksum(void), cmd_brick(void), cmd_copy(void), writeGbeFile(void),
- cmd_dump(void), cmd_setmac(void), readGbeFile(void), showmac(int partnum),
- hexdump(int partnum), handle_endianness(int partnum), openFiles(const char *path);
-int macAddress(const char *strMac, uint16_t *mac), validChecksum(int partnum);
+void cmd_setchecksum(void), cmd_brick(void), swap(int partnum), writeGbe(void),
+ cmd_dump(void), cmd_setmac(void), readGbe(void), cmd_copy(void),
+ macf(int partnum), hexdump(int partnum), openFiles(const char *path);
+int macAddress(const char *strMac, uint16_t *mac), goodChecksum(int partnum);
uint8_t hextonum(char chs), rhex(void);
#define COMMAND argv[2]
#define MAC_ADDRESS argv[3]
-#define PARTNUM argv[3]
+#define PARTN argv[3]
#define SIZE_4KB 0x1000
uint16_t buf16[SIZE_4KB], mac[3] = {0, 0, 0};
uint8_t *buf = (uint8_t *) &buf16;
size_t nf = 128, gbe[2];
-uint8_t nvmPartModified[2] = {0, 0}, skipread[2] = {0, 0};
-int e = 1, flags = O_RDWR, rfd, fd, part, gbeFileModified = 0;
+uint8_t nvmPartChanged[2] = {0, 0}, skipread[2] = {0, 0};
+int e = 1, flags = O_RDWR, rfd, fd, part, gbeFileChanged = 0;
const char *strMac = NULL, *strRMac = "??:??:??:??:??:??", *filename = NULL;
@@ -41,7 +41,7 @@ typedef struct op {
op_t op[] = {
{ .str = "dump", .cmd = cmd_dump, .args = 3},
{ .str = "setmac", .cmd = cmd_setmac, .args = 3},
-{ .str = "swap", .cmd = writeGbeFile, .args = 3},
+{ .str = "swap", .cmd = writeGbe, .args = 3},
{ .str = "copy", .cmd = cmd_copy, .args = 4},
{ .str = "brick", .cmd = cmd_brick, .args = 4},
{ .str = "setchecksum", .cmd = cmd_setchecksum, .args = 4},
@@ -56,8 +56,8 @@ void (*cmd)(void) = NULL;
if (fstat(f, &st) == -1) err(ERR(), "%s", l)
#define word(pos16, partnum) buf16[pos16 + (partnum << 11)]
-#define setWord(pos16, p, val16) if ((gbeFileModified = 1) && \
- word(pos16, p) != val16) nvmPartModified[p] = 1 | (word(pos16, p) = val16)
+#define setWord(pos16, p, val16) if ((gbeFileChanged = 1) && \
+ word(pos16, p) != val16) nvmPartChanged[p] = 1 | (word(pos16, p) = val16)
int
main(int argc, char *argv[])
@@ -76,9 +76,13 @@ main(int argc, char *argv[])
filename = argv[1];
#ifdef __OpenBSD__
err_if(unveil("/dev/urandom", "r") == -1);
- err_if(unveil(filename, flags == O_RDONLY ? "r" : "rw") == -1);
- err_if(pledge(flags == O_RDONLY ? "stdio rpath" : "stdio rpath wpath",
- NULL) == -1);
+ if (flags == O_RDONLY) {
+ err_if(unveil(filename, "r") == -1);
+ err_if(pledge("stdio rpath", NULL) == -1);
+ } else {
+ err_if(unveil(filename, "rw") == -1);
+ err_if(pledge("stdio rpath wpath", NULL) == -1);
+ }
#endif
openFiles(filename);
#ifdef __OpenBSD__
@@ -92,15 +96,15 @@ main(int argc, char *argv[])
if (cmd == cmd_setmac)
strMac = (argc > 3) ? MAC_ADDRESS : strRMac;
else if ((cmd != NULL) && (argc > 3))
- err_if((errno = (!((part = PARTNUM[0] - '0') == 0 || part == 1))
- || PARTNUM[1] ? EINVAL : errno));
+ err_if((errno = (!((part = PARTN[0] - '0') == 0 || part == 1))
+ || PARTN[1] ? EINVAL : errno));
err_if((errno = (cmd == NULL) ? EINVAL : errno));
- readGbeFile();
+ readGbe();
(*cmd)();
- if ((gbeFileModified) && (flags != O_RDONLY) && (cmd != writeGbeFile))
- writeGbeFile();
+ if ((gbeFileChanged) && (flags != O_RDONLY) && (cmd != writeGbe))
+ writeGbe();
err_if((errno != 0) && (cmd != cmd_dump));
return errno;
}
@@ -117,9 +121,9 @@ openFiles(const char *path)
}
void
-readGbeFile(void)
+readGbe(void)
{
- nf = ((cmd == writeGbeFile) || (cmd == cmd_copy)) ? SIZE_4KB : nf;
+ nf = ((cmd == writeGbe) || (cmd == cmd_copy)) ? SIZE_4KB : nf;
skipread[part ^ 1] = (cmd == cmd_copy) | (cmd == cmd_setchecksum)
| (cmd == cmd_brick);
gbe[1] = (gbe[0] = (size_t) buf) + SIZE_4KB;
@@ -127,7 +131,7 @@ readGbeFile(void)
if (skipread[p])
continue;
err_if(pread(fd, (uint8_t *) gbe[p], nf, p << 12) == -1);
- handle_endianness(p);
+ swap(p);
}
}
@@ -137,7 +141,7 @@ cmd_setmac(void)
if (macAddress(strMac, mac))
err(errno = ECANCELED, "Bad MAC address");
for (int partnum = 0; partnum < 2; partnum++) {
- if (!validChecksum(part = partnum))
+ if (!goodChecksum(part = partnum))
continue;
for (int w = 0; w < 3; w++)
setWord(w, partnum, mac[w]);
@@ -193,16 +197,16 @@ void
cmd_dump(void)
{
for (int partnum = 0, numInvalid = 0; partnum < 2; partnum++) {
- if (!validChecksum(partnum))
+ if (!goodChecksum(partnum))
++numInvalid;
printf("MAC (part %d): ", partnum);
- showmac(partnum), hexdump(partnum);
+ macf(partnum), hexdump(partnum);
errno = ((numInvalid < 2) && (partnum)) ? 0 : errno;
}
}
void
-showmac(int partnum)
+macf(int partnum)
{
for (int c = 0; c < 3; c++) {
uint16_t val16 = word(c, partnum);
@@ -235,19 +239,19 @@ cmd_setchecksum(void)
void
cmd_brick(void)
{
- if (validChecksum(part))
+ if (goodChecksum(part))
setWord(0x3F, part, ((word(0x3F, part)) ^ 0xFF));
}
void
cmd_copy(void)
{
- if ((gbeFileModified = nvmPartModified[part ^ 1] = validChecksum(part)))
+ if ((gbeFileChanged = nvmPartChanged[part ^ 1] = goodChecksum(part)))
gbe[part ^ 1] = gbe[part]; /* speedhack: copy ptr, not words */
}
int
-validChecksum(int partnum)
+goodChecksum(int partnum)
{
uint16_t total = 0;
for(int w = 0; w <= 0x3F; w++)
@@ -259,13 +263,13 @@ validChecksum(int partnum)
}
void
-writeGbeFile(void)
+writeGbe(void)
{
- err_if((cmd == writeGbeFile) && !(validChecksum(0) || validChecksum(1)));
- for (int p = 0, x = (cmd == writeGbeFile) ? 1 : 0; p < 2; p++) {
- if ((!nvmPartModified[p]) && (cmd != writeGbeFile))
+ err_if((cmd == writeGbe) && !(goodChecksum(0) || goodChecksum(1)));
+ for (int p = 0, x = (cmd == writeGbe) ? 1 : 0; p < 2; p++) {
+ if ((!nvmPartChanged[p]) && (cmd != writeGbe))
continue;
- handle_endianness(p^x);
+ swap(p^x);
err_if(pwrite(fd, (uint8_t *) gbe[p^x], nf, p << 12) == -1);
}
errno = 0;
@@ -273,9 +277,10 @@ writeGbeFile(void)
}
void
-handle_endianness(int partnum)
+swap(int partnum)
{
+ size_t w, x;
uint8_t *n = (uint8_t *) gbe[partnum];
- for (size_t w = nf * ((uint8_t *) &e)[0], x = 1; w < nf; w += 2, x += 2)
+ for (w = nf * ((uint8_t *) &e)[0], x = 1; w < nf; w += 2, x += 2)
n[w] ^= n[x], n[x] ^= n[w], n[w] ^= n[x];
}
diff --git a/vendor b/vendor
new file mode 120000
index 00000000..c795b054
--- /dev/null
+++ b/vendor
@@ -0,0 +1 @@
+build \ No newline at end of file