summaryrefslogtreecommitdiff
path: root/config/data
diff options
context:
space:
mode:
Diffstat (limited to 'config/data')
-rw-r--r--config/data/coreboot/0bin1 -> 0 bytes
-rw-r--r--config/data/coreboot/build.list2
-rw-r--r--config/data/coreboot/libreboot.bmpbin0 -> 200138 bytes
-rw-r--r--config/data/coreboot/mkhelper.cfg41
-rw-r--r--config/data/grub/bootorder1
-rw-r--r--config/data/grub/bootorder_uboot1
-rw-r--r--config/data/grub/cfg/default.config288
-rw-r--r--config/data/grub/cfg/xhci.config289
-rw-r--r--config/data/grub/keymap/dkqwerty.gkbbin0 -> 496 bytes
-rw-r--r--config/data/grub/keymap/noqwerty.gkbbin0 -> 508 bytes
-rw-r--r--config/data/grub/mkhelper.cfg11
-rw-r--r--[-rwxr-xr-x]config/data/grub/module/default20
-rwxr-xr-xconfig/data/grub/module/nvme158
-rwxr-xr-xconfig/data/grub/module/xhci19
-rw-r--r--config/data/libarchive/build.list3
-rw-r--r--config/data/pcsx-redux/mkhelper.cfg3
-rw-r--r--config/data/pico-serprog/mkhelper.cfg7
-rw-r--r--config/data/stm32-vserprog/mkhelper.cfg6
-rw-r--r--config/data/u-boot/build.list2
-rw-r--r--config/data/u-boot/mkhelper.cfg4
20 files changed, 663 insertions, 192 deletions
diff --git a/config/data/coreboot/0 b/config/data/coreboot/0
deleted file mode 100644
index f76dd238..00000000
--- a/config/data/coreboot/0
+++ /dev/null
Binary files differ
diff --git a/config/data/coreboot/build.list b/config/data/coreboot/build.list
new file mode 100644
index 00000000..55c2ee44
--- /dev/null
+++ b/config/data/coreboot/build.list
@@ -0,0 +1,2 @@
+build/coreboot.rom
+payloads/external/edk2/workspace/Build/UefiPayloadPkgX64/RELEASE_GCC/FV/UEFIPAYLOAD.fd
diff --git a/config/data/coreboot/libreboot.bmp b/config/data/coreboot/libreboot.bmp
new file mode 100644
index 00000000..adad7a9a
--- /dev/null
+++ b/config/data/coreboot/libreboot.bmp
Binary files differ
diff --git a/config/data/coreboot/mkhelper.cfg b/config/data/coreboot/mkhelper.cfg
index c993fbd4..3816b373 100644
--- a/config/data/coreboot/mkhelper.cfg
+++ b/config/data/coreboot/mkhelper.cfg
@@ -1,17 +1,36 @@
# SPDX-License-Identifier: GPL-3.0-or-later
+# can be overridden per-tree e.g. use mrchromebox
+url="https://github.com/coreboot/coreboot.git"
+bkup_url="https://review.coreboot.org/coreboot"
+
makeargs="UPDATED_SUBMODULES=1 CPUS=$XBMK_THREADS"
-build_depend="seabios/default grub/default memtest86plus u-boot/amd64coreboot"
+build_depend="seabios/build grub/default memtest86plus/default coreboot/edk2_mrchromebox"
+
+seavgabiosrom="elf/seabios/default/build/libgfxinit/vgabios.bin"
+
+payload_seabios="n"
+payload_memtest="n"
+payload_grub="n"
+
+initmode=""
+ubootelf=""
+grub_scan_disk=""
+uboot_config=""
+grubtree=""
+displaymode=""
+tmprom=""
+newrom=""
+payload_uboot="" # arm64 only. edk2 replaced it on x86
+payload_edk2=""
+cbfscfg=""
-seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin"
+premake="corebootpremake"
+mkhelper="$if_not_dry_build coreboot_pad_one_byte"
+postmake="$if_not_dry_build mkcorebootbin"
+cook_config="$if_not_dry_build cook_coreboot_config"
-pv="payload_uboot payload_seabios payload_memtest payload_grub"
-pv="$pv payload_uboot_i386 payload_uboot_amd64 payload_grubsea"
-v="initmode ubootelf grub_scan_disk uboot_config grubtree grubelf pname"
-v="$v displaymode tmprom newrom"
-eval `setvars "n" $pv`
-eval `setvars "" $v`
+# if mk_coreboot_with succeeds, this is set to "y"
+# and an error is shown if it's still n at the end.
+rom_prepared="n"
-premake="mkvendorfiles"
-mkhelper="mkcorebootbin"
-postmake="mkcoreboottar"
diff --git a/config/data/grub/bootorder b/config/data/grub/bootorder
deleted file mode 100644
index b33e1295..00000000
--- a/config/data/grub/bootorder
+++ /dev/null
@@ -1 +0,0 @@
-/rom@img/grub2
diff --git a/config/data/grub/bootorder_uboot b/config/data/grub/bootorder_uboot
deleted file mode 100644
index 80641a36..00000000
--- a/config/data/grub/bootorder_uboot
+++ /dev/null
@@ -1 +0,0 @@
-/rom@img/u-boot
diff --git a/config/data/grub/cfg/default.config b/config/data/grub/cfg/default.config
new file mode 100644
index 00000000..9060ca08
--- /dev/null
+++ b/config/data/grub/cfg/default.config
@@ -0,0 +1,288 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+# Copyright (C) 2014-2016,2020-2021,2023-2025 Leah Rowe <leah@libreboot.org>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
+
+set prefix=(memdisk)/boot/grub
+
+insmod at_keyboard
+insmod usb_keyboard
+insmod nativedisk
+insmod ehci
+insmod ohci
+insmod uhci
+insmod usb
+insmod usbms
+insmod regexp
+
+terminal_input --append at_keyboard
+terminal_input --append usb_keyboard
+terminal_output --append cbmemc
+
+# User interface overrides wherever "keystatus" is supported
+# Keep SHIFT key pressed before powering on to disable graphics
+if keystatus --shift; then
+ terminal_output --append vga_text
+else
+ gfxpayload=keep
+ terminal_output --append gfxterm
+
+ for dt in cbfsdisk memdisk; do
+ for it in png jpg; do
+ if [ -f (${dt})/background.${it} ]; then
+ insmod ${it}
+ background_image (${dt})/background.${it}
+ fi
+ done
+ done
+fi
+
+# Keep CTRL pressed to enable default serial terminal (COM1 or the like)
+if keystatus --ctrl; then
+ serial
+ terminal_input --append serial
+ terminal_output --append serial
+fi
+
+# Keep ALT pressed to enable spkmodem
+if keystatus --alt; then
+ terminal_output --append spkmodem
+fi
+
+
+set default="0"
+if [ -f (cbfsdisk)/timeout.cfg ]; then
+ source (cbfsdisk)/timeout.cfg
+else
+ set timeout=8
+fi
+set grub_scan_disk="nvme ahci ata"
+if [ -f (cbfsdisk)/scan.cfg ]; then
+ source (cbfsdisk)/scan.cfg
+fi
+
+if [ -f (cbfsdisk)/keymap.gkb ]; then
+ keymap (cbfsdisk)/keymap.gkb
+fi
+
+function really_try_user_config {
+ set root="${1}"
+
+ if [ -f /"${2}"/grub.cfg ]; then
+ unset superusers
+ configfile /"${2}"/grub.cfg
+ fi
+}
+
+function try_user_config {
+ # The @/... entries are for cases where the BTRFS filesystem is being used
+ for dir in grub boot/grub @/grub @/boot/grub grub2 boot/grub2 @/grub2 @/boot/grub2 boot @/boot; do
+ really_try_user_config "${1}" "${dir}"
+ done
+ for dir in ubuntu debian redhat; do
+ really_try_user_config "${1}" "EFI/${dir}"
+ done
+}
+function search_grub {
+ echo -n "Attempting to load grub.cfg from '${1}' devices"
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${1}" != "nvme" ]; then
+ try_user_config "(${1}${i},${part})"
+ else
+ # TODO: do we care about other namesapces
+ try_user_config "(nvme${i}n1,${part})"
+ fi
+ done
+ if [ "${1}" != "nvme" ]; then
+ # raw devices e.g. (ahci0) instead of (ahci0,1)
+ try_user_config "(${1}${i})"
+ else
+ # TODO: do we care about other namesapces
+ try_user_config "(nvme${i}n1)"
+ fi
+ done
+ echo # Insert newline
+}
+
+function try_isolinux_config {
+ set root="${1}"
+ for dir in '' /boot /EFI /@ /@/boot; do
+ if [ -f "${dir}"/isolinux/isolinux.cfg ]; then
+ syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg
+ elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then
+ syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg
+ elif [ -f "${dir}"/syslinux/extlinux.conf ]; then
+ syslinux_configfile -s "${dir}"/syslinux/extlinux.conf
+ elif [ -f "${dir}"/extlinux/extlinux.conf ]; then
+ syslinux_configfile -s "${dir}"/extlinux/extlinux.conf
+ fi
+ done
+}
+function search_isolinux {
+ echo "\nAttempting to parse iso/sys/extlinux config from '${1}' devices"
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${1}" != "nvme" ]; then
+ try_isolinux_config "(${1}${i},${part})"
+ else
+ # TODO: see above
+ try_isolinux_config "(nvme${i}n1,${part})"
+ fi
+ done
+ if [ "${1}" != "nvme" ]; then
+ # raw devices e.g. (usb0) instead of (usb0,1)
+ try_isolinux_config "(${1}${i})"
+ else
+ # TODO: do we care about other namesapces
+ try_isolinux_config "(nvme${i}n1)"
+ fi
+ done
+ echo # Insert newline
+}
+function try_bootcfg {
+ try_user_config "${1}"
+ try_isolinux_config "${1}"
+}
+function search_bootcfg {
+ search_grub "${1}"
+ search_isolinux "${1}"
+}
+menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' {
+
+ for grub_disk in ${grub_scan_disk}; do
+ search_bootcfg ${grub_disk}
+ done
+
+ # grub device enumeration is very slow, so checks are hardcoded
+
+ raidvol="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9"
+
+ # in practise, doing multiple redundant checks is perfectly fast
+ # TODO: optimize grub itself, and use */? here for everything
+
+ for vol in ${raidvol} ; do
+ try_bootcfg "${vol}"
+ done
+
+ unset bootdev
+ for grub_disk in ${grub_scan_disk}; do
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${grub_disk}" = "ahci" ]; then
+ bootdev="${bootdev} (ahci${i},${part})"
+ elif [ "${grub_disk}" = "ata" ]; then
+ bootdev="${bootdev} (ata${i},${part})"
+ elif [ "${grub_disk}" = "nvme" ]; then
+ # TODO: do we care about other namesapces
+ bootdev="${bootdev} (nvme${i}n1,${part})"
+ fi
+ done
+ done
+ done
+
+ set pager=0
+ echo -n "Attempting to unlock encrypted volumes"
+ for dev in ${bootdev} ${raidvol}; do
+ if cryptomount "${dev}" ; then break ; fi
+ done
+ set pager=1
+ echo
+
+ search_bootcfg crypto
+
+ lvmvol=""
+
+ # after cryptomount, lvm volumes might be available
+ # using * is slow on some machines, but we use it here,
+ # just once. in so doing, we find every lvm volume
+ for vol in (*); do
+ if regexp ^\\(lvm/ $vol; then
+ lvmvol="${lvmvol} ${vol}"
+ try_bootcfg "${vol}"
+ fi
+ done
+
+ # user might have put luks inside lvm
+ set pager=0
+ echo "Attempting to unlock encrypted LVMs"
+ for vol in ${lvmvol}; do
+ cryptomount "$vol"
+ done
+ set pager=1
+ echo
+
+ search_bootcfg crypto
+
+ true # Prevent pager requiring to accept each line instead of whole screen
+}
+
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on USB [s]' --hotkey='s' {
+ search_bootcfg usb
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on AHCI [a]' --hotkey='a' {
+ search_bootcfg ahci
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on ATA/IDE [d]' --hotkey='d' {
+ search_bootcfg ata
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on NVMe [e]' --hotkey='e' {
+ search_bootcfg nvme
+}
+if [ -f (cbfsdisk)/grub.cfg ]; then
+menuentry 'Load configuration (grub.cfg) in CBFS [t]' --hotkey='t' {
+ set root='(cbfsdisk)'
+ if [ -f /grub.cfg ]; then
+ configfile /grub.cfg
+ fi
+}
+fi
+if [ -f (cbfsdisk)/grubtest.cfg ]; then
+menuentry 'Load test configuration (grubtest.cfg) inside of CBFS [t]' --hotkey='t' {
+ set root='(cbfsdisk)'
+ if [ -f /grubtest.cfg ]; then
+ configfile /grubtest.cfg
+ fi
+}
+fi
+menuentry 'Poweroff [p]' --hotkey='p' {
+ halt
+}
+menuentry 'Reboot [r]' --hotkey='r' {
+ reboot
+}
+if [ -f (cbfsdisk)/img/memtest ]; then
+menuentry 'Load MemTest86+ [m]' --hotkey='m' {
+ set root='cbfsdisk'
+ chainloader /img/memtest
+}
+fi
+
+submenu 'Other [z]' --hotkey='z' {
+ menuentry 'Enable default serial terminal [s]' --hotkey='s' {
+ serial
+ terminal_input --append serial
+ terminal_output --append serial
+ }
+
+ menuentry 'Disable default serial terminal' {
+ terminal_input --remove serial
+ terminal_output --remove serial
+ }
+
+ menuentry 'Enable gfxterm' {
+ terminal_output --append gfxterm
+ terminal_output --remove vga_text
+ }
+ menuentry 'Disable gfxterm [g]' --hotkey='g' {
+ terminal_output --remove gfxterm
+ terminal_output --append vga_text
+ }
+
+ menuentry 'Enable spkmodem [a]' --hotkey='a' {
+ terminal_output --append spkmodem
+ }
+
+ menuentry 'Disable spkmodem [z]' --hotkey='z' {
+ terminal_output --remove spkmodem
+ }
+}
diff --git a/config/data/grub/cfg/xhci.config b/config/data/grub/cfg/xhci.config
new file mode 100644
index 00000000..f5d150a7
--- /dev/null
+++ b/config/data/grub/cfg/xhci.config
@@ -0,0 +1,289 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+# Copyright (C) 2014-2016,2020-2021,2023-2025 Leah Rowe <leah@libreboot.org>
+# Copyright (C) 2015 Klemens Nanni <contact@autoboot.org>
+
+set prefix=(memdisk)/boot/grub
+
+insmod at_keyboard
+insmod usb_keyboard
+insmod nativedisk
+insmod xhci
+insmod ehci
+insmod ohci
+insmod uhci
+insmod usb
+insmod usbms
+insmod regexp
+
+terminal_input --append at_keyboard
+terminal_input --append usb_keyboard
+terminal_output --append cbmemc
+
+# User interface overrides wherever "keystatus" is supported
+# Keep SHIFT key pressed before powering on to disable graphics
+if keystatus --shift; then
+ terminal_output --append vga_text
+else
+ gfxpayload=keep
+ terminal_output --append gfxterm
+
+ for dt in cbfsdisk memdisk; do
+ for it in png jpg; do
+ if [ -f (${dt})/background.${it} ]; then
+ insmod ${it}
+ background_image (${dt})/background.${it}
+ fi
+ done
+ done
+fi
+
+# Keep CTRL pressed to enable default serial terminal (COM1 or the like)
+if keystatus --ctrl; then
+ serial
+ terminal_input --append serial
+ terminal_output --append serial
+fi
+
+# Keep ALT pressed to enable spkmodem
+if keystatus --alt; then
+ terminal_output --append spkmodem
+fi
+
+
+set default="0"
+if [ -f (cbfsdisk)/timeout.cfg ]; then
+ source (cbfsdisk)/timeout.cfg
+else
+ set timeout=8
+fi
+set grub_scan_disk="nvme ahci ata"
+if [ -f (cbfsdisk)/scan.cfg ]; then
+ source (cbfsdisk)/scan.cfg
+fi
+
+if [ -f (cbfsdisk)/keymap.gkb ]; then
+ keymap (cbfsdisk)/keymap.gkb
+fi
+
+function really_try_user_config {
+ set root="${1}"
+
+ if [ -f /"${2}"/grub.cfg ]; then
+ unset superusers
+ configfile /"${2}"/grub.cfg
+ fi
+}
+
+function try_user_config {
+ # The @/... entries are for cases where the BTRFS filesystem is being used
+ for dir in grub boot/grub @/grub @/boot/grub grub2 boot/grub2 @/grub2 @/boot/grub2 boot @/boot; do
+ really_try_user_config "${1}" "${dir}"
+ done
+ for dir in ubuntu debian redhat; do
+ really_try_user_config "${1}" "EFI/${dir}"
+ done
+}
+function search_grub {
+ echo -n "Attempting to load grub.cfg from '${1}' devices"
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${1}" != "nvme" ]; then
+ try_user_config "(${1}${i},${part})"
+ else
+ # TODO: do we care about other namesapces
+ try_user_config "(nvme${i}n1,${part})"
+ fi
+ done
+ if [ "${1}" != "nvme" ]; then
+ # raw devices e.g. (ahci0) instead of (ahci0,1)
+ try_user_config "(${1}${i})"
+ else
+ # TODO: do we care about other namesapces
+ try_user_config "(nvme${i}n1)"
+ fi
+ done
+ echo # Insert newline
+}
+
+function try_isolinux_config {
+ set root="${1}"
+ for dir in '' /boot /EFI /@ /@/boot; do
+ if [ -f "${dir}"/isolinux/isolinux.cfg ]; then
+ syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg
+ elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then
+ syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg
+ elif [ -f "${dir}"/syslinux/extlinux.conf ]; then
+ syslinux_configfile -s "${dir}"/syslinux/extlinux.conf
+ elif [ -f "${dir}"/extlinux/extlinux.conf ]; then
+ syslinux_configfile -s "${dir}"/extlinux/extlinux.conf
+ fi
+ done
+}
+function search_isolinux {
+ echo "\nAttempting to parse iso/sys/extlinux config from '${1}' devices"
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${1}" != "nvme" ]; then
+ try_isolinux_config "(${1}${i},${part})"
+ else
+ # TODO: see above
+ try_isolinux_config "(nvme${i}n1,${part})"
+ fi
+ done
+ if [ "${1}" != "nvme" ]; then
+ # raw devices e.g. (usb0) instead of (usb0,1)
+ try_isolinux_config "(${1}${i})"
+ else
+ # TODO: do we care about other namesapces
+ try_isolinux_config "(nvme${i}n1)"
+ fi
+ done
+ echo # Insert newline
+}
+function try_bootcfg {
+ try_user_config "${1}"
+ try_isolinux_config "${1}"
+}
+function search_bootcfg {
+ search_grub "${1}"
+ search_isolinux "${1}"
+}
+menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' {
+
+ for grub_disk in ${grub_scan_disk}; do
+ search_bootcfg ${grub_disk}
+ done
+
+ # grub device enumeration is very slow, so checks are hardcoded
+
+ raidvol="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9"
+
+ # in practise, doing multiple redundant checks is perfectly fast
+ # TODO: optimize grub itself, and use */? here for everything
+
+ for vol in ${raidvol} ; do
+ try_bootcfg "${vol}"
+ done
+
+ unset bootdev
+ for grub_disk in ${grub_scan_disk}; do
+ for i in 0 1 2 3 4 5 6 7 8; do
+ for part in 1 2 3 4 5 6 7 8 9 10 11 12; do
+ if [ "${grub_disk}" = "ahci" ]; then
+ bootdev="${bootdev} (ahci${i},${part})"
+ elif [ "${grub_disk}" = "ata" ]; then
+ bootdev="${bootdev} (ata${i},${part})"
+ elif [ "${grub_disk}" = "nvme" ]; then
+ # TODO: do we care about other namesapces
+ bootdev="${bootdev} (nvme${i}n1,${part})"
+ fi
+ done
+ done
+ done
+
+ set pager=0
+ echo -n "Attempting to unlock encrypted volumes"
+ for dev in ${bootdev} ${raidvol}; do
+ if cryptomount "${dev}" ; then break ; fi
+ done
+ set pager=1
+ echo
+
+ search_bootcfg crypto
+
+ lvmvol=""
+
+ # after cryptomount, lvm volumes might be available
+ # using * is slow on some machines, but we use it here,
+ # just once. in so doing, we find every lvm volume
+ for vol in (*); do
+ if regexp ^\\(lvm/ $vol; then
+ lvmvol="${lvmvol} ${vol}"
+ try_bootcfg "${vol}"
+ fi
+ done
+
+ # user might have put luks inside lvm
+ set pager=0
+ echo "Attempting to unlock encrypted LVMs"
+ for vol in ${lvmvol}; do
+ cryptomount "$vol"
+ done
+ set pager=1
+ echo
+
+ search_bootcfg crypto
+
+ true # Prevent pager requiring to accept each line instead of whole screen
+}
+
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on USB [s]' --hotkey='s' {
+ search_bootcfg usb
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on AHCI [a]' --hotkey='a' {
+ search_bootcfg ahci
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on ATA/IDE [d]' --hotkey='d' {
+ search_bootcfg ata
+}
+menuentry 'Search for GRUB/SYSLINUX/EXTLINUX/ISOLINUX on NVMe [e]' --hotkey='e' {
+ search_bootcfg nvme
+}
+if [ -f (cbfsdisk)/grub.cfg ]; then
+menuentry 'Load configuration (grub.cfg) in CBFS [t]' --hotkey='t' {
+ set root='(cbfsdisk)'
+ if [ -f /grub.cfg ]; then
+ configfile /grub.cfg
+ fi
+}
+fi
+if [ -f (cbfsdisk)/grubtest.cfg ]; then
+menuentry 'Load test configuration (grubtest.cfg) in CBFS [t]' --hotkey='t' {
+ set root='(cbfsdisk)'
+ if [ -f /grubtest.cfg ]; then
+ configfile /grubtest.cfg
+ fi
+}
+fi
+menuentry 'Poweroff [p]' --hotkey='p' {
+ halt
+}
+menuentry 'Reboot [r]' --hotkey='r' {
+ reboot
+}
+if [ -f (cbfsdisk)/img/memtest ]; then
+menuentry 'Load MemTest86+ [m]' --hotkey='m' {
+ set root='cbfsdisk'
+ chainloader /img/memtest
+}
+fi
+
+submenu 'Other [z]' --hotkey='z' {
+ menuentry 'Enable default serial terminal [s]' --hotkey='s' {
+ serial
+ terminal_input --append serial
+ terminal_output --append serial
+ }
+
+ menuentry 'Disable default serial terminal' {
+ terminal_input --remove serial
+ terminal_output --remove serial
+ }
+
+ menuentry 'Enable gfxterm' {
+ terminal_output --append gfxterm
+ terminal_output --remove vga_text
+ }
+ menuentry 'Disable gfxterm [g]' --hotkey='g' {
+ terminal_output --remove gfxterm
+ terminal_output --append vga_text
+ }
+
+ menuentry 'Enable spkmodem [a]' --hotkey='a' {
+ terminal_output --append spkmodem
+ }
+
+ menuentry 'Disable spkmodem [z]' --hotkey='z' {
+ terminal_output --remove spkmodem
+ }
+}
diff --git a/config/data/grub/keymap/dkqwerty.gkb b/config/data/grub/keymap/dkqwerty.gkb
new file mode 100644
index 00000000..aef62970
--- /dev/null
+++ b/config/data/grub/keymap/dkqwerty.gkb
Binary files differ
diff --git a/config/data/grub/keymap/noqwerty.gkb b/config/data/grub/keymap/noqwerty.gkb
new file mode 100644
index 00000000..7ad9b7e4
--- /dev/null
+++ b/config/data/grub/keymap/noqwerty.gkb
Binary files differ
diff --git a/config/data/grub/mkhelper.cfg b/config/data/grub/mkhelper.cfg
index 8c250f6b..dca4bf3d 100644
--- a/config/data/grub/mkhelper.cfg
+++ b/config/data/grub/mkhelper.cfg
@@ -1,7 +1,12 @@
# SPDX-License-Identifier: GPL-3.0-or-later
+# can be overridden per-tree
+url="https://gitlab.freedesktop.org/gnu-grub/grub.git"
+bkup_url="https://codeberg.org/libreboot/grub"
+
bootstrapargs="--gnulib-srcdir=gnulib/ --no-git"
-autoconfargs="--with-platform=coreboot --disable-werror"
+configureargs="--with-platform=coreboot --disable-werror"
makeargs="FS_PAYLOAD_MODULES=\"\""
-btype="autohell"
-mkhelper="mkpayload_grub"
+mkhelper="$if_not_dry_build mkpayload_grub"
+
+noconfig="y"
diff --git a/config/data/grub/module/default b/config/data/grub/module/default
index 1ee5327f..78ee52fe 100755..100644
--- a/config/data/grub/module/default
+++ b/config/data/grub/module/default
@@ -34,6 +34,7 @@ cpio \
cpio_be \
crc64 \
crypto \
+crypto_cipher_mode_test \
cryptodisk \
diskfilter \
echo \
@@ -41,19 +42,26 @@ ehci \
eval \
exfat \
elf \
+extcmd \
ext2 \
fat \
+functional_test \
f2fs \
gcry_arcfour \
+gcry_blake2 \
gcry_blowfish \
gcry_camellia \
gcry_cast5 \
gcry_crc \
gcry_des \
gcry_dsa \
+gcry_hwfeatures \
gcry_idea \
+gcry_kdf \
+gcry_keccak \
gcry_md4 \
gcry_md5 \
+gcry_pubkey_dilithium \
gcry_rfc2268 \
gcry_rijndael \
gcry_rmd160 \
@@ -69,7 +77,6 @@ gcry_whirlpool \
geli \
gfxmenu \
gfxterm_background \
-gfxterm_menu \
gzio \
hashsum \
halt \
@@ -78,6 +85,7 @@ iorw \
iso9660 \
jpeg \
json \
+key_protector \
keylayouts \
keystatus \
linux \
@@ -97,28 +105,37 @@ mdraid09 \
mdraid09_be \
mdraid1x \
memdisk \
+memmove_bench \
memrw \
+mfa \
minicmd \
mmap \
+mpi \
+mldsa_test \
multiboot \
multiboot2 \
nativedisk \
+net \
normal \
ntfs \
+nvme \
ohci \
part_bsd \
part_dfly \
part_gpt \
part_msdos \
password \
+password_argon2 \
password_pbkdf2 \
pata \
pbkdf2 \
+pci \
pcidump \
pgp \
play \
png \
procfs \
+pubkey \
raid5rec \
raid6rec \
read \
@@ -148,6 +165,7 @@ ufs2 \
usb \
usb_keyboard \
usbms \
+virtionet \
xfs \
xzio \
zfs \
diff --git a/config/data/grub/module/nvme b/config/data/grub/module/nvme
deleted file mode 100755
index a3a2847c..00000000
--- a/config/data/grub/module/nvme
+++ /dev/null
@@ -1,158 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# Install modules (installed, but not automatically loaded)
-grub_install_modules=" \
-hexdump \
-newc \
-odc \
-usbserial_common \
-usbserial_ftdi \
-usbserial_pl2303 \
-usbserial_usbdebug \
-video_colors \
-"
-# Modules (and always loaded)
-grub_modules=" \
-acpi \
-ahci \
-at_keyboard \
-all_video \
-ata \
-bitmap \
-bitmap_scale \
-boot \
-bsd \
-btrfs \
-cat \
-cbfs \
-cbls \
-cbmemc \
-cbtime \
-chain \
-configfile \
-cpio \
-cpio_be \
-crc64 \
-crypto \
-cryptodisk \
-diskfilter \
-echo \
-ehci \
-eval \
-exfat \
-elf \
-ext2 \
-fat \
-f2fs \
-gcry_arcfour \
-gcry_blowfish \
-gcry_camellia \
-gcry_cast5 \
-gcry_crc \
-gcry_des \
-gcry_dsa \
-gcry_idea \
-gcry_md4 \
-gcry_md5 \
-gcry_rfc2268 \
-gcry_rijndael \
-gcry_rmd160 \
-gcry_rsa \
-gcry_seed \
-gcry_serpent \
-gcry_sha1 \
-gcry_sha256 \
-gcry_sha512 \
-gcry_tiger \
-gcry_twofish \
-gcry_whirlpool \
-geli \
-gfxmenu \
-gfxterm_background \
-gfxterm_menu \
-gzio \
-hashsum \
-halt \
-help \
-iorw \
-iso9660 \
-jpeg \
-json \
-keylayouts \
-keystatus \
-linux \
-linux16 \
-loadenv \
-loopback \
-ls \
-lsacpi \
-lsmmap \
-lspci \
-luks \
-luks2 \
-argon2 \
-lvm \
-lzopio \
-mdraid09 \
-mdraid09_be \
-mdraid1x \
-memdisk \
-memrw \
-minicmd \
-mmap \
-multiboot \
-multiboot2 \
-nativedisk \
-normal \
-ntfs \
-nvme \
-ohci \
-part_bsd \
-part_dfly \
-part_gpt \
-part_msdos \
-password \
-password_pbkdf2 \
-pata \
-pbkdf2 \
-pcidump \
-pgp \
-play \
-png \
-procfs \
-raid5rec \
-raid6rec \
-read \
-reboot \
-regexp \
-romfs \
-scsi \
-search \
-search_fs_file \
-search_fs_uuid \
-search_label \
-serial \
-syslinuxcfg \
-setjmp \
-setpci \
-spkmodem \
-squash4 \
-sleep \
-tar \
-test \
-true \
-uhci \
-udf \
-ufs1 \
-ufs1_be \
-ufs2 \
-usb \
-usb_keyboard \
-usbms \
-xfs \
-xzio \
-zfs \
-zfscrypt \
-zfsinfo \
-zstd \
-"
diff --git a/config/data/grub/module/xhci b/config/data/grub/module/xhci
index ee4d10f7..ef0991aa 100755
--- a/config/data/grub/module/xhci
+++ b/config/data/grub/module/xhci
@@ -35,6 +35,7 @@ cpio \
cpio_be \
crc64 \
crypto \
+crypto_cipher_mode_test \
cryptodisk \
diskfilter \
echo \
@@ -42,19 +43,26 @@ ehci \
eval \
exfat \
elf \
+extcmd \
ext2 \
fat \
+functional_test \
f2fs \
gcry_arcfour \
+gcry_blake2 \
gcry_blowfish \
gcry_camellia \
gcry_cast5 \
gcry_crc \
gcry_des \
gcry_dsa \
+gcry_hwfeatures \
gcry_idea \
+gcry_kdf \
+gcry_keccak \
gcry_md4 \
gcry_md5 \
+gcry_pubkey_dilithium \
gcry_rfc2268 \
gcry_rijndael \
gcry_rmd160 \
@@ -70,7 +78,6 @@ gcry_whirlpool \
geli \
gfxmenu \
gfxterm_background \
-gfxterm_menu \
gzio \
hashsum \
halt \
@@ -79,6 +86,7 @@ iorw \
iso9660 \
jpeg \
json \
+key_protector \
keylayouts \
keystatus \
linux \
@@ -98,12 +106,17 @@ mdraid09 \
mdraid09_be \
mdraid1x \
memdisk \
+memmove_bench \
memrw \
+mfa \
minicmd \
mmap \
+mpi \
+mldsa_test \
multiboot \
multiboot2 \
nativedisk \
+net \
normal \
ntfs \
nvme \
@@ -113,14 +126,17 @@ part_dfly \
part_gpt \
part_msdos \
password \
+password_argon2 \
password_pbkdf2 \
pata \
pbkdf2 \
+pci \
pcidump \
pgp \
play \
png \
procfs \
+pubkey \
raid5rec \
raid6rec \
read \
@@ -150,6 +166,7 @@ ufs2 \
usb \
usb_keyboard \
usbms \
+virtionet \
xfs \
xzio \
zfs \
diff --git a/config/data/libarchive/build.list b/config/data/libarchive/build.list
new file mode 100644
index 00000000..044f9db2
--- /dev/null
+++ b/config/data/libarchive/build.list
@@ -0,0 +1,3 @@
+bsdtar
+bsdunzip
+bsdcpio
diff --git a/config/data/pcsx-redux/mkhelper.cfg b/config/data/pcsx-redux/mkhelper.cfg
index 6ad20de5..d7369797 100644
--- a/config/data/pcsx-redux/mkhelper.cfg
+++ b/config/data/pcsx-redux/mkhelper.cfg
@@ -1,3 +1,4 @@
# SPDX-License-Identifier: GPL-3.0-or-later
-postmake="copyps1bios"
+mkhelper="$if_not_dry_build copyps1bios"
+postmake="$if_not_dry_build copyps1bios"
diff --git a/config/data/pico-serprog/mkhelper.cfg b/config/data/pico-serprog/mkhelper.cfg
deleted file mode 100644
index 8e902bda..00000000
--- a/config/data/pico-serprog/mkhelper.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-sersrc="src/pico-serprog"
-serx="$sersrc/build/pico_serprog.uf2"
-picosdk="src/pico-sdk"
-serdir="$picosdk/src/boards/include/boards"
-premake="mkserprog pico"
diff --git a/config/data/stm32-vserprog/mkhelper.cfg b/config/data/stm32-vserprog/mkhelper.cfg
deleted file mode 100644
index 907e890f..00000000
--- a/config/data/stm32-vserprog/mkhelper.cfg
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-sersrc="src/stm32-vserprog"
-serx="$sersrc/stm32-vserprog.hex"
-serdir="$sersrc/boards"
-mkhelper="mkserprog stm32"
diff --git a/config/data/u-boot/build.list b/config/data/u-boot/build.list
index 5af3064a..8d9a5cf0 100644
--- a/config/data/u-boot/build.list
+++ b/config/data/u-boot/build.list
@@ -4,5 +4,3 @@ u-boot.dtb
u-boot.img
u-boot.itb
u-boot.elf
-u-boot-dtb.bin
-u-boot-x86-with-spl.bin
diff --git a/config/data/u-boot/mkhelper.cfg b/config/data/u-boot/mkhelper.cfg
new file mode 100644
index 00000000..c47f9580
--- /dev/null
+++ b/config/data/u-boot/mkhelper.cfg
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+url="https://source.denx.de/u-boot/u-boot.git"
+bkup_url="https://github.com/u-boot/u-boot.git"