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>
This commit is contained in:
Michael Niewöhner 2020-09-18 03:12:00 +02:00
parent 6252b601c9
commit e0d749c23b
2 changed files with 24 additions and 0 deletions

View File

@ -663,6 +663,9 @@ config SUBSYSTEM_VENDOR_ID
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 @@ config SUBSYSTEM_DEVICE_ID
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

View File

@ -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