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 <sean@starlabs.systems>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/91335
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
This commit is contained in:
Sean Rhodes 2026-02-18 13:23:55 +00:00 committed by Matt DeVillier
commit c996684f40
2 changed files with 14 additions and 6 deletions

View file

@ -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)

View file

@ -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