summaryrefslogtreecommitdiff
path: root/util/lint
diff options
context:
space:
mode:
authorMichael Niewöhner <foss@mniewoehner.de>2020-09-18 03:12:00 +0200
committerMichael Niewöhner <foss@mniewoehner.de>2020-09-20 17:03:32 +0000
commite0d749c23b604dd6dfb94d95a59e5db30900d0e7 (patch)
treeff297e7eb2a6b7559c073d9ecbabd52f4ab2df1b /util/lint
parent6252b601c95393e3a8efce55101cc616ef16928a (diff)
lint: check for misuse of Kconfig SUBSYSTEM_*_ID
Check that nobody misuses the Kconfigs SUBSYSTEM_*_ID. They are meant to be used for overriding the devicetree subsystem ids locally but shall not be added to a board's Kconfig. Instead, the devicetree option `subsystemid` should be used. Add a linter script for this that finds and warns about such misuse. Also add a note in the Kconfigs' description. TEST=CB:45513 Change-Id: I21c021c718154f1396f795a555af47a76d6efe03 Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/45513 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'util/lint')
-rwxr-xr-xutil/lint/lint-stable-024-kconfig-no-subsystem18
1 files changed, 18 insertions, 0 deletions
diff --git a/util/lint/lint-stable-024-kconfig-no-subsystem b/util/lint/lint-stable-024-kconfig-no-subsystem
new file mode 100755
index 0000000000..46dbc971f0
--- /dev/null
+++ b/util/lint/lint-stable-024-kconfig-no-subsystem
@@ -0,0 +1,18 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+# DESCR: Check that no board's Kconfig sets SUBSYSTEM_(VENDOR|DEVICE)_ID
+
+LC_ALL=C export LC_ALL
+FAIL=0
+
+for i in src/mainboard/*/* src/mainboard/*/*/variants/*; do
+ if [ -r $i/Kconfig ]; then
+ if grep -Eq "^\s*config\s+SUBSYSTEM_(VENDOR|DEVICE)_ID\>" $i/Kconfig; then
+ echo "$i: Mainboard sets SUBSYSTEM_*_ID. Set 'subsystemid' in devicetree instead!"
+ FAIL=1
+ fi
+ fi
+done
+
+exit $FAIL