diff options
Diffstat (limited to 'include/vendor.sh')
-rw-r--r-- | include/vendor.sh | 57 |
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" |