soc/intel/tigerlake: Set FSPS UPD ITbtConnectTopologyTimeoutInMs

The Connect Topology Command(CNTP) is sent with default timeout value
(0x1388) along with FW CM. The CNTP is supposed to be skipped while
using SW CM. While transition from FW CM to SW CM, the default timeout
value could cause boot time delay up to ~10 seconds. Set this FSPS UPD
ITbtConnectTopologyTimeoutInMs to be 0 in order to avoid the 10 seconds
delay. Future FSP release will evaluate this ITbtConnectTopologyTimeoutInMs
value. While FSP finds this UPD value being 0, FSP will skip sending CNTP.

BUG=b:155893566
TEST=Built image with SW CM Thunderbolt firmware and verified no
outstanding delay time while using FSP v3197 during boot to kernel.

Signed-off-by: John Zhao <john.zhao@intel.com>
Change-Id: I47e3519fd818cb56e6abd16464d8370ffddabc5b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/42056
Reviewed-by: Caveh Jalali <caveh@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
John Zhao 2020-06-03 13:06:24 -07:00 committed by Tim Wawrzynczak
parent 6d81eceb74
commit 92a3a304af
2 changed files with 10 additions and 0 deletions

View File

@ -238,6 +238,9 @@ struct soc_intel_tigerlake_config {
*/ */
uint16_t TcssAuxOri; uint16_t TcssAuxOri;
/* Connect Topology Command timeout value */
uint16_t ITbtConnectTopologyTimeoutInMs;
/* /*
* Override GPIO PM configuration: * Override GPIO PM configuration:
* 0: Use FSP default GPIO PM program, * 0: Use FSP default GPIO PM program,

View File

@ -114,6 +114,13 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
for (i = 0; i < 8; i++) for (i = 0; i < 8; i++)
params->IomTypeCPortPadCfg[i] = config->IomTypeCPortPadCfg[i]; params->IomTypeCPortPadCfg[i] = config->IomTypeCPortPadCfg[i];
/*
* Set FSPS UPD ITbtConnectTopologyTimeoutInMs with value 0. FSP will
* evaluate this UPD value and skip sending command. There will be no
* delay for command completion.
*/
params->ITbtConnectTopologyTimeoutInMs = 0;
/* Chipset Lockdown */ /* Chipset Lockdown */
if (get_lockdown_config() == CHIPSET_LOCKDOWN_COREBOOT) { if (get_lockdown_config() == CHIPSET_LOCKDOWN_COREBOOT) {
params->PchLockDownGlobalSmi = 0; params->PchLockDownGlobalSmi = 0;