Tim Crawford 0a98ce8c93 scripts: Check coreboot config is correct
If a board in models/ does not exist in coreboot, coreboot will emit a
warning and select the first available board for the vendor instead.

This may result in building and being able to flash coreboot with an
addw1 configuration on another board.
2021-03-15 10:12:23 -06:00

46 lines
907 B
Bash
Executable File

#!/usr/bin/env bash
set -e
if [ -z "$1" -o ! -e "$1" -o -z "$2" ]
then
echo "$0 [coreboot.config] [coreboot.rom]" >&2
exit 1
fi
CONFIG="$(realpath "$1")"
COREBOOT="$(realpath "$2")"
function check_configs() {
local defconfig="$1"
while read -r line; do
if [[ "${line}" =~ ^# ]] || [[ -z "${line}" ]]; then
continue
fi
if [[ "${line}" =~ "=n" ]]; then
local config="${line//=n/} is not set"
else
local config="${line}"
fi
if ! grep -q "${config}" ".config"; then
echo "expected config not found: '${config}'" >&2
exit 1
fi
done < "${defconfig}"
}
pushd coreboot >/dev/null
if [ ! -d util/crossgcc/xgcc ]
then
make CPUS="$(nproc)" crossgcc-i386
fi
make distclean
make defconfig KBUILD_DEFCONFIG="${CONFIG}"
check_configs "${CONFIG}"
make --jobs="$(nproc)"
cp -v "build/coreboot.rom" "${COREBOOT}"
popd >/dev/null