summaryrefslogtreecommitdiff
path: root/include/rom.sh
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-09-13 13:27:47 +0100
committerLeah Rowe <leah@libreboot.org>2025-09-13 13:27:47 +0100
commit995963baf4267e2d6221a5efc210130cfb1c64b7 (patch)
tree0af89063cf01b59dba4e0968d7de19ca7644df72 /include/rom.sh
parent7bed68f5b7096349bc8a6f48d2f4394db7a581af (diff)
xbmk: much more verbose error messages
use the new functionality in err(), whereby a given function name and arguments can be provided, for debugging purposes. something similar was already done in a few places, and replaced with this unified functionality. this patch will make xbmk much easier to debug, under fault conditions. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/rom.sh')
-rw-r--r--include/rom.sh30
1 files changed, 21 insertions, 9 deletions
diff --git a/include/rom.sh b/include/rom.sh
index 223a84f3..627f2673 100644
--- a/include/rom.sh
+++ b/include/rom.sh
@@ -26,8 +26,10 @@ copyps1bios()
x_ cp src/pcsx-redux/src/mips/openbios/openbios.bin bin/playstation
printf "MIT License\n\nCopyright (c) 2019-2025 PCSX-Redux authors\n\n" \
- > bin/playstation/COPYING.txt || err "!pcsx-redux copyright"
- x_ cat config/snippet/mit >>bin/playstation/COPYING.txt || err "!pcsx MIT"
+ > bin/playstation/COPYING.txt || \
+ err "can't write PCSX Redux copyright info" "copyps1bios" "$@"
+ x_ cat config/snippet/mit >>bin/playstation/COPYING.txt || \
+ err "can't copy MIT license snippet" "copyps1bios" "$@"
}
mkpayload_grub()
@@ -47,15 +49,21 @@ corebootpremake()
{
[ "$XBMK_RELEASE" = "y" ] && [ "$release" = "n" ] && return 0; :
- [ -n "$mode" ] || [ ! -f "$srcdir/.config" ] || $dry printf \
- "CONFIG_CCACHE=y\n" >> "$srcdir/.config" || err "$srcdir: !cook"; :
+ $dry cook_coreboot_config
fx_ check_coreboot_util printf "cbfstool\nifdtool\n"
printf "%s\n" "${version%%-*}" > "$srcdir/.coreboot-version" || \
- err "!mk $srcdir .coreboot-version"
+ err "!mk $srcdir .coreboot-version" "corebootpremake" "$@"
[ -z "$mode" ] && [ "$target" != "$tree" ] && \
x_ ./mk download "$target"; :
}
+cook_coreboot_config()
+{
+ [ -n "$mode" ] || [ ! -f "$srcdir/.config" ] || printf \
+ "CONFIG_CCACHE=y\n" >> "$srcdir/.config" || \
+ err "can't cook config in '$srcdir'" "cook_coreboot_config" "$@"; :
+}
+
check_coreboot_util()
{
[ "$badhash" = "y" ] && x_ rm -f "elf/coreboot/$tree/$1"
@@ -116,7 +124,8 @@ mkcorebootbin_real()
[ -z "$payload_uboot" ] || [ "$payload_uboot" = "amd64" ] || \
[ "$payload_uboot" = "i386" ] || [ "$payload_uboot" = "arm64" ] \
- || err "'$target' defines bad u-boot type '$payload_uboot'"
+ || err "'$target' defines bad u-boot type '$payload_uboot'" \
+ "mkcorebootbin_real" "$@"
[ -z "$payload_uboot" ] || [ "$payload_uboot" = "arm64" ] || \
payload_seabios="y"
@@ -124,7 +133,8 @@ mkcorebootbin_real()
[ -n "$uboot_config" ] || uboot_config="default"
[ "$payload_grub" = "y" ] && payload_seabios="y"
[ "$payload_seabios" = "y" ] && [ "$payload_uboot" = "arm64" ] && \
- $dry err "$target: U-Boot(arm64) and SeaBIOS/GRUB both enabled."
+ $dry err "$target: U-Boot(arm64) and SeaBIOS/GRUB both enabled." \
+ "mkcorebootbin_real" "$@"
[ -z "$grub_scan_disk" ] && grub_scan_disk="nvme ahci ata"
@@ -185,7 +195,8 @@ add_grub()
_grubname="fallback/payload"
cbfs "$tmprom" "$grubelf" "$_grubname"
printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \
- > "$xbtmp/tmpcfg" || err "$target: !insert scandisk"
+ > "$xbtmp/tmpcfg" || \
+ err "$target: !insert scandisk" "add_grub" "$@"
cbfs "$tmprom" "$xbtmp/tmpcfg" scan.cfg raw
[ "$initmode" != "normal" ] && [ "$displaymode" != "txtmode" ] && \
cbfs "$tmprom" "$grubdata/background/background1280x800.png" \
@@ -256,7 +267,8 @@ cprom()
newrom="${newrom%.rom}_${tmpnew%.gkb}.rom"
irom="$tmprom"
- [ $# -lt 1 ] || irom="$(mktemp || err "!mk irom, $(echo "$@")")" || err
+ [ $# -lt 1 ] || irom="$(mktemp || err "!mk irom, $(echo "$@")")" || \
+ err "can't copy rom" "cprom" "$@"
[ $# -gt 0 ] && x_ cp "$tmprom" "$irom" && cpcmd="mv"
[ $# -gt 0 ] && [ "${1%.gkb}" != "$1" ] && \