summaryrefslogtreecommitdiff
path: root/include/option.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/option.sh')
-rwxr-xr-xinclude/option.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/include/option.sh b/include/option.sh
index ffcc7e94..6ae5f2de 100755
--- a/include/option.sh
+++ b/include/option.sh
@@ -36,3 +36,44 @@ scan_config()
EOF
rm -f "${revfile}" || "${_fail}" "scan_config: Cannot remove tmpfile"
}
+
+handle_coreboot_utils()
+{
+ for util in cbfstool ifdtool; do
+ x_ ./update project build ${_f} "src/coreboot/${1}/util/${util}"
+ [ -z ${mode} ] && [ ! -f "cbutils/${1}/${util}" ] && \
+ x_ mkdir -p "cbutils/${1}" && \
+ x_ cp "src/coreboot/${1}/util/${util}/${util}" \
+ "cbutils/${1}"
+ [ -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
+ x_ dd if="${rompath}" of="${tmprom}" bs=1 \
+ skip=$(($(stat -c %s "${rompath}") - 0x10000)) \
+ count=64k
+ x_ dd if="${tmprom}" of="${rompath}" bs=1 \
+ seek=$(($(stat -c %s "${rompath}") - 0x20000)) \
+ count=64k conv=notrunc
+ fi
+ x_ rm -f "${tmprom}"
+}