summaryrefslogtreecommitdiff
path: root/include/vendor.sh
diff options
context:
space:
mode:
Diffstat (limited to 'include/vendor.sh')
-rw-r--r--include/vendor.sh57
1 files changed, 26 insertions, 31 deletions
diff --git a/include/vendor.sh b/include/vendor.sh
index 1c553300..823ba74f 100644
--- a/include/vendor.sh
+++ b/include/vendor.sh
@@ -30,18 +30,17 @@ cvxbmk="CONFIG_ME_BIN_PATH CONFIG_SMSC_SCH5545_EC_FW_FILE CONFIG_KBC1126_FW1 \
CONFIG_KBC1126_FW2 CONFIG_KBC1126_FW1_OFFSET CONFIG_KBC1126_FW2_OFFSET \
CONFIG_VGA_BIOS_ID CONFIG_BOARD_DELL_E6400 CONFIG_FSP_S_CBFS \
CONFIG_HAVE_REFCODE_BLOB CONFIG_REFCODE_BLOB_FILE CONFIG_FSP_FD_PATH \
- CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE CONFIG_FSP_M_CBFS"
+ CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE CONFIG_FSP_M_CBFS \
+ CONFIG_FSP_USE_REPO CONFIG_FSP_FULL_FD"
# lbmk-specific extensions; mostly used for downloading vendor files
eval "`setvars "" has_hashes EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \
- E6400_VGA_romname SCH5545EC_DL_url_bkup SCH5545EC_DL_hash _dest \
- mecleaner kbc1126_ec_dump MRC_refcode_cbtree _dl SCH5545EC_DL_url \
- EC_url rom DL_url nukemode cbfstoolref FSPFD_hash \
- _7ztest ME11bootguard ME11delta ME11version ME11sku ME11pch \
- _me _metmp mfs TBFW_url_bkup TBFW_url TBFW_hash \
- TBFW_size hashfile xromsize xchanged EC_url_bkup vfile \
- CONFIG_FSP_USE_REPO CONFIG_FSP_FULL_FD cbdir`"
+ E6400_VGA_romname SCH5545EC_DL_url_bkup SCH5545EC_DL_hash _dest mecleaner \
+ kbc1126_ec_dump MRC_refcode_cbtree _dl SCH5545EC_DL_url EC_url rom DL_url \
+ nukemode cbfstoolref FSPFD_hash _7ztest ME11bootguard ME11delta xromsize \
+ ME11version ME11sku ME11pch _me _metmp mfs TBFW_url_bkup TBFW_url cbdir \
+ TBFW_hash TBFW_size hashfile EC_url_bkup`"
download()
{
@@ -91,7 +90,7 @@ fetch()
done; :
dlop="curl" && [ $# -gt 5 ] && dlop="$6"
- xbmkget "$dl" "$dl_bkup" "$_dl" "$dlsum" "$dlop"
+ xbmkget "$dlop" "$dl" "$dl_bkup" "$_dl" "$dlsum"
x_ rm -Rf "${_dl}_extracted"
e "$_dest" f && return 0
@@ -216,30 +215,18 @@ extract_fsp()
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
+ [ -n "$vcfg" ] && for c in $cvchk; do
+ vcmd="[ \"\${$c}\" != \"/dev/null\" ] && [ -n \"\${$c}\" ]"
+ eval "$vcmd && getvfile \"\$@\" && return 0"
+ done && return 1; :
}
-check_vcfg()
+getvfile()
{
- vfile="config/vendor/$vcfg/pkg.cfg"
- [ -L "$vfile" ] && err "'$archive', '$board': $vfile is a symlink"; :
- [ -f "$vfile" ] || err "'$archive', '$board': $vfile missing"; :
+ eval "`setcfg "config/vendor/$vcfg/pkg.cfg" 1`"
+ bootstrap && [ $# -gt 0 ] && getfiles && return 0 # download
+ fx_ prep x_ find "$tmpromdir" -maxdepth 1 -type f -name "*.rom"
+ ( check_vendor_hashes ) || err "$archive: Can't verify hashes"; :
}
bootstrap()
@@ -251,7 +238,7 @@ bootstrap()
rmodtool="elf/cbfstool/$tree/rmodtool"
x_ ./mk -f coreboot "${cbdir##*/}"
- mk -b uefitool biosutilities bios_extract
+ fx_ "x_ ./mk -b" printf "uefitool\nbiosutilities\nbios_extract\n"
[ -d "${kbc1126_ec_dump%/*}" ] && x_ make -C "$cbdir/util/kbc1126"
[ -n "$MRC_refcode_cbtree" ] && \
cbfstoolref="elf/cbfstool/$MRC_refcode_cbtree/cbfstool" && \
@@ -290,6 +277,14 @@ prep()
x_ rm -f "$_xrom"
}
+mksha512sum()
+{
+ (
+ [ "${1%/*}" != "$1" ] && x_ cd "${1%/*}"
+ sha512sum ./"${1##*/}" >> "$2" || err "!sha512sum \"$1\" > \"$2\""
+ ) || err "failed to create tarball checksum"
+}
+
add_vfiles()
{
rom="$1"