soc/intel/common/block/smm: Add option to have SOC specific SMI Handler at finalize()

This patch ensures common code provides an option to register a
SOC specific SMI handler before booting to OS (specifically during ramstage).

Change-Id: I50fb154cc1ad4b3459bc352d2065f2c582711c20
Signed-off-by: Subrata Banik <subrata.banik@intel.com>
Reviewed-on: https://review.coreboot.org/23810
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Tung Lun Loo <tung.lun.loo@intel.com>
This commit is contained in:
Subrata Banik 2018-02-19 13:57:02 +05:30 committed by Patrick Georgi
parent 736a03fd24
commit f9eaede518
2 changed files with 12 additions and 0 deletions

View File

@ -148,6 +148,9 @@ struct global_nvs_t *smm_get_gnvs(void);
/* SoC overrides. */ /* 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 * This function returns a 1 or 0 depending on whether disable_busmaster
* needs to be done for the specified device on S5 entry * needs to be done for the specified device on S5 entry

View File

@ -38,6 +38,12 @@ static struct global_nvs_t *gnvs;
/* SoC overrides. */ /* 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) __attribute__((weak)) int smihandler_soc_disable_busmaster(device_t dev)
{ {
return 1; return 1;
@ -278,6 +284,9 @@ static void finalize(void)
if (IS_ENABLED(CONFIG_SPI_FLASH_SMM)) if (IS_ENABLED(CONFIG_SPI_FLASH_SMM))
/* Re-init SPI driver to handle locked BAR */ /* Re-init SPI driver to handle locked BAR */
fast_spi_init(); fast_spi_init();
/* Specific SOC SMI handler during ramstage finalize phase */
smihandler_soc_at_finalize();
} }
void smihandler_southbridge_apmc( void smihandler_southbridge_apmc(