soc/intel/alderlake: Add EPP override support
This updates energy performance preference value to all logical CPUs when the corresponding chip config is true. BUG=b:219785001 BRANCH=firmware-brya-14505.B Signed-off-by: Cliff Huang <cliff.huang@intel.corp-partner.google.com> Change-Id: Ie59623fe715b0c545f8d4b6c22ab2ce670a29798 Reviewed-on: https://review.coreboot.org/c/coreboot/+/62654 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
This commit is contained in:
parent
ca9658bdb2
commit
0bb2225718
|
@ -559,6 +559,10 @@ struct soc_intel_alderlake_config {
|
||||||
* 0: Fast/2, 1: Fast/4, 2: Fast/8, 3: Fast/16; see enum slew_rate for values
|
* 0: Fast/2, 1: Fast/4, 2: Fast/8, 3: Fast/16; see enum slew_rate for values
|
||||||
*/
|
*/
|
||||||
uint8_t SlowSlewRate[NUM_VR_DOMAINS];
|
uint8_t SlowSlewRate[NUM_VR_DOMAINS];
|
||||||
|
|
||||||
|
/* Energy-Performance Preference (HWP feature) */
|
||||||
|
bool enable_energy_perf_pref;
|
||||||
|
uint8_t energy_perf_pref_value;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct soc_intel_alderlake_config config_t;
|
typedef struct soc_intel_alderlake_config config_t;
|
||||||
|
|
|
@ -122,6 +122,11 @@ void soc_core_init(struct device *cpu)
|
||||||
/* Set energy policy */
|
/* Set energy policy */
|
||||||
set_energy_perf_bias(ENERGY_POLICY_NORMAL);
|
set_energy_perf_bias(ENERGY_POLICY_NORMAL);
|
||||||
|
|
||||||
|
const config_t *conf = config_of_soc();
|
||||||
|
/* Set energy-performance preference */
|
||||||
|
if (conf->enable_energy_perf_pref)
|
||||||
|
if (check_energy_perf_cap())
|
||||||
|
set_energy_perf_pref(conf->energy_perf_pref_value);
|
||||||
/* Enable Turbo */
|
/* Enable Turbo */
|
||||||
enable_turbo();
|
enable_turbo();
|
||||||
}
|
}
|
||||||
|
@ -132,6 +137,19 @@ static void per_cpu_smm_trigger(void)
|
||||||
smm_relocate();
|
smm_relocate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void pre_mp_init(void)
|
||||||
|
{
|
||||||
|
soc_fsp_load();
|
||||||
|
|
||||||
|
const config_t *conf = config_of_soc();
|
||||||
|
if (conf->enable_energy_perf_pref) {
|
||||||
|
if (check_energy_perf_cap())
|
||||||
|
enable_energy_perf_pref();
|
||||||
|
else
|
||||||
|
printk(BIOS_WARNING, "Energy Performance Preference not supported!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void post_mp_init(void)
|
static void post_mp_init(void)
|
||||||
{
|
{
|
||||||
/* Set Max Ratio */
|
/* Set Max Ratio */
|
||||||
|
@ -152,7 +170,7 @@ static const struct mp_ops mp_ops = {
|
||||||
* that are set prior to ramstage.
|
* that are set prior to ramstage.
|
||||||
* Real MTRRs programming are being done after resource allocation.
|
* Real MTRRs programming are being done after resource allocation.
|
||||||
*/
|
*/
|
||||||
.pre_mp_init = soc_fsp_load,
|
.pre_mp_init = pre_mp_init,
|
||||||
.get_cpu_count = get_cpu_count,
|
.get_cpu_count = get_cpu_count,
|
||||||
.get_smm_info = smm_info,
|
.get_smm_info = smm_info,
|
||||||
.get_microcode_info = get_microcode_info,
|
.get_microcode_info = get_microcode_info,
|
||||||
|
|
Loading…
Reference in New Issue