diff options
| author | Leah Rowe <leah@libreboot.org> | 2023-10-25 11:40:02 +0100 | 
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2023-10-25 12:58:52 +0100 | 
| commit | 5f6ba01d414e2d98d7db049347b8c5c5d125ba61 (patch) | |
| tree | ae960452213613ef777c0aaf667402c62d7818dc | |
| parent | df031d422a1c0b76edbea1cdee98796ad3d1392f (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-x | include/option.sh | 28 | ||||
| -rwxr-xr-x | script/build/roms | 28 | ||||
| -rwxr-xr-x | 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}/" | 
