From aef916a5474bd5d30d4f63f4a2aa556586fcfd2a Mon Sep 17 00:00:00 2001 From: "leo.chou" Date: Fri, 13 May 2022 10:41:03 +0800 Subject: [PATCH] soc/intel/alderlake: Add chip config for DPA PreWake The FSP includes a UPD to set the DPA (Dynamic Periodicity Alteration) PreWake value, which can be used to set the maximum pre-wake randomization time in "micro-ticks". This patch adds support for configuring that value. BUG=b:228410327 TEST=build FW and checked DPA value by fsp log. Signed-off-by: leo.chou Change-Id: I08897c590a88aba058cb9e364185ea0794e1e7c3 Reviewed-on: https://review.coreboot.org/c/coreboot/+/64316 Tested-by: build bot (Jenkins) Reviewed-by: Tim Wawrzynczak --- src/soc/intel/alderlake/chip.h | 7 +++++++ src/soc/intel/alderlake/fsp_params.c | 1 + 2 files changed, 8 insertions(+) diff --git a/src/soc/intel/alderlake/chip.h b/src/soc/intel/alderlake/chip.h index 665a68c100..2c260c97c5 100644 --- a/src/soc/intel/alderlake/chip.h +++ b/src/soc/intel/alderlake/chip.h @@ -557,6 +557,13 @@ struct soc_intel_alderlake_config { uint8_t fivr_spread_spectrum; /* Enable or Disable Acoustic Noise Mitigation feature */ uint8_t acoustic_noise_mitigation; + /* + * Acoustic Noise Mitigation Range. Defines the maximum Pre-Wake + * randomization time in micro ticks. This can be programmed only + * if AcousticNoiseMitigation is enabled. + * Range 0-255 + */ + uint8_t PreWake; /* Disable Fast Slew Rate for Deep Package C States for VR domains */ uint8_t fast_pkg_c_ramp_disable[NUM_VR_DOMAINS]; /* diff --git a/src/soc/intel/alderlake/fsp_params.c b/src/soc/intel/alderlake/fsp_params.c index a427289149..e3222be02e 100644 --- a/src/soc/intel/alderlake/fsp_params.c +++ b/src/soc/intel/alderlake/fsp_params.c @@ -835,6 +835,7 @@ static void fill_fsps_acoustic_params(FSP_S_CONFIG *s_cfg, s_cfg->AcousticNoiseMitigation = config->acoustic_noise_mitigation; if (s_cfg->AcousticNoiseMitigation) { + s_cfg->PreWake = config->PreWake; for (int i = 0; i < NUM_VR_DOMAINS; i++) { s_cfg->FastPkgCRampDisable[i] = config->fast_pkg_c_ramp_disable[i]; s_cfg->SlowSlewRate[i] = config->slow_slew_rate[i];