soc/intel/meteorlake: Set max Pkg C-states to Auto

This patch configures max Pkg C-state to Auto which limits the max
C-state to deep C-state.

Port of commit af42906efa ("soc/intel/alderlake: Set max Pkg C-states
to Auto")

BUG=none
TEST=Boot to the OS on Google/Rex.

Snippet from FSP log:
[SPEW ]   PkgCStateLimit : 0xFF

Signed-off-by: Kapil Porwal <kapilporwal@google.com>
Change-Id: Ic403ab83a594b04920d5cf600432939687a2598b
Reviewed-on: https://review.coreboot.org/c/coreboot/+/71653
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
This commit is contained in:
Kapil Porwal 2023-01-04 21:49:36 +05:30 committed by Martin L Roth
parent bf3f94dbb2
commit ae5ba37a55
2 changed files with 20 additions and 0 deletions

View File

@ -43,6 +43,25 @@ enum ddi_port_flags {
DDI_ENABLE_HPD = 1 << 1, DDI_ENABLE_HPD = 1 << 1,
}; };
/*
* The Max Pkg Cstate
* Values 0 - C0/C1, 1 - C2, 2 - C3, 3 - C6, 4 - C7, 5 - C7S, 6 - C8, 7 - C9, 8 - C10,
* 254 - CPU Default , 255 - Auto.
*/
enum pkgcstate_limit {
LIMIT_C0_C1 = 0,
LIMIT_C2 = 1,
LIMIT_C3 = 2,
LIMIT_C6 = 3,
LIMIT_C7 = 4,
LIMIT_C7S = 5,
LIMIT_C8 = 6,
LIMIT_C9 = 7,
LIMIT_C10 = 8,
LIMIT_CPUDEFAULT = 254,
LIMIT_AUTO = 255,
};
/* Bit values for use in LpmStateEnableMask. */ /* Bit values for use in LpmStateEnableMask. */
enum lpm_state_mask { enum lpm_state_mask {
LPM_S0i2_0 = BIT(0), LPM_S0i2_0 = BIT(0),

View File

@ -638,6 +638,7 @@ static void fill_fsps_misc_power_params(FSP_S_CONFIG *s_cfg,
s_cfg->Hwp = 1; s_cfg->Hwp = 1;
s_cfg->Cx = 1; s_cfg->Cx = 1;
s_cfg->PsOnEnable = 1; s_cfg->PsOnEnable = 1;
s_cfg->PkgCStateLimit = LIMIT_AUTO;
/* Enable the energy efficient turbo mode */ /* Enable the energy efficient turbo mode */
s_cfg->EnergyEfficientTurbo = 1; s_cfg->EnergyEfficientTurbo = 1;
s_cfg->PmcLpmS0ixSubStateEnableMask = get_supported_lpm_mask(); s_cfg->PmcLpmS0ixSubStateEnableMask = get_supported_lpm_mask();