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;