mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-18 23:24:11 +02:00
Merge branch 'master' into 25.06_branch
This commit is contained in:
+13
-23
@@ -5,9 +5,7 @@
|
|||||||
|
|
||||||
cbcfgsdir="config/coreboot"
|
cbcfgsdir="config/coreboot"
|
||||||
hashfiles="vendorhashes blobhashes" # blobhashes for backwards compatibility
|
hashfiles="vendorhashes blobhashes" # blobhashes for backwards compatibility
|
||||||
dontflash="!!! AN ERROR OCCURED! Please DO NOT flash if injection failed. !!!"
|
tmpromdel="$XBMK_CACHE/DO_NOT_FLASH"
|
||||||
vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_FILES_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_"
|
|
||||||
tmpromdel="$xbmklocal/DO_NOT_FLASH"
|
|
||||||
nvm="util/nvmutil/nvm"
|
nvm="util/nvmutil/nvm"
|
||||||
ifdtool="elf/ifdtool/default/ifdtool"
|
ifdtool="elf/ifdtool/default/ifdtool"
|
||||||
|
|
||||||
@@ -15,15 +13,15 @@ cv="CONFIG_GBE_BIN_PATH"
|
|||||||
[ -n "$cvxbmk" ] && cv="$cv $cvxbmk"
|
[ -n "$cvxbmk" ] && cv="$cv $cvxbmk"
|
||||||
[ -n "$cvchk" ] && cv="$cv $cvchk"
|
[ -n "$cvchk" ] && cv="$cv $cvchk"
|
||||||
|
|
||||||
eval "`setvars "" archive boarddir cbdir IFD_platform ifdprefix tree new_mac \
|
eval "`setvars "" archive boarddir IFD_platform ifdprefix tree new_mac \
|
||||||
tmpromdir $cv`"
|
tmpromdir board $cv`"
|
||||||
|
|
||||||
inject()
|
inject()
|
||||||
{
|
{
|
||||||
remkdir "$tmpromdel"
|
remkdir "$tmpromdel"
|
||||||
|
|
||||||
set +u +e
|
set +u +e
|
||||||
[ $# -lt 1 ] && err "No options specified. - $dontflash"
|
[ $# -lt 1 ] && err "No options specified"
|
||||||
eval "`setvars "" nukemode new_mac xchanged`"
|
eval "`setvars "" nukemode new_mac xchanged`"
|
||||||
|
|
||||||
archive="$1";
|
archive="$1";
|
||||||
@@ -57,11 +55,11 @@ inject()
|
|||||||
|
|
||||||
check_release()
|
check_release()
|
||||||
{
|
{
|
||||||
[ -L "$archive" ] && err "'$archive' is a symlink. $dontflash"
|
[ -L "$archive" ] && err "'$archive' is a symlink"
|
||||||
e "$archive" f missing && err "'$archive' missing"
|
e "$archive" f missing && err "'$archive' missing"
|
||||||
|
|
||||||
archivename="`basename "$archive"`" || err "Can't get '$archive' name"
|
archivename="`basename "$archive"`" || err "Can't get '$archive' name"
|
||||||
[ -z "$archivename" ] && err "Can't determine archive name. $dontflash"
|
[ -z "$archivename" ] && err "Can't determine archive name"
|
||||||
|
|
||||||
case "$archivename" in
|
case "$archivename" in
|
||||||
*_src.tar.xz)
|
*_src.tar.xz)
|
||||||
@@ -71,7 +69,7 @@ check_release()
|
|||||||
*.tar.xz) _stripped_prefix="${archivename#*_}"
|
*.tar.xz) _stripped_prefix="${archivename#*_}"
|
||||||
board="${_stripped_prefix%.tar.xz}" ;;
|
board="${_stripped_prefix%.tar.xz}" ;;
|
||||||
*)
|
*)
|
||||||
err "'$archive': could not detect board type - $dontflash"
|
err "'$archive': could not detect board type"
|
||||||
esac; :
|
esac; :
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,14 +84,6 @@ check_target()
|
|||||||
eval "`setcfg "$boarddir/target.cfg"`"
|
eval "`setcfg "$boarddir/target.cfg"`"
|
||||||
chkvars tree && x_ ./mk -d coreboot "$tree"
|
chkvars tree && x_ ./mk -d coreboot "$tree"
|
||||||
|
|
||||||
[ -n "$vcfg" ] && check_vcfg
|
|
||||||
|
|
||||||
cbdir="src/coreboot/$tree"
|
|
||||||
cbfstool="elf/cbfstool/$tree/cbfstool"
|
|
||||||
rmodtool="elf/cbfstool/$tree/rmodtool"
|
|
||||||
mecleaner="$xbmkpwd/$cbdir/util/me_cleaner/me_cleaner.py"
|
|
||||||
kbc1126_ec_dump="$xbmkpwd/$cbdir/util/kbc1126/kbc1126_ec_dump"
|
|
||||||
cbfstool="elf/cbfstool/$tree/cbfstool"
|
|
||||||
ifdtool="elf/ifdtool/$tree/ifdtool"
|
ifdtool="elf/ifdtool/$tree/ifdtool"
|
||||||
[ -n "$IFD_platform" ] && ifdprefix="-p $IFD_platform"; :
|
[ -n "$IFD_platform" ] && ifdprefix="-p $IFD_platform"; :
|
||||||
}
|
}
|
||||||
@@ -103,7 +93,7 @@ patch_release()
|
|||||||
[ "$nukemode" = "nuke" ] || x_ ./mk download "$board"
|
[ "$nukemode" = "nuke" ] || x_ ./mk download "$board"
|
||||||
|
|
||||||
has_hashes="n"
|
has_hashes="n"
|
||||||
tmpromdir="$xbmklocal/DO_NOT_FLASH/bin/$board"
|
tmpromdir="$tmpromdel/bin/$board"
|
||||||
|
|
||||||
remkdir "${tmpromdir%"/bin/$board"}"
|
remkdir "${tmpromdir%"/bin/$board"}"
|
||||||
x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}"
|
x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}"
|
||||||
@@ -115,9 +105,6 @@ patch_release()
|
|||||||
|
|
||||||
readkconfig || exit 0
|
readkconfig || exit 0
|
||||||
|
|
||||||
fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
|
||||||
( check_vendor_hashes ) || err "Can't verify hashes for '$archive'"; :
|
|
||||||
|
|
||||||
[ -n "$new_mac" ] && [ -n "$CONFIG_GBE_BIN_PATH" ] && modify_mac; :
|
[ -n "$new_mac" ] && [ -n "$CONFIG_GBE_BIN_PATH" ] && modify_mac; :
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,7 +113,7 @@ readkconfig()
|
|||||||
x_ rm -f "$xbmktmp/cbcfg"
|
x_ rm -f "$xbmktmp/cbcfg"
|
||||||
fx_ scankconfig x_ find "$boarddir/config" -type f
|
fx_ scankconfig x_ find "$boarddir/config" -type f
|
||||||
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
||||||
setvfile && return 1; :
|
setvfile "$@" && return 1; :
|
||||||
}
|
}
|
||||||
|
|
||||||
scankconfig()
|
scankconfig()
|
||||||
@@ -143,6 +130,9 @@ modify_mac()
|
|||||||
x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac"
|
x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac"
|
||||||
|
|
||||||
fx_ newmac x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
fx_ newmac x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
||||||
|
|
||||||
|
printf "\nGbE NVM written to '%s':\n" "$archive"
|
||||||
|
x_ "$nvm" "$xbmklocal/gbe" dump | grep -v "bytes read from file" || :
|
||||||
}
|
}
|
||||||
|
|
||||||
newmac()
|
newmac()
|
||||||
@@ -156,7 +146,7 @@ remktar()
|
|||||||
(
|
(
|
||||||
x_ cd "${tmpromdir%"/bin/$board"}"
|
x_ cd "${tmpromdir%"/bin/$board"}"
|
||||||
mkrom_tarball "bin/$board"
|
mkrom_tarball "bin/$board"
|
||||||
) || err "Cannot re-generate '$archive' - $dontflash"
|
) || err "Cannot re-generate '$archive'"
|
||||||
|
|
||||||
mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \
|
mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \
|
||||||
"$archive" || err "'$archive' -> Can't overwrite"; :
|
"$archive" || err "'$archive' -> Can't overwrite"; :
|
||||||
|
|||||||
+42
-24
@@ -18,6 +18,7 @@ pfs_extract="$xbmkpwd/src/biosutilities/Dell_PFS_Extract.py"
|
|||||||
uefiextract="$xbmkpwd/elf/uefitool/uefiextract"
|
uefiextract="$xbmkpwd/elf/uefitool/uefiextract"
|
||||||
vendir="vendorfiles"
|
vendir="vendorfiles"
|
||||||
appdir="$vendir/app"
|
appdir="$vendir/app"
|
||||||
|
vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_FILES_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_"
|
||||||
|
|
||||||
# lbmk-specific extension to the "cv" variable (not suitable for cbmk)
|
# lbmk-specific extension to the "cv" variable (not suitable for cbmk)
|
||||||
cvchk="CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \
|
cvchk="CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \
|
||||||
@@ -40,23 +41,13 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
|
|||||||
_7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch \
|
_7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch \
|
||||||
_me _metmp mfs TBFW_url_bkup TBFW_url TBFW_hash \
|
_me _metmp mfs TBFW_url_bkup TBFW_url TBFW_hash \
|
||||||
TBFW_size hashfile xromsize xchanged EC_url_bkup vfile \
|
TBFW_size hashfile xromsize xchanged EC_url_bkup vfile \
|
||||||
CONFIG_FSP_USE_REPO CONFIG_FSP_FULL_FD`"
|
CONFIG_FSP_USE_REPO CONFIG_FSP_FULL_FD cbdir`"
|
||||||
|
|
||||||
download()
|
download()
|
||||||
{
|
{
|
||||||
[ $# -gt 0 ] || err "No argument given"
|
[ $# -gt 0 ] || err "No argument given"
|
||||||
export PATH="$PATH:/sbin"
|
export PATH="$PATH:/sbin"
|
||||||
board="$1" && check_target && readkconfig && bootstrap && getfiles; :
|
board="$1" && check_target && readkconfig download
|
||||||
}
|
|
||||||
|
|
||||||
bootstrap()
|
|
||||||
{
|
|
||||||
x_ ./mk -f coreboot ${cbdir##*/}
|
|
||||||
mk -b uefitool biosutilities bios_extract
|
|
||||||
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
|
|
||||||
[ -n "$MRC_refcode_cbtree" ] && \
|
|
||||||
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
|
|
||||||
x_ ./mk -d coreboot "$MRC_refcode_cbtree"; :
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getfiles()
|
getfiles()
|
||||||
@@ -112,12 +103,12 @@ fetch()
|
|||||||
|
|
||||||
x_ extract_$dl_type "$_dl" "$appdir"
|
x_ extract_$dl_type "$_dl" "$appdir"
|
||||||
set -u -e
|
set -u -e
|
||||||
e "$_dest" f missing && err "!extract_$dl_type. $dontflash"; :
|
e "$_dest" f missing && err "!extract_$dl_type"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_intel_me()
|
extract_intel_me()
|
||||||
{
|
{
|
||||||
e "$mecleaner" f not && err "$cbdir: me_cleaner missing. $dontflash"
|
e "$mecleaner" f not && err "$cbdir: me_cleaner missing"
|
||||||
|
|
||||||
_7ztest="$xbmklocal/metmp/a"
|
_7ztest="$xbmklocal/metmp/a"
|
||||||
_me="$xbmkpwd/$_dest"
|
_me="$xbmkpwd/$_dest"
|
||||||
@@ -138,7 +129,7 @@ extract_intel_me()
|
|||||||
x_ ./finalimage.py --delta "data/delta/$ME11delta" --version \
|
x_ ./finalimage.py --delta "data/delta/$ME11delta" --version \
|
||||||
"$ME11version" --pch "$ME11pch" --sku "$ME11sku" \
|
"$ME11version" --pch "$ME11pch" --sku "$ME11sku" \
|
||||||
--fake-fpfs data/fpfs/zero --input "$_metmp" --output "$_me"
|
--fake-fpfs data/fpfs/zero --input "$_metmp" --output "$_me"
|
||||||
) || err "Error running deguard for $_me - $dontflash"; :
|
) || err "Error running deguard for $_me"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
find_me()
|
find_me()
|
||||||
@@ -172,7 +163,7 @@ extract_kbc1126ec()
|
|||||||
Rom.CAB Rom.bin || unar -D 68*.CAB Rom.bin || err "!kbc1126 unar"
|
Rom.CAB Rom.bin || unar -D 68*.CAB Rom.bin || err "!kbc1126 unar"
|
||||||
[ -f "ec.bin" ] || x_ mv Rom.bin ec.bin
|
[ -f "ec.bin" ] || x_ mv Rom.bin ec.bin
|
||||||
x_ e ec.bin f && x_ "$kbc1126_ec_dump" ec.bin
|
x_ e ec.bin f && x_ "$kbc1126_ec_dump" ec.bin
|
||||||
) || err "$board: can't extract kbc1126 ec firmware - $dontflash"
|
) || err "$board: can't extract kbc1126 ec firmware"
|
||||||
|
|
||||||
x_ e "$appdir/ec.bin.fw1" f && x_ e "$appdir/ec.bin.fw2" f
|
x_ e "$appdir/ec.bin.fw1" f && x_ e "$appdir/ec.bin.fw2" f
|
||||||
x_ cp "$appdir/"ec.bin.fw* "${_dest%/*}/"
|
x_ cp "$appdir/"ec.bin.fw* "${_dest%/*}/"
|
||||||
@@ -187,7 +178,7 @@ extract_e6400vga()
|
|||||||
x_ cd "$appdir"
|
x_ cd "$appdir"
|
||||||
x_ e "bios.bin" f
|
x_ e "bios.bin" f
|
||||||
"$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n"
|
"$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n"
|
||||||
) || err "can't extract e6400 vga rom - $dontflosh"
|
) || err "can't extract e6400 vga rom"
|
||||||
x_ cp "$appdir/$E6400_VGA_romname" "$_dest"
|
x_ cp "$appdir/$E6400_VGA_romname" "$_dest"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,6 +214,27 @@ extract_fsp()
|
|||||||
-o "${_dest%/*}" -n "Fsp.fd"
|
-o "${_dest%/*}" -n "Fsp.fd"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setvfile()
|
||||||
|
{
|
||||||
|
[ -n "$vcfg" ] && check_vcfg && for c in $cvchk; do
|
||||||
|
eval "[ \"\${$c}\" = \"/dev/null\" ] && continue"
|
||||||
|
eval "[ -z \"\${$c}\" ] && continue"
|
||||||
|
|
||||||
|
# valid vcfg. proceed to download files
|
||||||
|
eval "`setcfg "$vfile"`"
|
||||||
|
|
||||||
|
bootstrap
|
||||||
|
|
||||||
|
[ $# -gt 0 ] && getfiles
|
||||||
|
[ $# -gt 0 ] && return 1 # download
|
||||||
|
|
||||||
|
fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
||||||
|
( check_vendor_hashes ) || err "$archive: Can't verify hashes"
|
||||||
|
|
||||||
|
return 1
|
||||||
|
done && return 0; return 1
|
||||||
|
}
|
||||||
|
|
||||||
check_vcfg()
|
check_vcfg()
|
||||||
{
|
{
|
||||||
vfile="config/vendor/$vcfg/pkg.cfg"
|
vfile="config/vendor/$vcfg/pkg.cfg"
|
||||||
@@ -230,14 +242,20 @@ check_vcfg()
|
|||||||
[ -f "$vfile" ] || err "'$archive', '$board': $vfile missing"; :
|
[ -f "$vfile" ] || err "'$archive', '$board': $vfile missing"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
setvfile()
|
bootstrap()
|
||||||
{
|
{
|
||||||
[ -n "$vfile" ] && for c in $cvchk; do
|
cbdir="src/coreboot/$tree"
|
||||||
eval "[ \"\${$c}\" = \"/dev/null\" ] && continue"
|
mecleaner="$xbmkpwd/$cbdir/util/me_cleaner/me_cleaner.py"
|
||||||
eval "[ -z \"\${$c}\" ] && continue"
|
kbc1126_ec_dump="$xbmkpwd/$cbdir/util/kbc1126/kbc1126_ec_dump"
|
||||||
eval "`setcfg "$vfile"`"
|
cbfstool="elf/cbfstool/$tree/cbfstool"
|
||||||
return 1
|
rmodtool="elf/cbfstool/$tree/rmodtool"
|
||||||
done && return 0; return 1
|
|
||||||
|
x_ ./mk -f coreboot "${cbdir##*/}"
|
||||||
|
mk -b uefitool biosutilities bios_extract
|
||||||
|
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
|
||||||
|
[ -n "$MRC_refcode_cbtree" ] && \
|
||||||
|
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
|
||||||
|
x_ ./mk -d coreboot "$MRC_refcode_cbtree"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
prep()
|
prep()
|
||||||
|
|||||||
Reference in New Issue
Block a user