diff options
Diffstat (limited to 'script/build/boot/roms_helper')
-rwxr-xr-x | script/build/boot/roms_helper | 132 |
1 files changed, 57 insertions, 75 deletions
diff --git a/script/build/boot/roms_helper b/script/build/boot/roms_helper index 927c1401..09b08125 100755 --- a/script/build/boot/roms_helper +++ b/script/build/boot/roms_helper @@ -25,7 +25,7 @@ kmapdir="config/grub/keymap" eval "$(setvars "n" payload_grub payload_grub_withseabios payload_seabios \ payload_seabios_withgrub payload_memtest payload_uboot)" -eval "$(setvars "" romdir cbdir cbfstool corebootrom initmode displaymode \ +eval "$(setvars "" romdir cbdir cbfstool cbrom initmode displaymode \ cbcfg targetdir grub_timeout ubdir blobs_required)" eval "$(setvars "undefined" grub_scan_disk tree arch uboot_config)" @@ -108,7 +108,7 @@ build_dependencies() cbdir="coreboot/${board}" [ "${board}" = "${tree}" ] || cbdir="coreboot/${tree}" cbfstool="cbutils/${tree}/cbfstool" - corebootrom="${cbdir}/build/coreboot.rom" + cbrom="${cbdir}/build/coreboot.rom" ./build coreboot utils ${tree} || err "cannot build cbutils/${tree}" @@ -144,7 +144,7 @@ build_dependency_grub() [ "${payload_seabios_withgrub}" != "y" ] && return 0 rebuild_grub="n" - [ ! -f "${grubelf}" ] && rebuild_grub="y" + [ -f "${grubelf}" ] || rebuild_grub="y" for keymapfile in "${kmapdir}"/*.gkb; do [ "${rebuild_grub}" = "y" ] || break [ -f "${keymapfile}" ] || continue @@ -196,7 +196,6 @@ build_target() build_roms() { cbcfg="${1}" - [ ! -f "${cbcfg}" ] && \ printf "'%s' does not exist. Skipping build for %s %s %s\n" \ "${cbcfg}" "${board}" "${displaymode}" "${initmode}" \ @@ -205,22 +204,22 @@ build_roms() ./handle make config -b coreboot ${board} || \ err "build_roms: cannot build coreboot for target: ${board}" - _corebootrom="elf/coreboot/${board}/${initmode}_${displaymode}" + _cbrom="elf/coreboot/${board}/${initmode}_${displaymode}" [ "${initmode}" = "normal" ] && \ - _corebootrom="${_corebootrom%_${displaymode}}" - _corebootrom="${_corebootrom}/coreboot.rom" - corebootrom="$(mktemp -t coreboot_rom.XXXXXXXXXX)" - cp "${_corebootrom}" "${corebootrom}" || \ + _cbrom="${_cbrom%_${displaymode}}" + _cbrom="${_cbrom}/coreboot.rom" + cbrom="$(mktemp -t coreboot_rom.XXXXXXXXXX)" + cp "${_cbrom}" "${cbrom}" || \ err "build_roms: cannot copy rom" [ "${payload_memtest}" != "y" ] || \ - "${cbfstool}" "${corebootrom}" add-payload \ + "${cbfstool}" "${cbrom}" add-payload \ -f "${memtest_bin}" -n img/memtest -c lzma || \ err "build_roms: cannot add img/memtest to coreboot rom" [ "${payload_seabios}" = "y" ] && \ build_seabios_roms [ "${payload_grub}" != "y" ] || \ - build_grub_roms "${corebootrom}" "grub" || \ + build_grub_roms "${cbrom}" "grub" || \ err "build_roms: build_grub_roms failed" [ "${payload_uboot}" = "y" ] || return 0 build_uboot_roms @@ -230,13 +229,13 @@ build_seabios_roms() { if [ "${payload_seabios_withgrub}" = "y" ]; then tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - cp "${corebootrom}" "${tmprom}" || \ + cp "${cbrom}" "${tmprom}" || \ err "build_seabios_roms: cannot copy to tmprom" build_grub_roms "${tmprom}" "seabios_withgrub" || \ err "build_roms: cannot build grub roms, seabios w/grub" rm -f "${tmprom}" || err "build_roms: can't remove tmprom" else - t=$(mkSeabiosRom "${corebootrom}" "fallback/payload") || \ + t=$(mkSeabiosRom "${cbrom}" "fallback/payload") || \ err "build_seabios_roms: cannot build tmprom" newrom="${romdir}/seabios_${board}_${initmode}_${displaymode}" [ "${initmode}" = "normal" ] && newrom="${romdir}/seabios" \ @@ -250,33 +249,30 @@ build_seabios_roms() # Make separate ROM images with GRUB payload, for each supported keymap build_grub_roms() { - tmprompath="${1}" - firstpayloadname="${2}" # allow values: grub, seabios, seabios_withgrub - grubelf_cbfs="fallback/payload" + tmprom="${1}" + payload1="${2}" # allow values: grub, seabios, seabios_withgrub + grub_cbfs="fallback/payload" if [ "${payload_grub_withseabios}" = "y" ] && \ - [ "${firstpayloadname}" = "grub" ]; then - mv "$(mkSeabiosRom "${tmprompath}" "seabios.elf")" \ - "${tmprompath}" || \ + [ "${payload1}" = "grub" ]; then + mv "$(mkSeabiosRom "${tmprom}" "seabios.elf")" "${tmprom}" || \ err "build_grub_roms: cannot move tmp rom (seabios.elf)" elif [ "${payload_seabios_withgrub}" = "y" ] && \ - [ "${firstpayloadname}" != "grub" ]; then - mv "$(mkSeabiosRom "${tmprompath}" "fallback/payload")" \ - "${tmprompath}" || \ - err "build_grub_roms: cannot move SeaBIOS ROM to tmprom" - grubelf_cbfs="img/grub2" + [ "${payload1}" != "grub" ]; then + mv "$(mkSeabiosRom "${tmprom}" fallback/payload)" "${tmprom}" \ + || err "build_grub_roms: cannot move SeaBIOS ROM to tmprom" + grub_cbfs="img/grub2" fi # we only need insert grub.elf once, for each coreboot config: - "${cbfstool}" "${tmprompath}" add-payload -f "${grubelf}" \ - -n ${grubelf_cbfs} -c lzma || \ - err "build_grub_roms: cannot add grub payload to tmprom" + "${cbfstool}" "${tmprom}" add-payload -f "${grubelf}" -n ${grub_cbfs} \ + -c lzma || err "build_grub_roms: cannot add grub payload to tmprom" # we only need insert background.png once, for each coreboot config: if [ "${displaymode}" = "vesafb" ] || \ [ "${displaymode}" = "corebootfb" ]; then backgroundfile="config/grub/background/${grub_background}" - "${cbfstool}" "${tmprompath}" add -f ${backgroundfile} \ + "${cbfstool}" "${tmprom}" add -f ${backgroundfile} \ -n background.png -t raw || \ err "build_grub_roms: cannot add background.png to tmprom" @@ -287,38 +283,31 @@ build_grub_roms() { printf "set grub_scan_disk=\"%s\"\n" "${grub_scan_disk}" > \ "${tmpcfg}" || err "build_grub_roms: cannot create scan.cfg" [ "${grub_scan_disk}" = "both" ] || \ - "${cbfstool}" "${tmprompath}" add -f "${tmpcfg}" -n scan.cfg \ - -t raw || err "build_grub_roms: cannot insert scan.cfg into CBFS" - + "${cbfstool}" "${tmprom}" add -f "${tmpcfg}" -n scan.cfg -t \ + raw || err "build_grub_roms: can't insert scan.cfg" printf "set timeout=%s\n" "${grub_timeout}" > "${tmpcfg}" || \ - err "build_grub_roms: cannot insert into temporary timeout.cfg" + err "build_grub_roms: can't create timeout.cfg" [ -z "${grub_timeout}" ] || \ - "${cbfstool}" "${tmprompath}" add -f "${tmpcfg}" -n timeout.cfg \ - -t raw || err "build_grub_roms: cannot create timeout.cfg" - rm -f "${tmpcfg}" || err "cannot delete tmpcfg" + "${cbfstool}" "${tmprom}" add -f "${tmpcfg}" -n timeout.cfg \ + -t raw || err "build_grub_roms: can't insert timeout.cfg" + rm -f "${tmpcfg}" || err "build_grub_roms: can't delete tmpcfg" keymaps="" for kmapfile in "${kmapdir}"/*; do keymaps="${keymaps} ${kmapfile}" done - [ -z ${_keyboard_layout} ] || \ - keymaps="${kmapdir}/${_keyboard_layout}.gkb" + [ -z ${_keyboard} ] || keymaps="${kmapdir}/${_keyboard}.gkb" for keymapfile in ${keymaps}; do - printf "keymaps is %s, keymapfile is %s\n" \ - "${keymaps}" "${keymapfile}" - [ -f "${keymapfile}" ] || continue - keymap="${keymapfile##*/}" keymap="${keymap%.gkb}" + tmpgrubrom="$(mkGrubRom "${keymap}" "${tmprom}")" - tmpgrubrom="$(mkGrubRom "${keymap}" "${tmprompath}")" - - newrom="${romdir}/${firstpayloadname}_${board}_${initmode}_" + newrom="${romdir}/${payload1}_${board}_${initmode}_" newrom="${newrom}${displaymode}_${keymap}.rom" [ "${initmode}" = "normal" ] && \ - newrom="${romdir}/${firstpayloadname}_${board}_" && \ + newrom="${romdir}/${payload1}_${board}_" && \ newrom="${newrom}${initmode}_${keymap}.rom" moverom "${tmpgrubrom}" "${newrom}" || \ err "build_grub_roms, moverom" @@ -328,15 +317,14 @@ build_grub_roms() { # make a rom in /tmp/ and then print the path of that ROM mkGrubRom() { - target_keymap="${1}" - target_cbrom="${2}" + _keymap="${1}" + _cbrom="${2}" - keymapcfg="elf/grub/keymap_${target_keymap}.cfg" + keymapcfg="elf/grub/keymap_${_keymap}.cfg" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) || \ err "mkGrubRom: cannot create tmprom" - cp "${target_cbrom}" "${tmprom}" || \ - err "mkGrubRom: cannot copy to tmprom" + cp "${_cbrom}" "${tmprom}" || err "mkGrubRom: cannot copy to tmprom" "${cbfstool}" "${tmprom}" add -f "${keymapcfg}" -n keymap.cfg -t raw \ || err "mkGrubRom: cannot add keymap.cfg to tmprom" @@ -345,17 +333,17 @@ mkGrubRom() { # make a rom in /tmp/ and then print the path of that ROM mkSeabiosRom() { - target_cbrom="${1}" # rom to insert seabios in. will not be touched + _cbrom="${1}" # rom to insert seabios in. will not be touched # (a tmpfile will be made instead) - target_seabios_cbfs_path="${2}" # e.g. fallback/payload - target_seabioself="elf/seabios/default/${initmode}/bios.bin.elf" + _seabios_cbfs_path="${2}" # e.g. fallback/payload + _seabioself="elf/seabios/default/${initmode}/bios.bin.elf" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - cp "${target_cbrom}" "${tmprom}" || \ + cp "${_cbrom}" "${tmprom}" || \ err "mkSeabiosRom: cannot copy to tmprom" - "${cbfstool}" "${tmprom}" add-payload -f "${target_seabioself}" \ - -n ${target_seabios_cbfs_path} -c lzma || \ - err "mkSeabiosRom: can't add payload, ${target_seabioself}, to rom" + "${cbfstool}" "${tmprom}" add-payload -f "${_seabioself}" \ + -n ${_seabios_cbfs_path} -c lzma || \ + err "mkSeabiosRom: can't add payload, ${_seabioself}, to rom" "${cbfstool}" "${tmprom}" add-int -i 3000 -n etc/ps2-keyboard-spinup \ || err "mkSeabiosRom: cbfs add-int etc/ps2-keyboard-spinup 3000" @@ -374,8 +362,7 @@ mkSeabiosRom() { build_uboot_roms() { - tmprom="$(mkUbootRom "${corebootrom}" "fallback/payload" \ - "${uboot_config}" "${cbfstool}")" + tmprom="$(mkUbootRom "${cbrom}" "fallback/payload")" newrom="${romdir}/uboot_payload_${board}_${initmode}_${displaymode}.rom" [ "${initmode}" = "normal" ] && \ newrom="${romdir}/uboot_payload_${board}_${initmode}.rom" @@ -386,25 +373,21 @@ build_uboot_roms() # make a rom in /tmp/ and then print the path of that ROM mkUbootRom() { - target_cbrom="${1}" # rom to insert u-boot in. it won't be touched + _cbrom="${1}" # rom to insert u-boot in. it won't be touched # (a tmpfile will be made instead) - target_uboot_cbfs_path="${2}" # e.g. fallback/payload - target_uboot_config="${3}" - cbfstool_path="${4}" + _uboot_cbfs_path="${2}" # e.g. fallback/payload - target_ubdir="elf/u-boot/${board}/${target_uboot_config}" - target_ubootelf="${target_ubdir}/u-boot.elf" - [ -f "${target_ubootelf}" ] || \ - target_ubootelf="${target_ubdir}/u-boot.bin" - [ -f "${target_ubootelf}" ] || \ - err "mkUbootRom: ${board}: cant find u-boot build" + _ubdir="elf/u-boot/${board}/${uboot_config}" + _ubootelf="${_ubdir}/u-boot.elf" + [ -f "${_ubootelf}" ] || _ubootelf="${_ubdir}/u-boot.bin" + [ -f "${_ubootelf}" ] || err "mkUbootRom: ${board}: cant find u-boot" tmprom=$(mktemp -t coreboot_rom.XXXXXXXXXX) - cp "${target_cbrom}" "${tmprom}" || \ + cp "${_cbrom}" "${tmprom}" || \ err "mkUbootRom: cannot copy to tmprom" - "${cbfstool}" "${tmprom}" add-payload -f "${target_ubootelf}" \ - -n ${target_uboot_cbfs_path} -c lzma || \ + "${cbfstool}" "${tmprom}" add-payload -f "${_ubootelf}" \ + -n ${_uboot_cbfs_path} -c lzma || \ err "mkUbootRom: cannot add u-boot to tmprom" printf "%s\n" "${tmprom}" @@ -416,12 +399,11 @@ moverom() { rompath="${1}" newrom="${2}" - printf "\nCreating new ROM image: %s\n" "${newrom}" + printf "Creating target image: %s\n" "${newrom}" [ -d "${newrom%/*}" ] || mkdir -p "${newrom%/*}/" || \ err "moverom: cannot create rom directory: \"${newrom%/*}\"" - [ "${blobs_required}" = "n" ] && \ - newrom="${newrom%.rom}_noblobs.rom" + [ "${blobs_required}" = "n" ] && newrom="${newrom%.rom}_noblobs.rom" cp "${rompath}" "${newrom}" || err "moverom: can't copy rom" } |