Files
lbmk/resources/scripts/build/release/roms
T
Leah Rowe 548872ce8e haswell boards: use libre mrc.bin replacement
courtesy of Angel Pons from the coreboot project

this uses the following patch set from gerrit, as yet
unmerged (in coreboot master) on this date:

    https://review.coreboot.org/c/coreboot/+/64198/5

logic for downloading mrc blobs has been deleted from
lbmk, as this is now completely obsolete (for haswell
boards)

if other platforms are added later that need mrc.bin,
then logic will be re-added again for that
2023-03-18 00:55:10 +00:00

115 lines
3.2 KiB
Bash
Executable File

#!/usr/bin/env sh
#
# helper script: generate release archive (ROM images)
#
# Copyright (C) 2020,2021,2022 Leah Rowe <info@minifree.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This script assumes that the working directory is the root
# of git or release archive
[ "x${DEBUG+set}" = 'xset' ] && set -v
set -u -e
projectname="$(cat projectname)"
version="version-unknown"
if [ -f version ]; then
version="$(cat version)"
fi
versiondate="version-date-unknown"
if [ -f versiondate ]; then
versiondate="$(cat versiondate)"
fi
if [ ! -d "bin/" ]; then
printf "build/release/roms: no ROMs built yet. Exiting.\n"
exit 1
fi
[ ! -d "release/" ] && \
mkdir -p release/
[ ! -d "release/${version}/" ] && \
mkdir -p "release/${version}/"
[ -d "release/${version}/roms/" ] && \
rm -Rf "release/${version}/roms/"
[ ! -d "release/${version}/roms/" ] && \
mkdir -p "release/${version}/roms/"
printf "Building ROM image archives for version %s\n" "${version}"
for romdir in bin/*; do
target="${romdir##*/}"
echo ${target}
if [ ! -d "${romdir}/" ]; then
continue
fi
CONFIG_HAVE_ME_BIN="y"
grep "CONFIG_HAVE_ME_BIN=y" "resources/coreboot/${target}/config/"* || CONFIG_HAVE_ME_BIN="n"
# remove ME from ROM images
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
if [ ! -d coreboot/default ]; then
./download coreboot default || exit 1
fi
ifdtooldir="coreboot/default/util/ifdtool"
ifdtool="${ifdtooldir}/ifdtool"
if [ ! -f "${ifdtool}" ]; then
./build module cbutils default || exit 1
fi
cbfstooldir="coreboot/default/util/cbfstool"
cbfstool="${cbfstooldir}/cbfstool"
if [ ! -f "${cbfstool}" ]; then
./build module cbutils default || exit 1
fi
rm -Rf "${romdir}_tmp" # dirty hack, to reduce disk io later
# rather than using /tmp, which might not be tmpfs
mkdir "${romdir}_tmp"
for romfile in "${romdir}"/*.rom
do
if [ ! -f "${romfile}" ]
then
continue
fi
${ifdtool} --nuke me "${romfile}" || exit 1
mv "${romfile}" "${romdir}_tmp"/
mv "${romfile}.new" "${romfile}"
done
fi
printf "Generating release/%s/roms/%s-%s_%s.tar.xz\n" "${version}" "${projectname}" "${version}" "${target##*/}"
printf "%s\n" "${version}" > "${romdir}/version"
printf "%s\n" "${versiondate}" > "${romdir}/versiondate"
printf "%s\n" "${projectname}" > "${romdir}/projectname"
tar -c "${romdir}/" | xz -9e >"release/${version}/roms/${projectname}-${version}_${target##*/}.tar.xz"
if [ -d "${romdir}_tmp" ]
then
rm -Rf "${romdir}"
mv "${romdir}_tmp" "${romdir}"
fi
done
printf "\nROM image release archives available at release/%s/roms/\n\n" "${version}"