From 5f6ba01d414e2d98d7db049347b8c5c5d125ba61 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 25 Oct 2023 11:40:02 +0100 Subject: include/option.sh: fix i945 bootblock copy it wasn't being copied right the roms under elf/ were being copied, but not the ones under bin/ - i need to audit it further for now, i run modify_coreboot_roms from build/roms instead of update/trees so, the ones under elf/ no longer have bootblocks copied. it's only done in bin/ Signed-off-by: Leah Rowe --- include/option.sh | 28 ---------------------------- script/build/roms | 28 ++++++++++++++++++++++++++++ script/update/trees | 1 - 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/include/option.sh b/include/option.sh index aa8b844c..ed094b5c 100755 --- a/include/option.sh +++ b/include/option.sh @@ -70,31 +70,3 @@ handle_coreboot_utils() [ -z "${mode}" ] || x_ rm -Rf "cbutils/${1}" done } - -modify_coreboot_rom() -{ - rompath="${codedir}/build/coreboot.rom" - [ -f "${rompath}" ] || \ - err "modify_coreboot_rom: does not exist: ${rompath}" - tmprom="$(mktemp -t rom.XXXXXXXXXX)" - x_ rm -f "${tmprom}" - - if [ "${romtype}" = "d8d16sas" ]; then - # pike2008 roms hang seabios. an empty rom will override - # the built-in one, thus disabling all execution of it - x_ touch "${tmprom}" - for deviceID in "0072" "3050"; do - x_ "${cbfstool}" "${rompath}" add -f "${tmprom}" \ - -n "pci1000,${deviceID}.rom" -t raw - done - elif [ "${romtype}" = "i945 laptop" ]; then - # for bucts-based installation method from factory bios - dd if="${rompath}" of="${tmprom}" bs=1 \ - skip=$(($(stat -c %s "${rompath}") - 0x10000)) \ - count=64k || err "modrom 1, dd, ${rompath}" - dd if="${tmprom}" of="${rompath}" bs=1 \ - seek=$(($(stat -c %s "${rompath}") - 0x20000)) \ - count=64k conv=notrunc || err "modrom 2, dd, ${rompath}" - fi - x_ rm -f "${tmprom}" -} diff --git a/script/build/roms b/script/build/roms index 37ee0aab..f19f7328 100755 --- a/script/build/roms +++ b/script/build/roms @@ -388,9 +388,37 @@ moverom() { [ -d "${newrom%/*}" ] || x_ mkdir -p "${newrom%/*}/" [ "${vendorfiles}" = "n" ] && newrom="${newrom%.rom}_noblobs.rom" + + x_ modify_coreboot_rom x_ cp "${rompath}" "${newrom}" } +modify_coreboot_rom() +{ + tmpmvrom="$(mktemp -t rom.XXXXXXXXXX)" + x_ rm -f "${tmpmvrom}" + + if [ "${romtype}" = "d8d16sas" ]; then + # pike2008 roms hang seabios. an empty rom will override + # the built-in one, thus disabling all execution of it + x_ touch "${tmpmvrom}" + for deviceID in "0072" "3050"; do + x_ "${cbfstool}" "${rompath}" add -f "${tmpmvrom}" \ + -n "pci1000,${deviceID}.rom" -t raw + done + elif [ "${romtype}" = "i945 laptop" ]; then + # for bucts-based installation method from factory bios + dd if="${rompath}" of="${tmpmvrom}" bs=1 \ + skip=$(($(stat -c %s "${rompath}") - 0x10000)) \ + count=64k || err "modrom 1, copy bootblock" + dd if="${tmpmvrom}" of="${rompath}" bs=1 \ + seek=$(($(stat -c %s "${rompath}") - 0x20000)) count=64k \ + conv=notrunc || err "modrom 2, insert new bootblock" + x_ rm -f "${tmpmvrom}" + fi + x_ rm -f "${tmpmvrom}" +} + usage() { cat <<- EOF diff --git a/script/update/trees b/script/update/trees index 64958522..a930bed1 100755 --- a/script/update/trees +++ b/script/update/trees @@ -263,7 +263,6 @@ run_make_command() copy_elf() { - [ "${project}" != "coreboot" ] || x_ modify_coreboot_rom while read f; do [ ! -f "${codedir}/$f" ] || \ x_ cp "${codedir}/${f}" "${dest_dir}/" -- cgit v1.2.1