summaryrefslogtreecommitdiff
path: root/src/soc/intel/meteorlake
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/meteorlake')
-rw-r--r--src/soc/intel/meteorlake/Kconfig2
-rw-r--r--src/soc/intel/meteorlake/cpu.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/src/soc/intel/meteorlake/Kconfig b/src/soc/intel/meteorlake/Kconfig
index b2a094fbb8..c4fe39a606 100644
--- a/src/soc/intel/meteorlake/Kconfig
+++ b/src/soc/intel/meteorlake/Kconfig
@@ -15,7 +15,7 @@ config CPU_SPECIFIC_OPTIONS
select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
select CPU_SUPPORTS_INTEL_TME
select CPU_SUPPORTS_PM_TIMER_EMULATION
- select DEFAULT_X2APIC
+ select DEFAULT_X2APIC_LATE_WORKAROUND
select DISPLAY_FSP_VERSION_INFO
select DRIVERS_INTEL_USB4_RETIMER
select DRIVERS_USB_ACPI
diff --git a/src/soc/intel/meteorlake/cpu.c b/src/soc/intel/meteorlake/cpu.c
index 8213143818..e0b7eccf69 100644
--- a/src/soc/intel/meteorlake/cpu.c
+++ b/src/soc/intel/meteorlake/cpu.c
@@ -89,6 +89,14 @@ bool soc_is_nominal_freq_supported(void)
return true;
}
+static void enable_x2apic(void)
+{
+ if (!CONFIG(X2APIC_LATE_WORKAROUND))
+ return;
+
+ enable_lapic_mode(true);
+}
+
/* All CPUs including BSP will run the following function. */
void soc_core_init(struct device *cpu)
{
@@ -98,6 +106,8 @@ void soc_core_init(struct device *cpu)
* every bank. */
mca_configure();
+ enable_x2apic();
+
enable_lapic_tpr();
/* Configure Enhanced SpeedStep and Thermal Sensors */