soc/intel/common: add Kconfig for PM Timer emulation support

Add a Kconfig for SoCs to indicate PM ACPI timer emulation support and
select it by the appropriate SoCs.

This Kconfig gets used in the follow-up changes.

Change-Id: I6ded79221a01655f298ff92b8bd2afabd1d2a3ff
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46017
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
diff --git a/src/soc/intel/alderlake/Kconfig b/src/soc/intel/alderlake/Kconfig
index b8a2a13..dc9e823 100644
--- a/src/soc/intel/alderlake/Kconfig
+++ b/src/soc/intel/alderlake/Kconfig
@@ -13,6 +13,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_COMPRESS_FSP_S_LZ4
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB
diff --git a/src/soc/intel/apollolake/Kconfig b/src/soc/intel/apollolake/Kconfig
index da57931..c1b5252 100644
--- a/src/soc/intel/apollolake/Kconfig
+++ b/src/soc/intel/apollolake/Kconfig
@@ -26,6 +26,7 @@
 	# CPU specific options
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select IOAPIC
 	select PCR_COMMON_IOSF_1_0
 	select SSE2
diff --git a/src/soc/intel/cannonlake/Kconfig b/src/soc/intel/cannonlake/Kconfig
index 9bd9f43..dc2be28 100644
--- a/src/soc/intel/cannonlake/Kconfig
+++ b/src/soc/intel/cannonlake/Kconfig
@@ -79,6 +79,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_COMPRESS_FSP_S_LZMA
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB
diff --git a/src/soc/intel/common/block/cpu/Kconfig b/src/soc/intel/common/block/cpu/Kconfig
index 995a956..9e95a8a 100644
--- a/src/soc/intel/common/block/cpu/Kconfig
+++ b/src/soc/intel/common/block/cpu/Kconfig
@@ -98,3 +98,11 @@
 	 /16/Multi-Key-Total-Memory-Encryption-Spec.pdf". If CPU supports TME,
 	 it would get enabled. If CPU supports MKTME, this same config option
 	 enables MKTME.
+
+config CPU_SUPPORTS_PM_TIMER_EMULATION
+	bool
+	default n
+	help
+	  Select this if the SoC's ucode supports PM ACPI timer emulation (Common
+	  timer Copy), which is required to be able to disable the TCO PM ACPI
+	  timer for power saving.
diff --git a/src/soc/intel/elkhartlake/Kconfig b/src/soc/intel/elkhartlake/Kconfig
index 7e78805..40770d0 100644
--- a/src/soc/intel/elkhartlake/Kconfig
+++ b/src/soc/intel/elkhartlake/Kconfig
@@ -13,6 +13,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_COMPRESS_FSP_S_LZ4
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB
diff --git a/src/soc/intel/icelake/Kconfig b/src/soc/intel/icelake/Kconfig
index 0343263..027ed7d 100644
--- a/src/soc/intel/icelake/Kconfig
+++ b/src/soc/intel/icelake/Kconfig
@@ -12,6 +12,7 @@
 	select BOOT_DEVICE_SUPPORTS_WRITES
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB
 	select HAVE_FSP_GOP
diff --git a/src/soc/intel/jasperlake/Kconfig b/src/soc/intel/jasperlake/Kconfig
index 8efa361..ba7e621 100644
--- a/src/soc/intel/jasperlake/Kconfig
+++ b/src/soc/intel/jasperlake/Kconfig
@@ -13,6 +13,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select COS_MAPPED_TO_MSB
 	select FSP_COMPRESS_FSP_S_LZ4
 	select FSP_M_XIP
diff --git a/src/soc/intel/skylake/Kconfig b/src/soc/intel/skylake/Kconfig
index 4abe29e..14d4fa1 100644
--- a/src/soc/intel/skylake/Kconfig
+++ b/src/soc/intel/skylake/Kconfig
@@ -24,6 +24,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB
 	select HAVE_FSP_GOP
diff --git a/src/soc/intel/tigerlake/Kconfig b/src/soc/intel/tigerlake/Kconfig
index d1689da..0021da5 100644
--- a/src/soc/intel/tigerlake/Kconfig
+++ b/src/soc/intel/tigerlake/Kconfig
@@ -13,6 +13,7 @@
 	select CACHE_MRC_SETTINGS
 	select CPU_INTEL_COMMON
 	select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
+	select CPU_SUPPORTS_PM_TIMER_EMULATION
 	select FSP_COMPRESS_FSP_S_LZ4
 	select FSP_M_XIP
 	select GENERIC_GPIO_LIB