From c996684f408dedab3d9a96c5e3bdff2339a74c14 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Wed, 18 Feb 2026 13:23:55 +0000 Subject: [PATCH] intel/smm: make TCO INTRUDER# SMI optional Some platforms can have INTRUDER# asserted continuously. If it is routed to SMI, this can cause an SMI storm and prevent boot. Introduce SOC_INTEL_COMMON_BLOCK_SMM_TCO_INTRUDER_SMI_ENABLE to control whether INTRUDER# is routed to SMI, while keeping TCO SMIs available for other uses (e.g. SPI sync SMIs needed by BOOTMEDIA_SMM_BWP). TEST=build Change-Id: I33eb8ce3bee64c95a4d5a6f95a096577d55c742d Signed-off-by: Sean Rhodes Reviewed-on: https://review.coreboot.org/c/coreboot/+/91335 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- src/soc/intel/common/block/smbus/tco.c | 11 +++++------ src/soc/intel/common/block/smm/Kconfig | 9 +++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/soc/intel/common/block/smbus/tco.c b/src/soc/intel/common/block/smbus/tco.c index b7c9922590..fa462e0921 100644 --- a/src/soc/intel/common/block/smbus/tco.c +++ b/src/soc/intel/common/block/smbus/tco.c @@ -102,15 +102,15 @@ static void tco_timer_disable(void) tco_write_reg(TCO1_CNT, tcocnt); } -/* Enable and initialize TCO intruder SMI */ -static void tco_intruder_smi_enable(void) +/* Configure TCO intruder routing */ +static void tco_intruder_smi_configure(void) { uint16_t tcocnt; - /* Make TCO issue an SMI on INTRD_DET assertion */ tcocnt = tco_read_reg(TCO2_CNT); tcocnt &= ~TCO2_INTRD_SEL_MASK; - tcocnt |= TCO2_INTRD_SEL_SMI; + if (CONFIG(SOC_INTEL_COMMON_BLOCK_SMM_TCO_INTRUDER_SMI_ENABLE)) + tcocnt |= TCO2_INTRD_SEL_SMI; tco_write_reg(TCO2_CNT, tcocnt); } @@ -148,9 +148,8 @@ void tco_configure(void) tco_timer_disable(); - /* Enable intruder interrupt if TCO interrupts are enabled*/ if (CONFIG(SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE)) - tco_intruder_smi_enable(); + tco_intruder_smi_configure(); } uint32_t tco_get_timer_period(void) diff --git a/src/soc/intel/common/block/smm/Kconfig b/src/soc/intel/common/block/smm/Kconfig index 84c406ef3e..446c371bce 100644 --- a/src/soc/intel/common/block/smm/Kconfig +++ b/src/soc/intel/common/block/smm/Kconfig @@ -30,6 +30,15 @@ config SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE help Enable TCO SMI source to e.g. handle case instrusion. +config SOC_INTEL_COMMON_BLOCK_SMM_TCO_INTRUDER_SMI_ENABLE + bool "Enable TCO INTRUDER# SMI" + depends on SOC_INTEL_COMMON_BLOCK_SMM_TCO_ENABLE + default y + help + When enabled, route the TCO INTRUDER# event to SMI. + Some boards may see INTRUDER# asserted continuously. Routing it to + SMI would then cause an SMI storm and prevent boot. + config SOC_INTEL_COMMON_BLOCK_SMM_S5_DELAY_MS int default 100 if CHROMEOS