mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-14 07:19:40 +02:00
Merge branch 'master' into 25.04_branch
This commit is contained in:
@@ -4,4 +4,4 @@ sersrc="src/pico-serprog"
|
|||||||
serx="$sersrc/build/pico_serprog.uf2"
|
serx="$sersrc/build/pico_serprog.uf2"
|
||||||
picosdk="src/pico-sdk"
|
picosdk="src/pico-sdk"
|
||||||
serdir="$picosdk/src/boards/include/boards"
|
serdir="$picosdk/src/boards/include/boards"
|
||||||
premake="mkserprog pico"
|
premake="$dry eval fx_ \"buildser pico\" x_ basename -as .h \"\$serdir/\"*.h"
|
||||||
|
|||||||
@@ -3,4 +3,4 @@
|
|||||||
sersrc="src/stm32-vserprog"
|
sersrc="src/stm32-vserprog"
|
||||||
serx="$sersrc/stm32-vserprog.hex"
|
serx="$sersrc/stm32-vserprog.hex"
|
||||||
serdir="$sersrc/boards"
|
serdir="$sersrc/boards"
|
||||||
mkhelper="mkserprog stm32"
|
mkhelper="$dry eval fx_ \"buildser stm32\" x_ basename -as .h \"\$serdir/\"*.h"
|
||||||
|
|||||||
+1
-1
@@ -108,7 +108,7 @@ tmpclone()
|
|||||||
(
|
(
|
||||||
[ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
|
[ $# -gt 5 ] || git clone "$repodir" "$3" || err "!clone $repodir $3"
|
||||||
git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5"
|
git -C "$3" reset --hard "$4" || err "!reset $1 $2 $3 $4 $5"
|
||||||
fx_ "eval x_ git -C \"$3\" am" "$5" -type f
|
fx_ "eval x_ git -C \"$3\" am" find "$5" -type f
|
||||||
) || repofail="y"
|
) || repofail="y"
|
||||||
|
|
||||||
[ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
|
[ "$repofail" = "y" ] && [ $# -lt 6 ] && tmpclone "$@" retry
|
||||||
|
|||||||
+27
-23
@@ -31,7 +31,7 @@ xbmk_init()
|
|||||||
id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)"
|
id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)"
|
||||||
[ "$(id -u)" != "0" ] || err "this command as root is not permitted"
|
[ "$(id -u)" != "0" ] || err "this command as root is not permitted"
|
||||||
|
|
||||||
for init_cmd in set_pyver set_env set_version git_init create_tmpdir \
|
for init_cmd in set_pyver set_version set_env git_init create_tmpdir \
|
||||||
lock create_pathdirs child_exec; do
|
lock create_pathdirs child_exec; do
|
||||||
xbmk_$init_cmd "$@" || break
|
xbmk_$init_cmd "$@" || break
|
||||||
done
|
done
|
||||||
@@ -80,8 +80,7 @@ pybin()
|
|||||||
# ideally, don't rely on PATH or hardcoded paths if python venv.
|
# ideally, don't rely on PATH or hardcoded paths if python venv.
|
||||||
# use the *real*, direct executable linked to by the venv symlink
|
# use the *real*, direct executable linked to by the venv symlink
|
||||||
if [ $venv -gt 0 ] && [ -L "`command -v "$1" 2>/dev/null`" ]; then
|
if [ $venv -gt 0 ] && [ -L "`command -v "$1" 2>/dev/null`" ]; then
|
||||||
# realpath isn't posix, but available mostly universally
|
pypath="$(findpath \
|
||||||
pypath="$(realpath \
|
|
||||||
"$(command -v "$1" 2>/dev/null)" 2>/dev/null || :)"
|
"$(command -v "$1" 2>/dev/null)" 2>/dev/null || :)"
|
||||||
[ -e "$pypath" ] && [ ! -d "$pypath" ] && \
|
[ -e "$pypath" ] && [ ! -d "$pypath" ] && \
|
||||||
[ -x "$pypath" ] && printf "%s\n" "$pypath" && return 0; :
|
[ -x "$pypath" ] && printf "%s\n" "$pypath" && return 0; :
|
||||||
@@ -98,26 +97,6 @@ pybin()
|
|||||||
command -v "$1" 2>/dev/null || return 1
|
command -v "$1" 2>/dev/null || return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_set_env()
|
|
||||||
{
|
|
||||||
# XBMK_CACHE is a directory, for caching downloads and git repon
|
|
||||||
[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
|
||||||
[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
|
||||||
[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \
|
|
||||||
err "cachedir '$xbmkpwd/cache' is a symlink"
|
|
||||||
[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
|
||||||
[ -f "$XBMK_CACHE" ] && err "cachedir '$XBMK_CACHE' is a file"; :
|
|
||||||
|
|
||||||
# if "y": a coreboot target won't be built if target.cfg says release="n"
|
|
||||||
# (this is used to exclude certain build targets from releases)
|
|
||||||
[ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n"
|
|
||||||
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
|
|
||||||
|
|
||||||
[ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
|
|
||||||
expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
|
|
||||||
1>/dev/null 2>/dev/null || export XBMK_THREADS=1; :
|
|
||||||
}
|
|
||||||
|
|
||||||
xbmk_set_version()
|
xbmk_set_version()
|
||||||
{
|
{
|
||||||
[ ! -f ".version" ] || read -r version < ".version" || :; :
|
[ ! -f ".version" ] || read -r version < ".version" || :; :
|
||||||
@@ -140,7 +119,32 @@ xbmk_set_version()
|
|||||||
printf "%s\n" "$versiondate" > ".versiondate" || err "can't save date"
|
printf "%s\n" "$versiondate" > ".versiondate" || err "can't save date"
|
||||||
|
|
||||||
relname="$projectname-$version"
|
relname="$projectname-$version"
|
||||||
|
}
|
||||||
|
|
||||||
|
xbmk_set_env()
|
||||||
|
{
|
||||||
export LOCALVERSION="-$projectname-${version%%-*}"
|
export LOCALVERSION="-$projectname-${version%%-*}"
|
||||||
|
|
||||||
|
# XBMK_CACHE is a directory, for caching downloads and git repon
|
||||||
|
[ -z "${XBMK_CACHE+x}" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
||||||
|
[ -z "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
||||||
|
[ -L "$XBMK_CACHE" ] && [ "$XBMK_CACHE" = "$xbmkpwd/cache" ] && \
|
||||||
|
err "cachedir '$xbmkpwd/cache' is a symlink"
|
||||||
|
[ -L "$XBMK_CACHE" ] && export XBMK_CACHE="$xbmkpwd/cache"
|
||||||
|
xbmkcache="`findpath "$XBMK_CACHE"`" || \
|
||||||
|
err "Can't resolve cachedir: '$XBMK_CACHE'"
|
||||||
|
export XBMK_CACHE="$xbmkcache"
|
||||||
|
[ -d "$XBMK_CACHE" ] || err "cachedir '$XBMK_CACHE' is a file"; :
|
||||||
|
|
||||||
|
# if "y": a coreboot target won't be built if target.cfg says release="n"
|
||||||
|
# (this is used to exclude certain build targets from releases)
|
||||||
|
[ -z "${XBMK_RELEASE+x}" ] && export XBMK_RELEASE="n"
|
||||||
|
[ "$XBMK_RELEASE" = "Y" ] && export XBMK_RELEASE="y"
|
||||||
|
[ "$XBMK_RELEASE" = "y" ] || export XBMK_RELEASE="n"
|
||||||
|
|
||||||
|
[ -z "${XBMK_THREADS+x}" ] && export XBMK_THREADS=1
|
||||||
|
expr "X$XBMK_THREADS" : "X-\{0,1\}[0123456789][0123456789]*$" \
|
||||||
|
1>/dev/null 2>/dev/null || export XBMK_THREADS=1; :
|
||||||
}
|
}
|
||||||
|
|
||||||
xbmk_git_init()
|
xbmk_git_init()
|
||||||
|
|||||||
+26
-64
@@ -13,7 +13,6 @@ 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. !!!"
|
dontflash="!!! AN ERROR OCCURED! Please DO NOT flash if injection failed. !!!"
|
||||||
vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_FILES_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_"
|
vfix="DO_NOT_FLASH_YET._FIRST,_INJECT_FILES_VIA_INSTRUCTIONS_ON_LIBREBOOT.ORG_"
|
||||||
vguide="https://libreboot.org/docs/install/ivy_has_common.html"
|
|
||||||
tmpromdel="$xbmklocal/DO_NOT_FLASH"
|
tmpromdel="$xbmklocal/DO_NOT_FLASH"
|
||||||
nvm="util/nvmutil/nvm"
|
nvm="util/nvmutil/nvm"
|
||||||
ifdtool="elf/ifdtool/default/ifdtool"
|
ifdtool="elf/ifdtool/default/ifdtool"
|
||||||
@@ -35,7 +34,7 @@ eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
|
|||||||
mecleaner kbc1126_ec_dump MRC_refcode_cbtree new_mac _dl SCH5545EC_DL_url \
|
mecleaner kbc1126_ec_dump MRC_refcode_cbtree new_mac _dl SCH5545EC_DL_url \
|
||||||
archive EC_url boarddir rom cbdir DL_url nukemode cbfstoolref FSPFD_hash \
|
archive EC_url boarddir rom cbdir DL_url nukemode cbfstoolref FSPFD_hash \
|
||||||
_7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch tmpromdir \
|
_7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch tmpromdir \
|
||||||
IFD_platform ifdprefix cdir sdir _me _metmp mfs TBFW_url_bkup TBFW_url \
|
IFD_platform ifdprefix _me _metmp mfs TBFW_url_bkup TBFW_url \
|
||||||
TBFW_hash TBFW_size hashfile xromsize xchanged EC_url_bkup need_files \
|
TBFW_hash TBFW_size hashfile xromsize xchanged EC_url_bkup need_files \
|
||||||
vfile cbcfg $cv`"
|
vfile cbcfg $cv`"
|
||||||
|
|
||||||
@@ -49,7 +48,7 @@ download()
|
|||||||
readkconfig()
|
readkconfig()
|
||||||
{
|
{
|
||||||
x_ rm -f "$xbmktmp/cbcfg"
|
x_ rm -f "$xbmktmp/cbcfg"
|
||||||
fe_ scankconfig "$boarddir/config" -type f
|
fx_ scankconfig x_ find "$boarddir/config" -type f
|
||||||
|
|
||||||
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
eval "`setcfg "$xbmktmp/cbcfg" 1`"
|
||||||
|
|
||||||
@@ -139,15 +138,16 @@ extract_intel_me()
|
|||||||
{
|
{
|
||||||
e "$mecleaner" f not && err "$cbdir: me_cleaner missing. $dontflash"
|
e "$mecleaner" f not && err "$cbdir: me_cleaner missing. $dontflash"
|
||||||
|
|
||||||
cdir="$xbmkpwd/$appdir"
|
_7ztest="$xbmklocal/metmp/a"
|
||||||
_me="$xbmkpwd/$_dest"
|
_me="$xbmkpwd/$_dest"
|
||||||
_metmp="$xbmklocal/me.bin"
|
_metmp="$xbmklocal/me.bin"
|
||||||
|
x_ rm -f "$_metmp" "$xbmklocal/a"
|
||||||
|
|
||||||
mfs="" && [ "$ME11bootguard" = "y" ] && mfs="--whitelist MFS" && \
|
mfs="" && [ "$ME11bootguard" = "y" ] && mfs="--whitelist MFS" && \
|
||||||
chkvars ME11delta ME11version ME11sku ME11pch
|
chkvars ME11delta ME11version ME11sku ME11pch
|
||||||
[ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard
|
[ "$ME11bootguard" = "y" ] && x_ ./mk -f deguard
|
||||||
|
|
||||||
extract_intel_me_bruteforce
|
set +u +e && fx_ find_me x_ find "$xbmkpwd/$appdir" -type f
|
||||||
[ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0
|
[ "$ME11bootguard" != "y" ] && x_ mv "$_metmp" "$_me" && return 0
|
||||||
|
|
||||||
(
|
(
|
||||||
@@ -158,38 +158,18 @@ extract_intel_me()
|
|||||||
) || err "Error running deguard for $_me - $dontflash"; :
|
) || err "Error running deguard for $_me - $dontflash"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_intel_me_bruteforce()
|
find_me()
|
||||||
{
|
{
|
||||||
[ $# -gt 0 ] && cdir="$1"
|
e "$_metmp" f && x_ rm -Rf "$xbmklocal/metmp" && return 1
|
||||||
e "$_metmp" f && return 0
|
[ -L "$1" ] && return 0
|
||||||
|
|
||||||
[ -z "$sdir" ] && sdir="$(mktemp -d)"
|
_7ztest="${_7ztest}a" && _r="-r" && [ -n "$mfs" ] && _r=""
|
||||||
x_ mkdir -p "$sdir"
|
|
||||||
|
|
||||||
set +u +e
|
"$mecleaner" $mfs $_r -t -O "$xbmklocal/a" -M "$_metmp" "$1" || \
|
||||||
(
|
"$mecleaner" $mfs $_r -t -O "$_metmp" "$1" || "$me7updateparser" \
|
||||||
[ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}"
|
-O "$_metmp" "$1" || extract_archive "$1" "$_7ztest" || return 0
|
||||||
cd "$cdir" || err "extract_intel_me: !cd \"$cdir\" - $dontflash"
|
|
||||||
for i in *; do
|
fx_ find_me x_ find "$_7ztest" -type f || return 1; :
|
||||||
c=0 && e "$_metmp" f && break
|
|
||||||
[ -L "$i" ] && continue
|
|
||||||
[ -e "$i" ] || continue
|
|
||||||
[ -d "$i" ] && extract_intel_me_bruteforce "$cdir/$i" && c=1
|
|
||||||
if [ $c -eq 0 ] && [ -f "$i" ]; then
|
|
||||||
_r="-r" && [ -n "$mfs" ] && _r=""
|
|
||||||
"$mecleaner" $mfs $_r -t -O "$sdir/vendorfile" \
|
|
||||||
-M "$_metmp" "$i" && break
|
|
||||||
"$mecleaner" $mfs $_r -t -O "$_metmp" "$i" && break
|
|
||||||
"$me7updateparser" -O "$_metmp" "$i" && break
|
|
||||||
_7ztest="${_7ztest}a"
|
|
||||||
extract_archive "$i" "$_7ztest" || continue
|
|
||||||
extract_intel_me_bruteforce "$cdir/$_7ztest"
|
|
||||||
fi
|
|
||||||
cdir="$1"; [ "${cdir#/a}" != "$cdir" ] && cdir="${cdir#/}"
|
|
||||||
cd "$cdir" || :
|
|
||||||
done
|
|
||||||
) || :
|
|
||||||
rm -Rf "$sdir" || err "extract_intel_me: !rm -Rf $sdir - $dontflash"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extract_archive()
|
extract_archive()
|
||||||
@@ -202,15 +182,11 @@ extract_archive()
|
|||||||
|
|
||||||
extract_kbc1126ec()
|
extract_kbc1126ec()
|
||||||
{
|
{
|
||||||
x_ e "$kbc1126_ec_dump" f
|
|
||||||
(
|
(
|
||||||
x_ cd "$appdir/"
|
x_ cd "$appdir/"
|
||||||
mv Rompaq/68*.BIN ec.bin || :
|
mv Rompaq/68*.BIN ec.bin || unar -D ROM.CAB Rom.bin || unar -D \
|
||||||
if [ ! -f "ec.bin" ]; then
|
Rom.CAB Rom.bin || unar -D 68*.CAB Rom.bin || err "!kbc1126 unar"
|
||||||
unar -D ROM.CAB Rom.bin || unar -D Rom.CAB Rom.bin || \
|
[ -f "ec.bin" ] || x_ mv Rom.bin ec.bin
|
||||||
unar -D 68*.CAB Rom.bin || err "kbc1126 unar failed"
|
|
||||||
x_ mv Rom.bin ec.bin
|
|
||||||
fi
|
|
||||||
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 - $dontflash"
|
||||||
|
|
||||||
@@ -248,10 +224,10 @@ extract_sch5545ec()
|
|||||||
# https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480-type-20l5-20l6/20l5/solutions/ht508988
|
# https://pcsupport.lenovo.com/us/en/products/laptops-and-netbooks/thinkpad-t-series-laptops/thinkpad-t480-type-20l5-20l6/20l5/solutions/ht508988
|
||||||
extract_tbfw()
|
extract_tbfw()
|
||||||
{
|
{
|
||||||
chkvars TBFW_size && fe_ copy_tbfw "$appdir" -type f -name "TBT.bin"
|
chkvars TBFW_size; fx_ copytb x_ find "$appdir" -type f -name "TBT.bin"
|
||||||
}
|
}
|
||||||
|
|
||||||
copy_tbfw()
|
copytb()
|
||||||
{
|
{
|
||||||
[ -f "$1" ] && [ ! -L "$1" ] && x_ dd if=/dev/null of="$1" bs=1 \
|
[ -f "$1" ] && [ ! -L "$1" ] && x_ dd if=/dev/null of="$1" bs=1 \
|
||||||
seek=$TBFW_size && x_ mv "$1" "$_dest" && return 1; :
|
seek=$TBFW_size && x_ mv "$1" "$_dest" && return 1; :
|
||||||
@@ -358,23 +334,14 @@ patch_release_roms()
|
|||||||
x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}"
|
x_ tar -xf "$archive" -C "${tmpromdir%"/bin/$board"}"
|
||||||
|
|
||||||
for _hashes in $hashfiles; do
|
for _hashes in $hashfiles; do
|
||||||
[ "$need_files" = "y" ] || break
|
[ "$need_files" = "y" ] && e "$tmpromdir/$_hashes" f && \
|
||||||
e "$tmpromdir/$_hashes" f && has_hashes="y" && \
|
has_hashes="y" && hashfile="$_hashes" && break; :
|
||||||
hashfile="$_hashes" && break; :
|
|
||||||
done
|
done
|
||||||
|
|
||||||
if readkconfig; then
|
readkconfig || exit 0; [ "$need_files" = "n" ] || \
|
||||||
fe_ prep_rom "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
|
||||||
[ "$nukemode" != "nuke" ] || \
|
|
||||||
printf "Make sure you inserted vendor files: %s\n" \
|
|
||||||
"$vguide" > "$tmpromdir/README.md" || :
|
|
||||||
else
|
|
||||||
printf "Skipping vendorfiles on '%s'\n" "$archive" 1>&2
|
|
||||||
need_files="n"
|
|
||||||
fi
|
|
||||||
|
|
||||||
(
|
(
|
||||||
[ "$need_files" = "y" ] || exit 0
|
|
||||||
cd "$tmpromdir" || err "patch '$archive': can't cd $tmpromdir"
|
cd "$tmpromdir" || err "patch '$archive': can't cd $tmpromdir"
|
||||||
# NOTE: For compatibility with older rom releases, defer to sha1
|
# NOTE: For compatibility with older rom releases, defer to sha1
|
||||||
if [ "$has_hashes" = "y" ] && [ "$nukemode" != "nuke" ]; then
|
if [ "$has_hashes" = "y" ] && [ "$nukemode" != "nuke" ]; then
|
||||||
@@ -384,7 +351,7 @@ patch_release_roms()
|
|||||||
fi
|
fi
|
||||||
) || err "'$archive' -> Can't verify vendor hashes. $dontflash"
|
) || err "'$archive' -> Can't verify vendor hashes. $dontflash"
|
||||||
|
|
||||||
[ -z "$new_mac" ] || modify_mac || printf "\nGbE not defined\n" 1>&2
|
[ -z "$new_mac" ] || [ -z "$CONFIG_GBE_BIN_PATH" ] || modify_mac
|
||||||
|
|
||||||
[ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || :
|
[ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || :
|
||||||
[ "$xchanged" = "y" ] || return 0
|
[ "$xchanged" = "y" ] || return 0
|
||||||
@@ -398,7 +365,7 @@ patch_release_roms()
|
|||||||
"$archive" || err "'$archive' -> Can't overwrite - $dontflash"; :
|
"$archive" || err "'$archive' -> Can't overwrite - $dontflash"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
prep_rom()
|
prep()
|
||||||
{
|
{
|
||||||
_xrom="$1"
|
_xrom="$1"
|
||||||
_xromname="${1##*/}"
|
_xromname="${1##*/}"
|
||||||
@@ -506,16 +473,11 @@ insert()
|
|||||||
|
|
||||||
modify_mac()
|
modify_mac()
|
||||||
{
|
{
|
||||||
[ -n "$CONFIG_GBE_BIN_PATH" ] || return 1
|
|
||||||
|
|
||||||
x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "$xbmklocal/gbe"
|
x_ cp "${CONFIG_GBE_BIN_PATH##*../}" "$xbmklocal/gbe"
|
||||||
[ -n "$new_mac" ] && [ "$new_mac" != "restore" ] && \
|
[ -n "$new_mac" ] && [ "$new_mac" != "restore" ] && \
|
||||||
x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac"
|
x_ "$nvm" "$xbmklocal/gbe" setmac "$new_mac"
|
||||||
|
|
||||||
fe_ newmac "$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()
|
||||||
|
|||||||
+14
-14
@@ -140,34 +140,35 @@ chkvars()
|
|||||||
# e.g. coreboot is multi-tree, so 1
|
# e.g. coreboot is multi-tree, so 1
|
||||||
singletree()
|
singletree()
|
||||||
{
|
{
|
||||||
( fx_ "exit 1" "config/$1/"*/ -type f -name "target.cfg" ) || return 1
|
( fx_ "exit 1" find "config/$1/"*/ -type f -name "target.cfg" ) || \
|
||||||
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
fe_()
|
findpath()
|
||||||
{
|
{
|
||||||
find_ex "x_" "$@"
|
[ $# -gt 0 ] || err "findpath: No arguments provided"
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
found="`readlink -f "$1" 2>/dev/null`" || return 1; :
|
||||||
|
[ -n "$found" ] || found="`realpath "$1" 2>/dev/null`" || \
|
||||||
|
return 1; :
|
||||||
|
printf "%s\n" "$found"
|
||||||
|
shift 1
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
fx_()
|
fx_()
|
||||||
{
|
{
|
||||||
find_ex "" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
find_ex()
|
|
||||||
{
|
|
||||||
xmsg="$1" && shift 1
|
|
||||||
fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd"
|
fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd"
|
||||||
xx="$1" && shift 1
|
xx="$1" && shift 1
|
||||||
$xmsg find "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || \
|
"$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_"
|
||||||
err "!find $(echo "$@") > \"$fd\""
|
dx_ "$xx" "$fd" || break
|
||||||
dx_ "$xx" "$fd"
|
|
||||||
x_ rm -f "$fd"
|
x_ rm -f "$fd"
|
||||||
}
|
}
|
||||||
|
|
||||||
dx_()
|
dx_()
|
||||||
{
|
{
|
||||||
[ -f "$2" ] && while read -r fx; do
|
[ -f "$2" ] && while read -r fx; do
|
||||||
$1 "$fx"
|
$1 "$fx" || return 1
|
||||||
done < "$2"; :
|
done < "$2"; :
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,7 +180,6 @@ x_()
|
|||||||
|
|
||||||
err()
|
err()
|
||||||
{
|
{
|
||||||
set -u -e
|
|
||||||
[ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || :
|
[ $# -lt 1 ] || printf "ERROR %s: %s\n" "$0" "$1" 1>&2 || :
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-18
@@ -7,24 +7,15 @@
|
|||||||
|
|
||||||
grubdata="config/data/grub"
|
grubdata="config/data/grub"
|
||||||
|
|
||||||
mkserprog()
|
buildser()
|
||||||
{
|
{
|
||||||
[ "$_f" = "-d" ] && return 0 # dry run
|
[ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$2" \
|
||||||
basename -as .h "$serdir/"*.h > "$xbmktmp/ser" || \
|
-DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" && \
|
||||||
err "!mk $1 $xbmktmp"
|
x_ cmake --build "$sersrc/build"
|
||||||
|
[ "$1" = "stm32" ] && x_ make -C "$sersrc" libopencm3-just-make \
|
||||||
while read -r sertarget; do
|
BOARD=$2 && x_ make -C "$sersrc" BOARD=$2
|
||||||
[ "$1" = "pico" ] && x_ cmake -DPICO_BOARD="$sertarget" \
|
x_ mkdir -p "bin/serprog_$1"
|
||||||
-DPICO_SDK_PATH="$picosdk" -B "$sersrc/build" "$sersrc" \
|
x_ mv "$serx" "bin/serprog_$1/serprog_$2.${serx##*.}"
|
||||||
&& x_ cmake --build "$sersrc/build"
|
|
||||||
[ "$1" = "stm32" ] && x_ make -C "$sersrc" \
|
|
||||||
libopencm3-just-make BOARD=$sertarget && x_ make -C \
|
|
||||||
"$sersrc" BOARD=$sertarget
|
|
||||||
x_ mkdir -p "bin/serprog_$1"
|
|
||||||
x_ mv "$serx" "bin/serprog_$1/serprog_$sertarget.${serx##*.}"
|
|
||||||
done < "$xbmktmp/ser"
|
|
||||||
|
|
||||||
[ "$XBMK_RELEASE" = "y" ] && mkrom_tarball "bin/serprog_$1"; :
|
|
||||||
}
|
}
|
||||||
|
|
||||||
copyps1bios()
|
copyps1bios()
|
||||||
@@ -192,7 +183,7 @@ mkseagrub()
|
|||||||
[ "$payload_grubsea" = "y" ] && pname="grub"
|
[ "$payload_grubsea" = "y" ] && pname="grub"
|
||||||
[ "$payload_grubsea" = "y" ] || \
|
[ "$payload_grubsea" = "y" ] || \
|
||||||
cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
|
cbfs "$tmprom" "$grubdata/bootorder" bootorder raw
|
||||||
fe_ "cprom" "$grubdata/keymap" -type f -name "*.gkb"
|
fx_ cprom x_ find "$grubdata/keymap" -type f -name "*.gkb"
|
||||||
}
|
}
|
||||||
|
|
||||||
add_uboot()
|
add_uboot()
|
||||||
|
|||||||
@@ -87,6 +87,8 @@ build_release()
|
|||||||
cd "$srcdir" || err "$vdir: 2 !cd \"$srcdir\""
|
cd "$srcdir" || err "$vdir: 2 !cd \"$srcdir\""
|
||||||
x_ ./mk -d coreboot
|
x_ ./mk -d coreboot
|
||||||
mk -b coreboot pico-serprog stm32-vserprog pcsx-redux
|
mk -b coreboot pico-serprog stm32-vserprog pcsx-redux
|
||||||
|
|
||||||
|
fx_ mkrom_tarball x_ find bin -maxdepth 1 -type d -name "serprog_*"
|
||||||
x_ mv bin ../roms
|
x_ mv bin ../roms
|
||||||
) || err "can't build rom images"
|
) || err "can't build rom images"
|
||||||
|
|
||||||
@@ -279,7 +281,7 @@ check_project_hashes()
|
|||||||
[ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \
|
[ ! -f "$XBMK_CACHE/hash/$project$tree" ] || \
|
||||||
read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree"
|
read -r old_pjhash < "$XBMK_CACHE/hash/$project$tree"
|
||||||
|
|
||||||
fx_ "x_ sha512sum" "$datadir" "$configdir/$tree" "$mdir" \
|
fx_ "x_ sha512sum" find "$datadir" "$configdir/$tree" "$mdir" \
|
||||||
-type f -not -path "*/.git*/*" | awk '{print $1}' > \
|
-type f -not -path "*/.git*/*" | awk '{print $1}' > \
|
||||||
"$xbmktmp/project.hash" || err "!h $project $tree"
|
"$xbmktmp/project.hash" || err "!h $project $tree"
|
||||||
|
|
||||||
@@ -371,7 +373,7 @@ check_defconfig()
|
|||||||
elfcheck()
|
elfcheck()
|
||||||
{
|
{
|
||||||
# TODO: *STILL* very hacky check. do it properly (based on build.list)
|
# TODO: *STILL* very hacky check. do it properly (based on build.list)
|
||||||
( fx_ "exit 1" "$dest_dir" -type f ) || return 1; :
|
( fx_ "exit 1" find "$dest_dir" -type f ) || return 1; :
|
||||||
}
|
}
|
||||||
|
|
||||||
handle_makefile()
|
handle_makefile()
|
||||||
|
|||||||
Reference in New Issue
Block a user