summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDuncan Laurie <dlaurie@chromium.org>2013-08-09 07:55:10 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2013-12-21 12:02:40 +0100
commit7e1c83e31bdd4b0aeebb2ed0916959a472c2369f (patch)
tree2f538a099ec17d2044e274f1089f930f51ddcb0c
parentd538e8fb0006c4ea2d689f2d99e28f9786a6fc2e (diff)
Add Kconfig options to override Subsystem Vendor and Device ID
These can typically be set in the devicetree but we need a way to override those values with a Kconfig setting so as not to expose the Vendor ID before the product has launched. Change-Id: Ib382e6d9359d24b128c693a657ffde52604efad3 Signed-off-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/65310 Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/4455 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/device/Kconfig16
-rw-r--r--src/device/pci_device.c4
2 files changed, 20 insertions, 0 deletions
diff --git a/src/device/Kconfig b/src/device/Kconfig
index 4087f6fd4a..adbe40f86a 100644
--- a/src/device/Kconfig
+++ b/src/device/Kconfig
@@ -503,3 +503,19 @@ config PXE_ROM_ID
Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
endmenu
+
+config SUBSYSTEM_VENDOR_ID
+ hex "Override PCI Subsystem Vendor ID"
+ depends on PCI
+ default "0x0000"
+ help
+ This config option will override the devicetree settings for
+ PCI Subsystem Vendor ID.
+
+config SUBSYSTEM_DEVICE_ID
+ hex "Override PCI Subsystem Device ID"
+ depends on PCI
+ default "0x0000"
+ help
+ This config option will override the devicetree settings for
+ PCI Subsystem Device ID.
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index 1d998ca780..c810483649 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -599,6 +599,10 @@ void pci_dev_enable_resources(struct device *dev)
/* Set the subsystem vendor and device ID for mainboard devices. */
ops = ops_pci(dev);
if (dev->on_mainboard && ops && ops->set_subsystem) {
+ if (CONFIG_SUBSYSTEM_VENDOR_ID)
+ dev->subsystem_vendor = CONFIG_SUBSYSTEM_VENDOR_ID;
+ if (CONFIG_SUBSYSTEM_DEVICE_ID)
+ dev->subsystem_device = CONFIG_SUBSYSTEM_DEVICE_ID;
printk(BIOS_DEBUG, "%s subsystem <- %04x/%04x\n",
dev_path(dev), dev->subsystem_vendor,
dev->subsystem_device);