From ed96683e009c9349005821ce790bc080ef572c22 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 16 Dec 2021 20:59:23 -0700 Subject: fdt: Make it easier to debug u-boot.dtsi files At present one must hack the Makefile to see what is going on with these files. Also it doesn't quite work correctly. Fix this by using an environment variable for debugging. Update the docs also. Signed-off-by: Simon Glass --- scripts/Makefile.lib | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'scripts') diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 39f03398ed8..b4e63bc0ca4 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -175,7 +175,9 @@ u_boot_dtsi_options_raw = $(warning Automatic .dtsi inclusion: options: \ # Uncomment for debugging # This shows all the files that were considered and the one that we chose. -# u_boot_dtsi_options_debug = $(u_boot_dtsi_options_raw) +ifdef DEVICE_TREE_DEBUG +u_boot_dtsi_options_debug = $(warning $(u_boot_dtsi_options_raw)) +endif # We use the first match u_boot_dtsi = $(strip $(u_boot_dtsi_options_debug) \ -- cgit v1.2.3 From 24f073d4009e4a35091c676aff83c03dac5c1a6b Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 16 Dec 2021 20:59:37 -0700 Subject: fdt: Makefile: Ensure that OF_BOARD is used when needed Boards which define OF_HAS_PRIOR_STAGE must define OF_BOARD at present, since a custom function is the only way to obtain the devicetree at runtime. Add a build error when this requirement is not met, to avoid accepting any patches which break this requirement. Add an allowlist for boards which use it, currently none. This allowlist can be updated for local development, if needed. Signed-off-by: Simon Glass [trini: change of_whitelist to of_allowlist] Signed-off-by: Tom Rini --- scripts/check-of.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ scripts/of_allowlist.txt | 1 + 2 files changed, 43 insertions(+) create mode 100755 scripts/check-of.sh create mode 100644 scripts/of_allowlist.txt (limited to 'scripts') 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 +# +# 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 +# +# 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 " + 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 diff --git a/scripts/of_allowlist.txt b/scripts/of_allowlist.txt new file mode 100644 index 00000000000..e82cf557bb2 --- /dev/null +++ b/scripts/of_allowlist.txt @@ -0,0 +1 @@ +# List of boards which are permitted to use OF_HAS_PRIOR_STAGE without OF_BOARD -- cgit v1.2.3