summaryrefslogtreecommitdiffstats
path: root/src/soc/intel/icelake/fsp_params.c
diff options
context:
space:
mode:
authorMichael Niewöhner <foss@mniewoehner.de>2021-09-25 00:10:30 +0200
committerMichael Niewöhner <foss@mniewoehner.de>2021-10-17 13:59:04 +0000
commit0e905801f8ff6c10b20625e31d851920b3f4c4f2 (patch)
treee18e0919b8784f450ecdcab2099ab426e1da91af /src/soc/intel/icelake/fsp_params.c
parent68bacc210945ef7d65dd542765c3be997caf7b4d (diff)
downloadcoreboot-0e905801f8ff6c10b20625e31d851920b3f4c4f2.tar.gz
coreboot-0e905801f8ff6c10b20625e31d851920b3f4c4f2.tar.bz2
coreboot-0e905801f8ff6c10b20625e31d851920b3f4c4f2.zip
soc/intel: transition full control over PM Timer from FSP to coreboot
Set `EnableTcoTimer=1` in order to keep FSP from 1) enabling ACPI Timer emulation in uCode. 2) disabling the PM ACPI Timer. Both actions are now done in coreboot. `EnableTcoTimer=1` makes FSP skip these steps in any possible case including `SkipMpInit=0`, `SkipMpInit=1`, use of the MP PPI or FSP Multiphase Init. This way full control is left to coreboot. Change-Id: I8005daed732c031980ccc379375ff5b09df8dac1 Signed-off-by: Michael Niewöhner <foss@mniewoehner.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/57933 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Lance Zhao
Diffstat (limited to 'src/soc/intel/icelake/fsp_params.c')
-rw-r--r--src/soc/intel/icelake/fsp_params.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/soc/intel/icelake/fsp_params.c b/src/soc/intel/icelake/fsp_params.c
index ba40f3f01d41..fa63a3dfcd4d 100644
--- a/src/soc/intel/icelake/fsp_params.c
+++ b/src/soc/intel/icelake/fsp_params.c
@@ -98,6 +98,15 @@ void platform_fsp_silicon_init_params_cb(FSPS_UPD *supd)
params->Enable8254ClockGating = !use_8254;
params->Enable8254ClockGatingOnS3 = !use_8254;
+ /*
+ * Legacy PM ACPI Timer (and TCO Timer)
+ * This *must* be 1 in any case to keep FSP from
+ * 1) enabling PM ACPI Timer emulation in uCode.
+ * 2) disabling the PM ACPI Timer.
+ * We handle both by ourself!
+ */
+ params->EnableTcoTimer = 1;
+
/* S0ix */
params->PchPmSlpS0Enable = config->s0ix_enable;