aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);