From 01b3c40bfef5f5789a8521da766be8792eeb06c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Niew=C3=B6hner?= Date: Mon, 27 Sep 2021 18:39:41 +0200 Subject: soc/intel: move disabling of PM Timer to SoC PMC code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move disabling of PM Timer to SoC PMC code. The original reason for placing that in `finalize` [1] was FSP hanging due to use of the PM timer without enabling timer emulation first in coreboot, which was added later [2]. [1] commit 6c1bf27dae (intel/skylake: disable ACPI PM Timer to enable XTAL OSC shutdown) [2] commit f004f66ca7 (soc/intel/skylake: Enable ACPI PM timer emulation on all CPUs) Change-Id: I354c3aea0c8c1f8ff3d698e0636932b7b76125f7 Signed-off-by: Michael Niewöhner Reviewed-on: https://review.coreboot.org/c/coreboot/+/58019 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber --- src/soc/intel/alderlake/finalize.c | 9 --------- src/soc/intel/alderlake/pmc.c | 9 +++++++++ src/soc/intel/elkhartlake/finalize.c | 9 --------- src/soc/intel/elkhartlake/pmc.c | 9 +++++++++ src/soc/intel/icelake/finalize.c | 9 --------- src/soc/intel/icelake/pmc.c | 9 +++++++++ src/soc/intel/jasperlake/finalize.c | 9 --------- src/soc/intel/jasperlake/pmc.c | 9 +++++++++ src/soc/intel/tigerlake/finalize.c | 9 --------- src/soc/intel/tigerlake/pmc.c | 9 +++++++++ 10 files changed, 45 insertions(+), 45 deletions(-) (limited to 'src') diff --git a/src/soc/intel/alderlake/finalize.c b/src/soc/intel/alderlake/finalize.c index 4ef572b5f6..aa136d4e09 100644 --- a/src/soc/intel/alderlake/finalize.c +++ b/src/soc/intel/alderlake/finalize.c @@ -57,15 +57,6 @@ static void pch_finalize(void) /* TODO: Add Thermal Configuration */ - /* - * Disable ACPI PM timer based on Kconfig - * - * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. - * Disabling ACPI PM timer also switches off TCO - */ - if (!CONFIG(USE_PM_ACPI_TIMER)) - pmc_disable_acpi_timer(); - pch_handle_sideband(config); pmc_clear_pmcon_sts(); diff --git a/src/soc/intel/alderlake/pmc.c b/src/soc/intel/alderlake/pmc.c index 6f9b03b16f..4251cd66bd 100644 --- a/src/soc/intel/alderlake/pmc.c +++ b/src/soc/intel/alderlake/pmc.c @@ -152,6 +152,15 @@ static void soc_pmc_init(struct device *dev) * done from the "ops->init" callback. */ pmc_set_acpi_mode(); + + /* + * Disable ACPI PM timer based on Kconfig + * + * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. + * Disabling ACPI PM timer also switches off TCO + */ + if (!CONFIG(USE_PM_ACPI_TIMER)) + pmc_disable_acpi_timer(); } static void pm1_enable_pwrbtn_smi(void *unused) diff --git a/src/soc/intel/elkhartlake/finalize.c b/src/soc/intel/elkhartlake/finalize.c index ad3b4ef867..d415a1d2b8 100644 --- a/src/soc/intel/elkhartlake/finalize.c +++ b/src/soc/intel/elkhartlake/finalize.c @@ -29,15 +29,6 @@ static void pch_finalize(void) /* TODO: Add Thermal Configuration */ - /* - * Disable ACPI PM timer based on Kconfig - * - * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. - * Disabling ACPI PM timer also switches off TCO - */ - if (!CONFIG(USE_PM_ACPI_TIMER)) - pmc_disable_acpi_timer(); - pmc_clear_pmcon_sts(); } diff --git a/src/soc/intel/elkhartlake/pmc.c b/src/soc/intel/elkhartlake/pmc.c index bcc8c8b04f..dd6e6160ec 100644 --- a/src/soc/intel/elkhartlake/pmc.c +++ b/src/soc/intel/elkhartlake/pmc.c @@ -92,6 +92,15 @@ static void soc_pmc_init(struct device *dev) * done from the "ops->init" callback. */ pmc_set_acpi_mode(); + + /* + * Disable ACPI PM timer based on Kconfig + * + * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. + * Disabling ACPI PM timer also switches off TCO + */ + if (!CONFIG(USE_PM_ACPI_TIMER)) + pmc_disable_acpi_timer(); } static void pmc_fill_ssdt(const struct device *dev) diff --git a/src/soc/intel/icelake/finalize.c b/src/soc/intel/icelake/finalize.c index f828cc461d..eb7ac10f2e 100644 --- a/src/soc/intel/icelake/finalize.c +++ b/src/soc/intel/icelake/finalize.c @@ -54,15 +54,6 @@ static void pch_finalize(void) */ pch_thermal_configuration(); - /* - * Disable ACPI PM timer based on Kconfig - * - * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. - * Disabling ACPI PM timer also switches off TCO - */ - if (!CONFIG(USE_PM_ACPI_TIMER)) - pmc_disable_acpi_timer(); - pch_handle_sideband(config); pmc_clear_pmcon_sts(); diff --git a/src/soc/intel/icelake/pmc.c b/src/soc/intel/icelake/pmc.c index ee40fee5f2..7886c1b28f 100644 --- a/src/soc/intel/icelake/pmc.c +++ b/src/soc/intel/icelake/pmc.c @@ -66,6 +66,15 @@ static void pmc_init(void *unused) config_deep_s3(config->deep_s3_enable_ac, config->deep_s3_enable_dc); config_deep_s5(config->deep_s5_enable_ac, config->deep_s5_enable_dc); config_deep_sx(config->deep_sx_config); + + /* + * Disable ACPI PM timer based on Kconfig + * + * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. + * Disabling ACPI PM timer also switches off TCO + */ + if (!CONFIG(USE_PM_ACPI_TIMER)) + pmc_disable_acpi_timer(); } /* diff --git a/src/soc/intel/jasperlake/finalize.c b/src/soc/intel/jasperlake/finalize.c index 9aef9eb5d9..40b52946e6 100644 --- a/src/soc/intel/jasperlake/finalize.c +++ b/src/soc/intel/jasperlake/finalize.c @@ -51,15 +51,6 @@ static void pch_finalize(void) /* TODO: Add Thermal Configuration */ - /* - * Disable ACPI PM timer based on Kconfig - * - * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. - * Disabling ACPI PM timer also switches off TCO - */ - if (!CONFIG(USE_PM_ACPI_TIMER)) - pmc_disable_acpi_timer(); - pmcbase = pmc_mmio_regs(); if (config->s0ix_enable) { /* diff --git a/src/soc/intel/jasperlake/pmc.c b/src/soc/intel/jasperlake/pmc.c index a9fc525779..d3607dcb57 100644 --- a/src/soc/intel/jasperlake/pmc.c +++ b/src/soc/intel/jasperlake/pmc.c @@ -92,6 +92,15 @@ static void soc_pmc_init(struct device *dev) * done from the "ops->init" callback. */ pmc_set_acpi_mode(); + + /* + * Disable ACPI PM timer based on Kconfig + * + * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. + * Disabling ACPI PM timer also switches off TCO + */ + if (!CONFIG(USE_PM_ACPI_TIMER)) + pmc_disable_acpi_timer(); } static void pm1_enable_pwrbtn_smi(void *unused) diff --git a/src/soc/intel/tigerlake/finalize.c b/src/soc/intel/tigerlake/finalize.c index 26cba96491..3bbd00266b 100644 --- a/src/soc/intel/tigerlake/finalize.c +++ b/src/soc/intel/tigerlake/finalize.c @@ -35,15 +35,6 @@ static void pch_finalize(void) /* TODO: Add Thermal Configuration */ - /* - * Disable ACPI PM timer based on dt policy - * - * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. - * Disabling ACPI PM timer also switches off TCO - */ - if (!CONFIG(USE_PM_ACPI_TIMER)) - pmc_disable_acpi_timer(); - pmc_clear_pmcon_sts(); } diff --git a/src/soc/intel/tigerlake/pmc.c b/src/soc/intel/tigerlake/pmc.c index ce37007116..01891e1be9 100644 --- a/src/soc/intel/tigerlake/pmc.c +++ b/src/soc/intel/tigerlake/pmc.c @@ -151,6 +151,15 @@ static void soc_pmc_init(struct device *dev) * done from the "ops->init" callback. */ pmc_set_acpi_mode(); + + /* + * Disable ACPI PM timer based on Kconfig + * + * Disabling ACPI PM timer is necessary for XTAL OSC shutdown. + * Disabling ACPI PM timer also switches off TCO + */ + if (!CONFIG(USE_PM_ACPI_TIMER)) + pmc_disable_acpi_timer(); } static void pm1_enable_pwrbtn_smi(void *unused) -- cgit v1.2.3