diff options
Diffstat (limited to 'script/build/release/roms')
| -rwxr-xr-x | script/build/release/roms | 168 | 
1 files changed, 0 insertions, 168 deletions
| diff --git a/script/build/release/roms b/script/build/release/roms deleted file mode 100755 index 3cf5d93e..00000000 --- a/script/build/release/roms +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env sh -# SPDX-License-Identifier: GPL-3.0-or-later -# SPDX-FileCopyrightText: 2020,2021,2022,2023 Leah Rowe <leah@libreboot.org> - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -u -e - -. "include/err.sh" - -read projectname < projectname -version="version-unknown" -versiondate="version-date-unknown" -tree="default" -eval "$(setvars "" target CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN \ -    CONFIG_KBC1126_FIRMWARE CONFIG_INCLUDE_SMSC_SCH5545_EC_FW)" -ifdtool="cbutils/${tree}/ifdtool" -cbfstool="cbutils/${tree}/cbfstool" -microcode_required="y" - -main() -{ -	printf "Building ROM image archives for version %s\n" "${version}" - -	init_check -	for romdir in bin/*; do -		[ -d "${romdir}" ] || continue -		make_archive "${romdir}" -	done -	printf "\nROM archives available at release/%s/roms/\n\n" "${version}" -} - -init_check() -{ -	[ -f version ] && read version < version -	[ -f versiondate ] && read versiondate < versiondate -	[ ! -d "bin/" ] && \ -		err "init_check: no ROMs built yet (error)" -	[ -d "release/" ] || \ -		x_ mkdir -p release/ -	[ -d "release/${version}/" ] || \ -		x_ mkdir -p "release/${version}/" -	[ ! -d "release/${version}/roms/" ] || \ -		x_ rm -Rf "release/${version}/roms/" -	[ -d "release/${version}/roms/" ] && return 0 -	x_ mkdir -p "release/${version}/roms/" -} - -make_archive() -{ -	builddir="${1}" -	romdir="tmp/romdir" -	x_ rm -Rf "${romdir}" -	target="${builddir##*/}" - -	if [ ! -f "config/coreboot/${target}/target.cfg" ]; then -		# No config, just make a tarball -		tarball=release/${version}/roms/${target}_${version}.tar.xz -		x_ tar -c "${builddir}" | xz -T0 -6 > ${tarball} || \ -		    x_ rm -f ${tarball} -		return 0 -	fi - -	romdir="${romdir}/bin/${target}" -	x_ mkdir -p "${romdir}" -	x_ cp "${builddir}"/* "${romdir}" - -	printf "%s\n" "${target}" - -	microcode_required="y" -	. "config/coreboot/${target}/target.cfg" -	if [ "${microcode_required}" != "y" ] && \ -	    [ "${microcode_required}" != "n" ]; then microcode_required="y"; fi - -	for x in CONFIG_HAVE_MRC CONFIG_HAVE_ME_BIN CONFIG_KBC1126_FIRMWARE \ -	    CONFIG_INCLUDE_SMSC_SCH5545_EC_FW; do -		eval "${x}=\"y\"" -		grep "${x}=y" "config/coreboot/${target}/config/"* || \ -		    eval "${x}=\"n\"" -	done - -	# remove ME/MRC/EC firmware from ROM images -	if [ "${CONFIG_HAVE_ME_BIN}" = "y" ] || \ -	    [ "${target}" = "e6400_4mb" ] || \ -	    [ "${microcode_required}" = "n" ]; then -		strip_archive "${romdir}" -	fi - -	printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" \ -	    "${version}" "${projectname}" "${version}" "${target##*/}" -	x_ printf "%s\n" "${version}" > "${romdir}/version" -	x_ printf "%s\n" "${versiondate}" > "${romdir}/versiondate" -	x_ printf "%s\n" "${projectname}" > "${romdir}/projectname" - -	archivename="${projectname}-${version}_${target##*/}" -	f="release/${version}/roms/${archivename}" -	( -	x_ cd "${romdir%/bin/${target}}" -	x_ tar -c "bin/${target}/" | xz -T0 -9e > "${archivename}.tar.xz" -	) -	x_ mv "${romdir%/bin/${target}}/${archivename}.tar.xz" "${f}.tar.xz" -	x_ rm -Rf "${romdir%/bin/${target}}" -} - -strip_archive() -{ -	romdir=${1} -	[ -d "coreboot/${tree}" ] || \ -		x_ ./update project trees coreboot ${tree} - -	x_ ./build coreboot utils ${tree} - -	if [ "${microcode_required}" = "n" ]; then -		for romfile in "${romdir}"/*.rom; do -			[ -f "${romfile}" ] || continue -			strip_ucode "${romfile}" -		done -		for romfile in "${romdir}"/*.tmprom; do -			[ -f "${romfile}" ] || continue -			x_ mv "${romfile}" "${romfile%.tmprom}.rom" -		done -	fi - -	# Hash the rom before removing blobs -	x_ rm -f "${romdir}/blobhashes" -	x_ touch "${romdir}/blobhashes" -	( -	x_ cd "${romdir}" -	x_ sha512sum *.rom >> blobhashes -	) -	for romfile in "${romdir}"/*.rom; do -		[ -f "${romfile}" ] || continue -		strip_rom_image "${romfile}" -	done -} - -strip_ucode() -{ -	romfile=${1} -	_newrom_b="${romfile%.rom}_nomicrocode.tmprom" -	x_ cp "${romfile}" "${_newrom_b}" -	microcode_present="y" -	"${cbfstool}" "${_newrom_b}" remove -n \ -	    cpu_microcode_blob.bin 2>/dev/null || microcode_present="n" -	[ "${microcode_present}" = "n" ] || return 0 -	printf "REMARK: '%s' already lacks microcode\n" "${romfile}" 1>&2 -	printf "Renaming default ROM file instead.\n" 1>&2 -	x_ mv "${romfile}" "${_newrom_b}" -} - -strip_rom_image() -{ -	[ -f "${1}" ] || return 0 -	[ "${CONFIG_HAVE_ME_BIN}" != "y" ] || \ -		x_ "${ifdtool}" --nuke me "${1}" -O "${1}" -	[ "${CONFIG_HAVE_MRC}" != "y" ] || \ -		x_ "${cbfstool}" "${1}" remove -n mrc.bin -	[ "${CONFIG_INCLUDE_SMSC_SCH5545_EC_FW}" != "y" ] || \ -		x_ "${cbfstool}" "${1}" remove -n sch5545_ecfw.bin -	if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then -		x_ "${cbfstool}" "${1}" remove -n ecfw1.bin -		x_ "${cbfstool}" "${1}" remove -n ecfw2.bin -	fi -	# TODO: replace this board-specific hack -	[ "${target}" = "e6400_4mb" ] || return 0 -	x_ "${cbfstool}" "${1}" remove -n "pci10de,06eb.rom" -} - -main $@ | 
