summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/intel/common/block/include/intelblocks/smihandler.h3
-rw-r--r--src/soc/intel/common/block/smm/smihandler.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/include/intelblocks/smihandler.h b/src/soc/intel/common/block/include/intelblocks/smihandler.h
index df2d17c9e2..197268b29e 100644
--- a/src/soc/intel/common/block/include/intelblocks/smihandler.h
+++ b/src/soc/intel/common/block/include/intelblocks/smihandler.h
@@ -148,6 +148,9 @@ struct global_nvs_t *smm_get_gnvs(void);
/* SoC overrides. */
+/* Specific SOC SMI handler during ramstage finalize phase */
+void smihandler_soc_at_finalize(void);
+
/*
* This function returns a 1 or 0 depending on whether disable_busmaster
* needs to be done for the specified device on S5 entry
diff --git a/src/soc/intel/common/block/smm/smihandler.c b/src/soc/intel/common/block/smm/smihandler.c
index 8a877c3570..81ff3ebec8 100644
--- a/src/soc/intel/common/block/smm/smihandler.c
+++ b/src/soc/intel/common/block/smm/smihandler.c
@@ -38,6 +38,12 @@ static struct global_nvs_t *gnvs;
/* SoC overrides. */
+/* Specific SOC SMI handler during ramstage finalize phase */
+__attribute__((weak)) void smihandler_soc_at_finalize(void)
+{
+ return;
+}
+
__attribute__((weak)) int smihandler_soc_disable_busmaster(device_t dev)
{
return 1;
@@ -278,6 +284,9 @@ static void finalize(void)
if (IS_ENABLED(CONFIG_SPI_FLASH_SMM))
/* Re-init SPI driver to handle locked BAR */
fast_spi_init();
+
+ /* Specific SOC SMI handler during ramstage finalize phase */
+ smihandler_soc_at_finalize();
}
void smihandler_southbridge_apmc(