diff --git a/config/data/coreboot/mkhelper.cfg b/config/data/coreboot/mkhelper.cfg index de07b4c133437a8b31b93dfa0a8a6225bd96a5db..73cc957dd20ea9d1721aa11bc652849c38144a6e 100644 --- a/config/data/coreboot/mkhelper.cfg +++ b/config/data/coreboot/mkhelper.cfg @@ -7,7 +7,7 @@ seavgabiosrom="elf/seabios/default/libgfxinit/vgabios.bin" pv="payload_uboot payload_seabios payload_memtest payload_grub" v="initmode ubootelf grub_scan_disk uboot_config grubtree grubelf pname" -v="$v displaymode tmprom" +v="$v displaymode tmprom newrom" eval `setvars "n" $pv` eval `setvars "" $v` diff --git a/include/rom.sh b/include/rom.sh index d72ef243aadf0306698d23d2726213e6bc1bad40..72b7864c02b20163bbb51d89034770cb9ce24f85 100644 --- a/include/rom.sh +++ b/include/rom.sh @@ -104,10 +104,8 @@ mkcorebootbin() $dry add_seabios [ "$payload_uboot" = "y" ] && pname="uboot" && $dry add_uboot else - pname="custom" # coreboot's build system added payloads - fi - newrom="bin/$target/${pname}_${target}_$initmode$displaymode.rom" - $dry x_ mkdir -p "${newrom%/*}"; $dry x_ mv "$tmprom" "$newrom" + pname="custom" && cprom; : + fi; : } add_seabios() @@ -126,7 +124,7 @@ add_seabios() [ "$payload_memtest" = "y" ] && cbfs "$tmprom" \ "elf/memtest86plus/memtest.bin" img/memtest - [ "$payload_grub" = "y" ] && pname="seagrub" && add_grub; return 0 + cprom && [ "$payload_grub" = "y" ] && pname="seagrub" && add_grub; : } add_grub() @@ -136,6 +134,11 @@ add_grub() > "$TMPDIR/tmpcfg" || $err "$target: !insert scandisk" cbfs "$tmprom" "$TMPDIR/tmpcfg" scan.cfg raw cbfs "$tmprom" "$grubdata/bootorder" bootorder raw + for keymap in config/data/grub/keymap/*.gkb; do + [ -f "$keymap" ] || continue + keymap="${keymap##*/}" + cprom "${keymap%.gkb}" + done } add_uboot() @@ -145,7 +148,17 @@ add_uboot() ubootelf="$ubdir/u-boot" [ -f "$ubootelf" ] || $err "cb/$target: Can't find u-boot" - cbfs "$tmprom" "$ubootelf" "fallback/payload" + cbfs "$tmprom" "$ubootelf" "fallback/payload"; cprom +} + +cprom() +{ + newrom="bin/$target/${pname}_${target}_$initmode$displaymode.rom" + [ $# -gt 0 ] && newrom="${newrom%.rom}_$1.rom" + + x_ mkdir -p "bin/$target" + x_ cp "$tmprom" "$newrom" && [ $# -gt 0 ] && \ + cbfs "$newrom" "config/data/grub/keymap/$1.gkb" keymap.gkb raw; : } mkcoreboottar()