diff options
author | Andrey Petrov <andrey.petrov@intel.com> | 2016-11-30 17:39:16 -0800 |
---|---|---|
committer | Aaron Durbin <adurbin@chromium.org> | 2016-12-02 16:39:37 +0100 |
commit | 3b637531c91d0cb290dcff26584274f41c06ec85 (patch) | |
tree | b12afc65236b99bea416fb1fc8cebae55181d8fa /src/soc/intel/apollolake/cpu.c | |
parent | 91bfa8e7eaf7a91c47a3e86c35ffe2135aa0cd8f (diff) |
soc/intel/apollolake: Enable ACPI PM timer emulation on all CPUs
Currently we enable ACPI PM timer emulation only on BSP. So the timer
doesn't work on other cores and that breaks OSes that use it. Also,
microcode uses this information to figure out ACPI IO base, and that
is used for other features. This patch enables ACPI timer emulation
on all the logical CPUs.
BUG=chrome-os-partner:60011
TEST=iotools rdmsr x 0x121, x={0..3}, make sure it is set
Change-Id: I0d6cb8761c1c25d3a2fcf59a49c1eda9e4ccc70c
Signed-off-by: Andrey Petrov <andrey.petrov@intel.com>
Reviewed-on: https://review.coreboot.org/17663
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src/soc/intel/apollolake/cpu.c')
-rw-r--r-- | src/soc/intel/apollolake/cpu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c index 916d7c5cf4..949736821e 100644 --- a/src/soc/intel/apollolake/cpu.c +++ b/src/soc/intel/apollolake/cpu.c @@ -28,6 +28,7 @@ #include <reg_script.h> #include <soc/cpu.h> #include <soc/iomap.h> +#include <soc/pm.h> #include <soc/smm.h> #include <cpu/intel/turbo.h> @@ -56,6 +57,12 @@ static void soc_core_init(device_t cpu) { /* Set core MSRs */ reg_script_run(core_msr_script); + /* + * Enable ACPI PM timer emulation, which also lets microcode know + * location of ACPI_PMIO_BASE. This also enables other features + * implemented in microcode. + */ + enable_pm_timer_emulation(); } static struct device_operations cpu_dev_ops = { |