diff options
Diffstat (limited to 'scripts/check-of.sh')
| -rwxr-xr-x | scripts/check-of.sh | 42 | 
1 files changed, 42 insertions, 0 deletions
| diff --git a/scripts/check-of.sh b/scripts/check-of.sh new file mode 100755 index 00000000000..0f0bf516647 --- /dev/null +++ b/scripts/check-of.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# Copyright 2021 Google LLC +# Written by Simon Glass <sjg@chromium.org> +# +# Check that the .config file provided does not try to disable OF_BOARD for +# boards that use CONFIG_OF_HAS_PRIOR_STAGE +# +# Usage +#    check-of.sh <path to .config> <path to allowlist file> +# +# For example: +#   scripts/check-of.sh b/chromebook_link/u-boot.cfg kconfig_allowlist.txt +# +# Exit code is 0 if OK, 3 if the .config is wrong, as above + +set -e +set -u + +PROG_NAME="${0##*/}" + +usage() { +	echo "$PROG_NAME <path to .config> <path to allowlist file>" +	exit 1 +} + +[ $# -ge 2 ] || usage + +path="$1" +allowlist="$2" + +sys_config="$(sed -n 's/CONFIG_SYS_CONFIG_NAME="\(.*\)"$/\1/p' "${path}")" + +if grep -q OF_HAS_PRIOR_STAGE=y "${path}"; then +	if ! grep -lq CONFIG_OF_BOARD=y "${path}"; then +		echo >&2 "This board uses a prior stage to provide the device tree." +		echo >&2 "Please enable CONFIG_OF_BOARD to ensure that it works correctly." +		if grep -q "${sys_config}" "${allowlist}"; then +			exit 0 +		fi +		exit 3 +	fi +fi | 
