Michael Niewöhner has submitted this change. ( https://review.coreboot.org/c/coreboot/+/45513 )
Change subject: lint: check for misuse of Kconfig SUBSYSTEM_*_ID ......................................................................
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 --- M src/device/Kconfig A util/lint/lint-stable-024-kconfig-no-subsystem 2 files changed, 24 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved
diff --git a/src/device/Kconfig b/src/device/Kconfig index 439118f..b69a254 100644 --- a/src/device/Kconfig +++ b/src/device/Kconfig @@ -663,6 +663,9 @@ This config option will override the devicetree settings for PCI Subsystem Vendor ID.
+ Note: This option is not meant for a board's Kconfig; use the + devicetree setting `subsystemid` instead. + config SUBSYSTEM_DEVICE_ID hex "Override PCI Subsystem Device ID" depends on PCI @@ -671,6 +674,9 @@ This config option will override the devicetree settings for PCI Subsystem Device ID.
+ Note: This option is not meant for a board's Kconfig; use the + devicetree setting `subsystemid` instead. + config VGA_BIOS bool "Add a VGA BIOS image" depends on ARCH_X86 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 0000000..46dbc97 --- /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