diff options
-rw-r--r-- | config/data/coreboot/mkhelper.cfg | 2 | ||||
-rw-r--r-- | include/rom.sh | 23 |
2 files changed, 19 insertions, 6 deletions
diff --git a/config/data/coreboot/mkhelper.cfg b/config/data/coreboot/mkhelper.cfg index a218e0e7..a344674c 100644 --- a/config/data/coreboot/mkhelper.cfg +++ b/config/data/coreboot/mkhelper.cfg @@ -6,7 +6,7 @@ build_depend="seabios/default grub/default memtest86plus u-boot/amd64coreboot" seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin" pv="payload_uboot payload_seabios payload_memtest payload_grub" -pv="$pv payload_uboot_i386 payload_uboot_amd64" +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` diff --git a/include/rom.sh b/include/rom.sh index 8d9cdf40..f21b6302 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -120,6 +120,10 @@ mkcorebootbin() [ "$payload_memtest" = "y" ] || payload_memtest="n" [ "$(uname -m)" = "x86_64" ] || payload_memtest="n" + [ "$payload_grubsea" = "y" ] && [ "$initmode" = "normal" ] && \ + payload_grubsea="n" + [ "$payload_grub" = "y" ] || payload_grubsea="n" + if $dry grep "CONFIG_PAYLOAD_NONE=y" "$defconfig"; then [ "$payload_seabios" = "y" ] && pname="seabios" && \ $dry add_seabios @@ -138,7 +142,9 @@ add_seabios() _seabioself="elf/seabios/default/$initmode/bios.bin.elf" - cbfs "$tmprom" "$_seabioself" "fallback/payload" + _seaname="fallback/payload" && [ "$payload_grubsea" = "y" ] && \ + _seaname="seabios.elf" + cbfs "$tmprom" "$_seabioself" "$_seaname" x_ "$cbfstool" "$tmprom" add-int -i 3000 -n etc/ps2-keyboard-spinup _z="2"; [ "$initmode" = "vgarom" ] && _z="0" @@ -152,15 +158,18 @@ add_seabios() [ "$payload_grub" = "y" ] && add_grub - cprom + [ "$payload_grubsea" != "y" ] && cprom [ "$payload_uboot_amd64" = "y" ] && [ "$displaymode" != "txtmode" ] && \ - [ "$initmode" != "normal" ] && pname="seauboot" && cprom "seauboot" + [ "$initmode" != "normal" ] && [ "$payload_grubsea" != "y" ] && \ + pname="seauboot" && cprom "seauboot" [ "$payload_grub" = "y" ] && pname="seagrub" && mkseagrub; : } add_grub() { - cbfs "$tmprom" "$grubelf" "img/grub2" + _grubname="img/grub2" && [ "$payload_grubsea" = "y" ] && \ + _grubname="fallback/payload" + cbfs "$tmprom" "$grubelf" "$_grubname" printf "set grub_scan_disk=\"%s\"\n" "$grub_scan_disk" \ > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk" cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw @@ -171,7 +180,11 @@ add_grub() mkseagrub() { - cbfs "$tmprom" "$grubdata/bootorder" bootorder raw + if [ "$payload_grubsea" = "y" ]; then + pname="grub" + else + cbfs "$tmprom" "$grubdata/bootorder" bootorder raw + fi for keymap in config/data/grub/keymap/*.gkb; do [ -f "$keymap" ] && cprom "${keymap##*/}"; : done; : |