From 4141b47b070cbaf3cd83445259067cd38599cc94 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sat, 16 May 2015 13:48:10 +0200 Subject: bd82x6x: Merge common apmc finalize procedure. Change-Id: I9c938b8a69479fae6b0eb99d1135f1caaf26d0e2 Signed-off-by: Vladimir Serbinenko Reviewed-on: http://review.coreboot.org/10227 Reviewed-by: Paul Menzel Tested-by: build bot (Jenkins) Reviewed-by: Nicolas Reinecke Reviewed-by: Patrick Georgi --- src/southbridge/intel/bd82x6x/smihandler.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/southbridge/intel/bd82x6x') diff --git a/src/southbridge/intel/bd82x6x/smihandler.c b/src/southbridge/intel/bd82x6x/smihandler.c index 7ecbd81e92..fbe08728ea 100644 --- a/src/southbridge/intel/bd82x6x/smihandler.c +++ b/src/southbridge/intel/bd82x6x/smihandler.c @@ -38,6 +38,8 @@ */ #include #include +#include +#include /* While we read PMBASE dynamically in case it changed, let's * initialize it with a sane value @@ -584,6 +586,8 @@ static void southbridge_smi_gsmi(void) } #endif +static int mainboard_finalized = 0; + static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state_save) { u32 pmctrl; @@ -634,6 +638,19 @@ static void southbridge_smi_apmc(unsigned int node, smm_state_save_area_t *state printk(BIOS_DEBUG, "SMI#: Setting GNVS to %p\n", gnvs); } break; + case APM_CNT_FINALIZE: + if (mainboard_finalized) { + printk(BIOS_DEBUG, "SMI#: Already finalized\n"); + return; + } + + intel_me_finalize_smm(); + intel_pch_finalize_smm(); + intel_sandybridge_finalize_smm(); + intel_model_206ax_finalize_smm(); + + mainboard_finalized = 1; + break; #if CONFIG_ELOG_GSMI case ELOG_GSMI_APM_CNT: southbridge_smi_gsmi(); -- cgit v1.2.3