diff options
5 files changed, 20 insertions, 5 deletions
diff --git a/src/mainboard/google/brya/variants/baseboard/brya/devicetree.cb b/src/mainboard/google/brya/variants/baseboard/brya/devicetree.cb index d48462ca63..0290181714 100644 --- a/src/mainboard/google/brya/variants/baseboard/brya/devicetree.cb +++ b/src/mainboard/google/brya/variants/baseboard/brya/devicetree.cb @@ -14,6 +14,10 @@ chip soc/intel/alderlake # S0ix enable register "s0ix_enable" = "1" + # Disable package C state demotion on Raptorlake as a W/A for S0ix issues + # seen on J0 and Q0 SKUs + register "disable_package_c_state_demotion" = "1" + # DPTF enable register "dptf_enable" = "1" diff --git a/src/mainboard/intel/adlrvp/variants/adlrvp_rpl/overridetree.cb b/src/mainboard/intel/adlrvp/variants/adlrvp_rpl/overridetree.cb index e58e9fbdce..73012d1032 100644 --- a/src/mainboard/intel/adlrvp/variants/adlrvp_rpl/overridetree.cb +++ b/src/mainboard/intel/adlrvp/variants/adlrvp_rpl/overridetree.cb @@ -1,4 +1,7 @@ chip soc/intel/alderlake + # Disable package C state demotion on Raptorlake as a W/A for S0ix issues + # seen on J0 and Q0 SKUs + register "disable_package_c_state_demotion" = "1" device domain 0 on end end diff --git a/src/mainboard/intel/adlrvp/variants/adlrvp_rpl_ext_ec/overridetree.cb b/src/mainboard/intel/adlrvp/variants/adlrvp_rpl_ext_ec/overridetree.cb index fc4c11c496..8bc35c03f2 100644 --- a/src/mainboard/intel/adlrvp/variants/adlrvp_rpl_ext_ec/overridetree.cb +++ b/src/mainboard/intel/adlrvp/variants/adlrvp_rpl_ext_ec/overridetree.cb @@ -1,4 +1,7 @@ chip soc/intel/alderlake + # Disable package C state demotion on Raptorlake as a W/A for S0ix issues + # seen on J0 and Q0 SKUs + register "disable_package_c_state_demotion" = "1" device domain 0 on device ref pch_espi on diff --git a/src/mainboard/system76/rpl/devicetree.cb b/src/mainboard/system76/rpl/devicetree.cb index 0fed44d889..a016dec962 100644 --- a/src/mainboard/system76/rpl/devicetree.cb +++ b/src/mainboard/system76/rpl/devicetree.cb @@ -17,6 +17,10 @@ chip soc/intel/alderlake # Thermal register "tcc_offset" = "8" + # Disable package C state demotion on Raptorlake as a W/A for S0ix issues + # seen on J0 and Q0 SKUs + register "disable_package_c_state_demotion" = "1" + device cpu_cluster 0 on end device domain 0 on diff --git a/src/soc/intel/alderlake/fsp_params.c b/src/soc/intel/alderlake/fsp_params.c index 67fb55bb7d..d86d62cc9b 100644 --- a/src/soc/intel/alderlake/fsp_params.c +++ b/src/soc/intel/alderlake/fsp_params.c @@ -1061,11 +1061,12 @@ static void fill_fsps_misc_power_params(FSP_S_CONFIG *s_cfg, s_cfg->VrPowerDeliveryDesign = config->vr_power_delivery_design; - /* FIXME: Disable package C state demotion on Raptorlake as a W/A for S0ix issues */ - if ((cpu_id == CPUID_RAPTORLAKE_J0) || (cpu_id == CPUID_RAPTORLAKE_Q0)) - s_cfg->PkgCStateDemotion = 0; - else - s_cfg->PkgCStateDemotion = !config->disable_package_c_state_demotion; + /* C state demotion must be disabled for Raptorlake J0 and Q0 SKUs */ + assert(!(config->s0ix_enable && ((cpu_id == CPUID_RAPTORLAKE_J0) || + (cpu_id == CPUID_RAPTORLAKE_Q0)) && + !config->disable_package_c_state_demotion)); + + s_cfg->PkgCStateDemotion = !config->disable_package_c_state_demotion; if (cpu_id == CPUID_RAPTORLAKE_J0 || cpu_id == CPUID_RAPTORLAKE_Q0) s_cfg->C1e = 0; |