soc/intel/meteorlake: Fix black screen after booting to OS

This patch ensures that the VR configuration for IA, SA, and GFX is
properly initialized, assigning zero values to VR causes a black screen
(no display) issue.

Problem Statement:
Override CEP (Current Excursion Protection) value with zero aka set to
disable results into black screen issue (no display).

Solution:
Keep CEP default enabled and don't override w/ zero value.

w/o this patch:
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[0] : 0x0
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[1] : 0x0
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[2] : 0x0

w/ this patch:
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[0] : 0x1
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[1] : 0x1
[SPEW ]   CPU_POWER_MGMT_VR_CONFIG : CepEnable[2] : 0x1

Change-Id: I8908e8b6c995390b559212d456db6ddf984448a3
Signed-off-by: Subrata Banik <subratabanik@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77611
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Eran Mitrani <mitrani@google.com>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
This commit is contained in:
Subrata Banik 2023-09-02 00:53:54 +05:30
parent 2aeb6e405a
commit 96f7bd1318
1 changed files with 5 additions and 4 deletions

View File

@ -229,14 +229,15 @@ static void fill_fspm_vr_config_params(FSP_M_CONFIG *m_cfg,
{ {
/* FastVmode Settings for VR domains */ /* FastVmode Settings for VR domains */
for (size_t domain = 0; domain < NUM_VR_DOMAINS; domain++) { for (size_t domain = 0; domain < NUM_VR_DOMAINS; domain++) {
if (config->cep_enable[domain]) {
m_cfg->CepEnable[domain] = config->cep_enable[domain]; m_cfg->CepEnable[domain] = config->cep_enable[domain];
if (m_cfg->CepEnable[domain]) { if (config->enable_fast_vmode[domain]) {
m_cfg->EnableFastVmode[domain] = config->enable_fast_vmode[domain]; m_cfg->EnableFastVmode[domain] = config->enable_fast_vmode[domain];
if (m_cfg->EnableFastVmode[domain])
m_cfg->IccLimit[domain] = config->fast_vmode_i_trip[domain]; m_cfg->IccLimit[domain] = config->fast_vmode_i_trip[domain];
} }
} }
} }
}
static void fill_fspm_misc_params(FSP_M_CONFIG *m_cfg, static void fill_fspm_misc_params(FSP_M_CONFIG *m_cfg,
const struct soc_intel_meteorlake_config *config) const struct soc_intel_meteorlake_config *config)