diff options
Diffstat (limited to 'resources/scripts/download')
| -rwxr-xr-x | resources/scripts/download/coreboot | 36 | ||||
| -rwxr-xr-x | resources/scripts/download/flashrom | 17 | ||||
| -rwxr-xr-x | resources/scripts/download/grub | 17 | ||||
| -rwxr-xr-x | resources/scripts/download/ich9utils | 17 | ||||
| -rwxr-xr-x | resources/scripts/download/memtest86plus | 17 | ||||
| -rwxr-xr-x | resources/scripts/download/seabios | 17 | ||||
| -rwxr-xr-x | resources/scripts/download/u-boot | 198 | 
7 files changed, 303 insertions, 16 deletions
| diff --git a/resources/scripts/download/coreboot b/resources/scripts/download/coreboot index 6d0aa353..b94b1bc9 100755 --- a/resources/scripts/download/coreboot +++ b/resources/scripts/download/coreboot @@ -21,6 +21,42 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +list_supported_boards() +{ +	for board in resources/coreboot/*; do +		echo $board | sed 's#resources/coreboot/##' +	done +} + +usage() +{ +	progname="./download coreboot" +	printf "Usage:\n" +	printf "\t%s                     # %s\n" \ +	       "${progname}" \ +	       "Download and deblob Coreboot for all the boards" +	printf "\t%s [board [board] ...] # %s\n" \ +	       "${progname}" \ +	       "Download and deblob Coreboot for the given boards" +	printf "\t%s --list-boards       # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +	printf "\t%s --help              # %s\n" \ +	       "${progname}" \ +	       "List supported boards" +	printf "\t%s --help              # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -eq 1 -a "$1" == "--help" ] ; then +	usage +	exit 0 +elif [ $# -eq 1 -a "$1" == "--list-boards" ] ; then +	list_supported_boards +	exit 0 +fi +  # set this when you want to modify each coreboot tree  # for example, you want to test custom patches  # NODELETE= ./download coreboot diff --git a/resources/scripts/download/flashrom b/resources/scripts/download/flashrom index a22f22f2..c5ff4bac 100755 --- a/resources/scripts/download/flashrom +++ b/resources/scripts/download/flashrom @@ -21,6 +21,23 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +usage() +{ +	progname="./download flashrom" +	printf "Usage:\n" +	printf "\t%s         # %s\n" \ +	       "${progname}" \ +	       "Download flashrom" +	printf "\t%s --help  # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -ne 0 ] ; then +	usage +	exit 0 +fi +  # Get flashrom at the last previously tested revision  # Remove the old version that may still exist: diff --git a/resources/scripts/download/grub b/resources/scripts/download/grub index 47c75bc1..97bae1ed 100755 --- a/resources/scripts/download/grub +++ b/resources/scripts/download/grub @@ -21,6 +21,23 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +usage() +{ +	progname="./download grub" +	printf "Usage:\n" +	printf "\t%s         # %s\n" \ +	       "${progname}" \ +	       "Download GRUB" +	printf "\t%s --help  # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -ne 0 ] ; then +	usage +	exit 0 +fi +  # Remove the old version that may still exist  # ------------------------------------------------------------------------------ diff --git a/resources/scripts/download/ich9utils b/resources/scripts/download/ich9utils index a00f27dd..d8232b03 100755 --- a/resources/scripts/download/ich9utils +++ b/resources/scripts/download/ich9utils @@ -21,6 +21,23 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +usage() +{ +	progname="./download ich9utils" +	printf "Usage:\n" +	printf "\t%s         # %s\n" \ +	       "${progname}" \ +	       "Download ich9utils" +	printf "\t%s --help  # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -ne 0 ] ; then +	usage +	exit 0 +fi +  printf "Downloading ich9utils\n"  if [ -d ich9utils ]; then diff --git a/resources/scripts/download/memtest86plus b/resources/scripts/download/memtest86plus index 1b3da822..c0897c80 100755 --- a/resources/scripts/download/memtest86plus +++ b/resources/scripts/download/memtest86plus @@ -23,6 +23,23 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +usage() +{ +	progname="./download memtest86plus" +	printf "Usage:\n" +	printf "\t%s         # %s\n" \ +	       "${progname}" \ +	       "Download MemTest86+" +	printf "\t%s --help  # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -ne 0 ] ; then +	usage +	exit 0 +fi +  # Get the last version of MemTest86+ used, apply patches, build it.  # Remove the old version that may exist diff --git a/resources/scripts/download/seabios b/resources/scripts/download/seabios index 58ea2bb8..a7c4ab5e 100755 --- a/resources/scripts/download/seabios +++ b/resources/scripts/download/seabios @@ -19,6 +19,23 @@  [ "x${DEBUG+set}" = 'xset' ] && set -v  set -u -e +usage() +{ +	progname="./download seabios" +	printf "Usage:\n" +	printf "\t%s         # %s\n" \ +	       "${progname}" \ +	       "Download SeaBIOS" +	printf "\t%s --help  # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +if [ $# -ne 0 ] ; then +	usage +	exit 0 +fi +  # Get SeaBIOS, revert to commit last used and apply patches.  # Remove the old version that may still exist diff --git a/resources/scripts/download/u-boot b/resources/scripts/download/u-boot index 704d1c3a..bd0258c0 100755 --- a/resources/scripts/download/u-boot +++ b/resources/scripts/download/u-boot @@ -32,6 +32,12 @@ deleteblobs="true"  # This script handles the internet, and Git. Both are inherently unreliable.  [[ -f build_error ]] && rm -f build_error +# Make sure that older revision are first as code uses that order to +# find the latest supported revision. +supported_uboot_revisions=" \ +	v2021.07 \ +" +  downloadfor() {  	uboot_revision="v2021.07"  	uboot_dir="u-boot/u-boot" @@ -59,7 +65,7 @@ downloadfor() {  	if [ ! -d "${uboot_dir}" ]; then  		printf "Download u-boot from upstream:\n" -		git clone https://source.denx.de/u-boot/u-boot \ +		git clone https://source.denx.de/u-boot/u-boot.git \  		    "${uboot_dir}" || \  		    rm -Rf "${uboot_dir}"  		if [ ! -d "${uboot_dir}" ]; then @@ -99,25 +105,185 @@ strip_comments()  		sed '/^$/d'  } -printf "Downloading u-boot and (if exist in build system) applying patches\n" -downloadfor +generate_deblob_script() +{ +	blob_list_file="$1" +	output="$2" -rm -f "build_error" -printf "\n\n" +	# Add sheebang and copyright headers from this file +	awk '{ +		if ($0 !~ /^#/ && NF > 0) { +			stop=1; +		} +		if (stop !=1) { +			printf("%s\n", $0); +		} +	}' $0 >> ${output} -if [ "${deleteblobs}" = "true" ]; then -	bloblist="resources/u-boot/default/blobs.list" +	# Add rm -rf before directories and rm -f before files +	awk \ +	'{ +	}{ +		if (NF == 0) { +			printf("\n"); +		} else { +			if ($0 !~ /#/ && $NF ~ /\/$/) { +				printf("rm -rf %s\n", $0); +			} else if ($0 !~ /#/) { +				printf("rm -f %s\n", $0); +			} else { +				# We have comments, try to see if they are +				# still valid paths before the comments +				comments_found=0 +				last_field=0 +				for(i=1; i<=NF; i++) { +					if($i ~ /#/) { +						comments_found=1; +					} else if(comments_found != 1) { +						last_field=i; +					} +				} +				if (last_field == 0) { +					printf("%s\n", $0); +				} else if ($last_field ~ /\/$/) { +					printf("rm -rf %s\n", $0); +				} else { +					printf("rm -f %s\n", $0); +				} +			} +		} +	}' "${blob_list_file}" >> "${output}" +} + +usage() +{ +	progname="./download u-boot" + +	printf "Usage:\n" +	printf "\t%s                                # %s\n" \ +	       "${progname}" \ +	       "Download latest u-boot git revision and deblob it" +	printf "\t%s [revision]                     # %s\n" \ +	       "${progname}" \ +	       "Download given u-boot git revision and deblob it" +	printf "\t%s --blobs-list                   # %s\n" \ +	       "${progname}" \ +	       "Print the path of the blobs.list file for the latest supported u-boot revision" +	printf "\t%s --blobs-list [revision]        # %s\n" \ +	       "${progname}" \ +	       "Print the path of the blobs.list file for the given u-boot revision" +	printf "\t%s --gen-deblob-script            # %s\n" \ +	       "${progname}" \ +	       "Print the path of the generated deblob script for the latest supported u-boot revision" +	printf "\t%s --gen-deblob-script [revision] # %s\n" \ +	       "${progname}" \ +	       "Print the path of the generated deblob script for the given u-boot revision" +	printf "\t%s --list-revisions               # %s\n" \ +	       "${progname}" \ +	       "List supported u-boot revisions" +	printf "\t%s --help                         # %s\n" \ +	       "${progname}" \ +	       "Prints this help" +} + +download_uboot_revision() +{ +	git_revision="$1" + +	printf "Downloading u-boot " +	printf "and (if exist in build system) applying patches\n" +	downloadfor "${git_revision}" + +	rm -f "build_error" +	printf "\n\n" + +	if [ "${deleteblobs}" = "true" ]; then +		blobslist="resources/u-boot/default/blobs.list" +		for blob_path in $(strip_comments "${blobslist}"); do +		    if echo "${blob_path}" | \ +			    grep '/$' 2>&1 >/dev/null ; then +				printf "Deleting blob directory: '%s/%s'\n" \ +				       "${uboot_dir}" "${blob_path}" +				rm -rf "${uboot_dir}/${blob_path}" +			else +				printf "Deleting blob file: '%s/%s'\n" \ +				       "${uboot_dir}" "${blob_path}" +				rm -f "${uboot_dir}/${blob_path}" +			fi +		done +	fi +} + +print_blobs_list_path() +{ +	printf "resources/u-boot/default/blobs.list\n" +} -	for blob_path in $(strip_comments "${bloblist}"); do -		if echo "${blob_path}" | grep '/$' 2>&1 >/dev/null ; then -			printf "Deleting blob directory: '%s/%s'\n" \ -			       "${uboot_dir}" "${blob_path}" -			rm -rf "${uboot_dir}/${blob_path}" -		else -			printf "Deleting blob file: '%s/%s'\n" \ -			       "${uboot_dir}" "${blob_path}" -			rm -f "${uboot_dir}/${blob_path}" +print_deblob_script_path() +{ +	version="$1" +	path="$(mktemp)" + +	generate_deblob_script "$(print_blobs_list_path ${version})" "${path}" +	printf "%s\n" ${path} +} + +if [ $# -eq 0 ] ; then +	latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)" +	download_uboot_revision "${latest_revision}" +	exit 0 +elif [ $# -eq 1 -a "$1" == "--help" ] ; then +	usage +	exit 0 +elif [ $# -eq 1 -a "$1" == "--list-revisions" ] ; then +	for revision in ${supported_uboot_revisions} ; do +		printf "${revision}\n" +	done +	exit 0 +elif [ $# -eq 1 -a "$1" == "--blobs-list" ] ; then +	latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)" +	print_blobs_list_path "${latest_revision}" +	exit 0 +elif [ $# -eq 2 -a "$1" == "--blobs-list" ] ; then +	found=0 +	for revision in ${supported_uboot_revisions} ; do +		if [ "${revision}" = "$2" ] ; then +			print_blobs_list_path "$2" +			exit 0 +		fi +	done + +	printf "Error: Revision '${1}' is not supported\n" + +	exit 1 +elif [ $# -eq 1 -a "$1" == "--gen-deblob-script" ] ; then +	latest_revision="$(echo ${supported_uboot_revisions} | tail -n1)" +	print_deblob_script_path "${latest_revision}" +	exit 0 +elif [ $# -eq 2 -a "$1" == "--gen-deblob-script" ] ; then +	found=0 +	for revision in ${supported_uboot_revisions} ; do +		if [ "${revision}" = "$2" ] ; then +			print_deblob_script_path "$2" +			exit 0 +		fi +	done + +	printf "Error: Revision '${1}' is not supported\n" + +	exit 1 +elif [ $# -eq 1 ] ; then +	found=0 +	for revision in ${supported_uboot_revisions} ; do +		if [ "${revision}" = "$1" ] ; then +			download_uboot_revision "$1" +			exit 0  		fi  	done + +	printf "Error: Revision '${1}' is not supported\n" + +	exit 1  fi +  exit 0 | 
