summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Delco <delco@chromium.org>2018-07-23 12:44:15 -0700
committerPatrick Georgi <pgeorgi@google.com>2018-08-17 12:25:52 +0000
commitdfffcad66f4bad1d08c8bd9d6058c54b939422c5 (patch)
tree08e10063036ab585fe46076e4cf188504f0af653
parent12f6d91a98ea08e94be6458c6d7fb2ff3563a36a (diff)
soc/intel/skylake: permit Kconfig to set subsystem ID
This change permits the subsystem ID to be specified via Kconfig for the devices on the SoC. Some devices are getting zero'ed subsystem IDs because the unset (and thus zero'ed) config options are overwriting the fsp defaults. With this change the fsp defaults will only be overwritten by non-zero config values. Change-Id: I0f7bb8e465f55e5dd6d8e0fad71b9b2a22f089dc Signed-off-by: Matt Delco <delco@chromium.org> Reviewed-on: https://review.coreboot.org/27609 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
-rw-r--r--src/soc/intel/skylake/chip.c9
-rw-r--r--src/soc/intel/skylake/chip.h4
-rw-r--r--src/soc/intel/skylake/chip_fsp20.c11
3 files changed, 16 insertions, 8 deletions
diff --git a/src/soc/intel/skylake/chip.c b/src/soc/intel/skylake/chip.c
index 92c3addf8a..9d9ca01d6d 100644
--- a/src/soc/intel/skylake/chip.c
+++ b/src/soc/intel/skylake/chip.c
@@ -159,8 +159,13 @@ void soc_silicon_init_params(SILICON_INIT_UPD *params)
params->LockDownConfigBiosLock = 0;
params->LockDownConfigSpiEiss = 0;
}
- params->PchConfigSubSystemVendorId = config->PchConfigSubSystemVendorId;
- params->PchConfigSubSystemId = config->PchConfigSubSystemId;
+ /* only replacing preexisting subsys ID defaults when non-zero */
+#if defined(CONFIG_SUBSYSTEM_VENDOR_ID) && CONFIG_SUBSYSTEM_VENDOR_ID
+ params->PchConfigSubSystemVendorId = CONFIG_SUBSYSTEM_VENDOR_ID;
+#endif
+#if defined(CONFIG_SUBSYSTEM_DEVICE_ID) && CONFIG_SUBSYSTEM_DEVICE_ID
+ params->PchConfigSubSystemId = CONFIG_SUBSYSTEM_DEVICE_ID;
+#endif
params->WakeConfigWolEnableOverride =
config->WakeConfigWolEnableOverride;
params->WakeConfigPcieWakeFromDeepSx =
diff --git a/src/soc/intel/skylake/chip.h b/src/soc/intel/skylake/chip.h
index a147d9234d..8e3c472db6 100644
--- a/src/soc/intel/skylake/chip.h
+++ b/src/soc/intel/skylake/chip.h
@@ -324,10 +324,6 @@ struct soc_intel_skylake_config {
* in the upper and and lower 128-byte bank of RTC RAM.
*/
u8 LockDownConfigRtcLock;
- /* Subsystem Vendor ID of the PCH devices*/
- u16 PchConfigSubSystemVendorId;
- /* Subsystem ID of the PCH devices*/
- u16 PchConfigSubSystemId;
/*
* Determine if WLAN wake from Sx, corresponds to the
diff --git a/src/soc/intel/skylake/chip_fsp20.c b/src/soc/intel/skylake/chip_fsp20.c
index f51559f2fb..d5f543302f 100644
--- a/src/soc/intel/skylake/chip_fsp20.c
+++ b/src/soc/intel/skylake/chip_fsp20.c
@@ -374,8 +374,15 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
*/
params->SpiFlashCfgLockDown = 0;
}
- params->PchSubSystemVendorId = config->PchConfigSubSystemVendorId;
- params->PchSubSystemId = config->PchConfigSubSystemId;
+ /* only replacing preexisting subsys ID defaults when non-zero */
+#if defined(CONFIG_SUBSYSTEM_VENDOR_ID) && CONFIG_SUBSYSTEM_VENDOR_ID
+ params->DefaultSvid = CONFIG_SUBSYSTEM_VENDOR_ID;
+ params->PchSubSystemVendorId = CONFIG_SUBSYSTEM_VENDOR_ID;
+#endif
+#if defined(CONFIG_SUBSYSTEM_DEVICE_ID) && CONFIG_SUBSYSTEM_DEVICE_ID
+ params->DefaultSid = CONFIG_SUBSYSTEM_DEVICE_ID;
+ params->PchSubSystemId = CONFIG_SUBSYSTEM_DEVICE_ID;
+#endif
params->PchPmWolEnableOverride = config->WakeConfigWolEnableOverride;
params->PchPmPcieWakeFromDeepSx = config->WakeConfigPcieWakeFromDeepSx;
params->PchPmDeepSxPol = config->PmConfigDeepSxPol;