summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2023-10-25 11:40:02 +0100
committerLeah Rowe <leah@libreboot.org>2023-10-25 12:58:52 +0100
commit5f6ba01d414e2d98d7db049347b8c5c5d125ba61 (patch)
treeae960452213613ef777c0aaf667402c62d7818dc
parentdf031d422a1c0b76edbea1cdee98796ad3d1392f (diff)
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 <leah@libreboot.org>
-rwxr-xr-xinclude/option.sh28
-rwxr-xr-xscript/build/roms28
-rwxr-xr-xscript/update/trees1
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}/"