diff options
| -rwxr-xr-x | build | 13 | ||||
| -rwxr-xr-x | include/git.sh | 3 | ||||
| -rwxr-xr-x | include/mrc.sh | 26 | ||||
| -rwxr-xr-x | include/option.sh | 4 | ||||
| -rwxr-xr-x | script/build/fw/coreboot | 26 | ||||
| -rwxr-xr-x | script/update/project/trees | 16 | ||||
| -rwxr-xr-x | script/update/vendor/download | 8 | ||||
| -rwxr-xr-x | script/update/vendor/inject | 2 | 
8 files changed, 39 insertions, 59 deletions
@@ -59,7 +59,7 @@ initialise_command()  	[ "${mode}" = "help" ] && usage ${0} && lbmk_exit 0  	if [ "${mode}" = "list" ]; then -		listitems "${buildpath}" +		items "${buildpath}"  		lbmk_exit 0  	elif [ $# -lt 2 ]; then  		usage ${0} @@ -91,15 +91,8 @@ install_packages()  execute_command()  { -	if [ "${option}" = "list" ]; then -		xx_ listitems "${buildpath}/${mode}" -		lbmk_exit 0 -	fi +	[ "$option" = "list" ] && xx_ items "$buildpath/$mode" && lbmk_exit 0  	lbmkcmd="${buildpath}/${mode}/${option}" -	[ "${lbmkcmd}" = "./script/build/boot/roms" ] && \ -		printf "NOTE: ./build boot roms now: ./build fw coreboot\n" 1>&2 -	[ "${lbmkcmd%/*}" = "./script/update/blobs" ] && \ -		printf "NOTE: ./update blobs is now: ./update vendor\n" 1>&2  	[ -f "${lbmkcmd}" ] || fail "Invalid command. Run: ${linkpath} help"  	"${lbmkcmd}" $@ || fail "execute_command: ${lbmkcmd} ${@}"  } @@ -111,7 +104,7 @@ usage()  	USAGE:	${progname} <MODE> <OPTION>  	possible values for 'mode': -	$(listitems "${buildpath}") +	$(items "${buildpath}")  	For each of the above modes, you may also do:  	${progname} <MODE> list diff --git a/include/git.sh b/include/git.sh index 7f926c28..9e6c60db 100755 --- a/include/git.sh +++ b/include/git.sh @@ -4,8 +4,7 @@  # This file is only used by update/project/trees -eval "$(setvars "" _target rev _xm)" -eval "$(setvars "" loc url bkup_url depend)" +eval "$(setvars "" _target rev _xm loc url bkup_url depend)"  tmp_git_dir="${PWD}/tmp/gitclone"  fetch_project_trees() diff --git a/include/mrc.sh b/include/mrc.sh index 4ff067a9..3c6ac24e 100755 --- a/include/mrc.sh +++ b/include/mrc.sh @@ -4,7 +4,7 @@  # Modifications in this version are Copyright 2021 and 2023 Leah Rowe.  # Original copyright detailed in repo: https://review.coreboot.org/coreboot/ -eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board)" +eval "$(setvars "" MRC_url MRC_url_bkup MRC_hash MRC_board ROOTFS SHELLBALL)"  extract_mrc()  { @@ -12,14 +12,14 @@ extract_mrc()  	[ -z "${CONFIG_MRC_FILE}" ] && \  		err "extract_mrc $MRC_hash: CONFIG_MRC_FILE not set" -	_file="${MRC_url##*/}" -	_file="${_file%.zip}" +	ROOTFS="root-a.ext2" +	SHELLBALL="chromeos-firmwareupdate-${MRC_board}"  	(  	x_ cd "${appdir}" -	extract_partition ROOT-A "${_file}" root-a.ext2 -	extract_shellball root-a.ext2 chromeos-firmwareupdate-${MRC_board} -	extract_coreboot chromeos-firmwareupdate-${MRC_board} +	extract_partition +	extract_shellball +	extract_coreboot  	)  	x_ "${cbfstool}" "${appdir}/"coreboot-*.bin extract -n mrc.bin \ @@ -28,9 +28,9 @@ extract_mrc()  extract_partition()  { -	NAME=${1} -	FILE=${2} -	ROOTFS=${3} +	NAME="ROOT-A" +	FILE="${MRC_url##*/}" +	FILE="${FILE%.zip}"  	_bs=1024  	printf "Extracting ROOT-A partition\n" @@ -46,9 +46,6 @@ extract_partition()  extract_shellball()  { -	ROOTFS=${1} -	SHELLBALL=${2} -  	printf "Extracting chromeos-firmwareupdate\n"  	printf "cd /usr/sbin\ndump chromeos-firmwareupdate ${SHELLBALL}\nquit" \  	    | debugfs "${ROOTFS}" || err "extract_shellball: debugfs" @@ -56,13 +53,12 @@ extract_shellball()  extract_coreboot()  { -	_shellball=${1}  	_unpacked=$( mktemp -d )  	printf "Extracting coreboot image\n" -	[ -f "${_shellball}" ] || \ +	[ -f "${SHELLBALL}" ] || \  	    err "extract_coreboot: shellball missing in google cros image" -	x_ sh "${_shellball}" --unpack "${_unpacked}" +	x_ sh "${SHELLBALL}" --unpack "${_unpacked}"  	# TODO: audit the f* out of that shellball, for each mrc version.  	# it has to be updated for each mrc update. we should ideally diff --git a/include/option.sh b/include/option.sh index 991ec0dc..73a567bb 100755 --- a/include/option.sh +++ b/include/option.sh @@ -17,11 +17,11 @@ eval "$(setvars "" CONFIG_BOARD_DELL_E6400 CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \      CONFIG_INCLUDE_SMSC_SCH5545_EC_FW CONFIG_SMSC_SCH5545_EC_FW_FILE \      CONFIG_IFD_BIN_PATH CONFIG_MRC_FILE _dest board boarddir)" -listitems() +items()  {  	rval=1  	[ ! -d "${1}" ] && \ -		printf "listitems: directory '%s' doesn't exist" "${1}" && \ +		printf "items: directory '%s' doesn't exist" "${1}" && \  		    return 1  	for x in "${1}/"*; do  		# -e used because this is for files *or* directories diff --git a/script/build/fw/coreboot b/script/build/fw/coreboot index 9e266ce7..8853f749 100755 --- a/script/build/fw/coreboot +++ b/script/build/fw/coreboot @@ -25,15 +25,14 @@ pv="${pv} payload_seabios_withgrub payload_uboot memtest_bin"  v="romdir cbrom initmode displaymode cbcfg targetdir tree arch"  v="${v} grub_timeout ubdir vendorfiles board grub_scan_disk uboot_config"  eval "$(setvars "n" ${pv})" -eval "$(setvars "" ${v})" -eval "$(setvars "" boards _displaymode _payload _keyboard all targets)" +eval "$(setvars "" ${v} boards _displaymode _payload _keyboard all targets)"  main()  {  	while [ $# -gt 0 ]; do  		case ${1} in  		help) usage && exit 0 ;; -		list) listitems config/coreboot && exit 0 ;; +		list) items config/coreboot && exit 0 ;;  		-d) _displaymode="${2}" ;;  		-p) _payload="${2}" ;;  		-k) _keyboard="${2}" ;; @@ -45,7 +44,7 @@ main()  		shift 2  	done -	[ "${all}" != "y" ] || boards=$(listitems config/coreboot) || \ +	[ "${all}" != "y" ] || boards=$(items config/coreboot) || \  	    err "Cannot generate list of boards for building"  	for x in ${boards}; do @@ -63,11 +62,7 @@ main()  	printf "\nROM images available in these directories:\n"  	printf "${targets}^^ ROM images available in these directories.\n\n" -	printf "WARNING!!!!!!! PLEASE READ:\n\n" - -	printf "DO NOT flash ROM images contained under elf/, because they lack" -	printf " payloads and will BRICK your machine. Please flash ROM images" -	printf " contained under bin/ instead. YOU HAVE BEEN WARNED.\n\n" +	printf "DO NOT flash ROM images from elf/ - please use bin/ instead.\n"  }  check_target() @@ -151,13 +146,12 @@ prepare_target()  build_dependency_seabios()  {  	[ "${payload_seabios}" = "y" ] || return 0 +	[ -f "${seavgabiosrom}" ] && \ +	    [ -f elf/seabios/default/libgfxinit/bios.bin.elf ] && \ +	    [ -f elf/seabios/default/vgarom/bios.bin.elf ] && \ +	    [ -f elf/seabios/default/normal/bios.bin.elf ] && return 0 -	if [ ! -f "${seavgabiosrom}" ] \ -	    || [ ! -f elf/seabios/default/libgfxinit/bios.bin.elf ] \ -	    || [ ! -f elf/seabios/default/vgarom/bios.bin.elf ] \ -	    || [ ! -f elf/seabios/default/normal/bios.bin.elf ]; then -		x_ ./update project trees -b seabios -	fi +	x_ ./update project trees -b seabios  }  build_dependency_grub() @@ -413,7 +407,7 @@ usage()  		./build fw coreboot x60 -p grub -d corebootfb -k usqwerty  	possible values for 'target': -	$(listitems "config/coreboot") +	$(items "config/coreboot")  	Refer to the ${projectname} documentation for more information.  	EOF diff --git a/script/update/project/trees b/script/update/project/trees index c8643966..7ba9a38b 100755 --- a/script/update/project/trees +++ b/script/update/project/trees @@ -87,7 +87,7 @@ build_targets()  	[ $# -gt 0 ] && target1="${1}"  	[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && \  		shift 1 -	targets=$(listitems "${cfgsdir}") || \ +	targets=$(items "${cfgsdir}") || \  	    err "Cannot get options for ${cfgsdir}"  	[ $# -gt 0 ] && targets=$@ @@ -173,15 +173,14 @@ handle_src_tree()  	fi  	[ "${target1}" = "utils" ] && [ "${project}" = "coreboot" ] && return 0 +	[ "$project" != "coreboot" ] && [ "$project" != "u-boot" ] && return 0  	# u-boot and coreboot are both compiled with coreboot's crossgcc -	if [ "${project}" = "coreboot" ] || [ "${project}" = "u-boot" ]; then -		[ ! -z ${mode} ] || check_cross_compiler || \ -		    err "handle_src_tree ${project}/${target}: crossgcc" -		cbfstool="cbutils/${tree}/cbfstool" -		[ -f "${cbfstool}" ] || \ -			x_ ./update project trees -b coreboot utils "${tree}" -	fi +	[ ! -z ${mode} ] || check_cross_compiler || \ +	    err "handle_src_tree ${project}/${target}: crossgcc" +	cbfstool="cbutils/${tree}/cbfstool" +	[ -f "${cbfstool}" ] && return 0 +	x_ ./update project trees -b coreboot utils "${tree}"  }  # set up cross-compiler (coreboot crossgcc) for u-boot and coreboot @@ -279,6 +278,7 @@ run_make_command()  		x_ printf "%s\n" "${version%%-*}" >"${codedir}/.coreboot-version"  	x_ make ${mode} -j$(nproc) -C "${codedir}" +  	[ "${mode}" != "clean" ] && return 0  	make -C "${codedir}" distclean 2>/dev/null || :  } diff --git a/script/update/vendor/download b/script/update/vendor/download index 87e9d3a5..b5618c3b 100755 --- a/script/update/vendor/download +++ b/script/update/vendor/download @@ -63,9 +63,8 @@ build_dependencies()  		x_ ./update project trees -b uefitool  	[ -f "${kbc1126_ec_dump}" ] || \  		x_ make -C "${cbdir}/util/kbc1126" -	if [ ! -f "${cbfstool}" ] || [ ! -f "${ifdtool}" ]; then -		x_ ./update project trees -b coreboot utils default -	fi +	[ -f "${cbfstool}" ] && [ -f "${ifdtool}" ] && return 0 +	x_ ./update project trees -b coreboot utils default  }  download_vendorfiles() @@ -85,8 +84,7 @@ download_vendorfiles()  		    "${E6400_VGA_DL_url_bkup}" "${E6400_VGA_DL_hash}" \  		    "${CONFIG_VGA_BIOS_FILE}"  	[ -z "${CONFIG_HAVE_MRC}" ] && return 0 -	fetch "mrc" "${MRC_url}" "${MRC_url_bkup}" "${MRC_hash}" \ -	    "${CONFIG_MRC_FILE}" +	fetch "mrc" "$MRC_url" "$MRC_url_bkup" "$MRC_hash" "$CONFIG_MRC_FILE"  }  fetch() diff --git a/script/update/vendor/inject b/script/update/vendor/inject index c4a7f702..d156be25 100755 --- a/script/update/vendor/inject +++ b/script/update/vendor/inject @@ -15,7 +15,7 @@ main()  {  	[ $# -lt 1 ] && err "No options specified."  	[ "${1}" = "listboards" ] && \ -		listitems config/coreboot && exit 0 +		items config/coreboot && exit 0  	archive="${1}"  | 
