summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2026-09-22 11:06:25 +0100
committerLeah Rowe <leah@libreboot.org>2026-09-22 11:06:25 +0100
commit3a03cca7b3851b1ddf59fab96a77e210eebbebe5 (patch)
treeb53dc6cf948462b367b4667bac56b03b5a2e3fd6 /include
parent0fbae18487a56daa5a2f6c27b689a7a583b8eb5c (diff)
dell5050sff: enable edk2 payload for testing
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include')
-rw-r--r--include/fw/rom.sh38
1 files changed, 33 insertions, 5 deletions
diff --git a/include/fw/rom.sh b/include/fw/rom.sh
index df37fdcf..fcd3fd5b 100644
--- a/include/fw/rom.sh
+++ b/include/fw/rom.sh
@@ -122,6 +122,9 @@ mkcorebootbin_real()
{
[ "$target" = "$tree" ] && return 0
+ [ "$XBMK_RELEASE" = "y" ] && [ "$release" = "n" ] && \
+ payload_edk2="" # source-only payload, for now.
+
tmprom="$xbtmp/coreboot.rom"
initmode="${buildcfg##*/}"
@@ -142,9 +145,6 @@ mkcorebootbin_real()
elfrom="${elfrom}_$displaymode"
elfrom="$elfrom/coreboot.rom"
- $if_not_skip_build x_ cp "$elfrom" "$tmprom"
- $if_not_skip_build unpad_one_byte "$tmprom"
-
[ -n "$payload_uboot" ] && [ "$payload_uboot" != "amd64" ] && \
[ "$payload_uboot" != "i386" ] && [ "$payload_uboot" != "arm64" ] \
&& err "'$target' defines bad u-boot type '$payload_uboot'" \
@@ -177,10 +177,16 @@ mkcorebootbin_real()
[ "$payload_grub" != "y" ] && \
payload_grubsea="n"
- [ -f "$cbfscfg" ] && \
- $if_not_skip_build dx_ add_cbfs_option "$cbfscfg"
+ $if_not_skip_build prep_tmprom
if grep "CONFIG_PAYLOAD_NONE=y" "$buildcfg"; then
+ if [ -n "$payload_edk2" ]; then
+ pname="edk2"
+ $if_not_skip_build add_edk2 "fallback/payload"
+ $if_not_skip_build cprom # standalone edk2
+
+ $if_not_skip_build prep_tmprom
+ fi
if [ "$payload_seabios" = "y" ]; then
pname="seabios"
$if_not_skip_build add_seabios
@@ -196,6 +202,15 @@ mkcorebootbin_real()
fi; :
}
+prep_tmprom()
+{
+ x_ cp "$elfrom" "$tmprom"
+ unpad_one_byte "$tmprom"
+
+ [ -f "$cbfscfg" ] && \
+ dx_ add_cbfs_option "$cbfscfg"; :
+}
+
# options for cbfs backend (as opposed to nvram/smmstore):
add_cbfs_option()
@@ -213,6 +228,14 @@ add_cbfs_option()
x_ "$cbfstool" "$tmprom" add-int -i "$op_arg" -n "option/$op_name"
}
+add_edk2()
+{
+ edk2dir="elf/edk2/default/$payload_mrchromebox"
+ edk2="$edk2dir/libgfxinit_corebootfb/UEFIPAYLOAD.fd"
+
+ cbfs "$tmprom" "$edk2" "$1"
+}
+
# in our design, SeaBIOS is also responsible for starting either
# a GRUB or U-Boot payload. this is because SeaBIOS is generally
# a more reliable codebase, so it's less likely to cause a brick
@@ -256,6 +279,9 @@ add_seabios()
[ "$payload_grub" = "y" ] && \
add_grub
+ [ -n "$payload_edk2" ] && \
+ add_edk2 "img/edk2"
+
[ "$payload_grubsea" != "y" ] && \
cprom # seabios, but don't load grub/u-boot first
@@ -354,6 +380,8 @@ cprom()
cbfs "$irom" "$grubdata/keymap/$tmpnew" keymap.gkb raw
elif [ "$1" = "seauboot" ]; then
cbfs "$irom" "$grubdata/bootorder_uboot" bootorder raw
+ elif [ "$1" = "seauboot" ]; then
+ cbfs "$irom" "$grubdata/bootorder_edk2" bootorder raw
fi
fi