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>
This commit is contained in:
Matt Delco 2018-07-23 12:44:15 -07:00 committed by Patrick Georgi
parent 12f6d91a98
commit dfffcad66f
3 changed files with 16 additions and 8 deletions

View File

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

View File

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

View File

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