Nico Huber has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/31200
Change subject: soc/intel/apl: Call mca_configure() on cold boots only ......................................................................
soc/intel/apl: Call mca_configure() on cold boots only
By BIOS Spec we must not do this on warm boots. It also addresses half of the TODO comment.
TEST=Confirmed that warm boots on Kontron/mAL10 don't hang any more.
Change-Id: I09b4a2fe22267d7318951aac20a3ea566403492e Signed-off-by: Nico Huber nico.huber@secunet.com --- M src/soc/intel/apollolake/cpu.c 1 file changed, 5 insertions(+), 4 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/00/31200/1
diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c index bcec28e..c3b689a 100644 --- a/src/soc/intel/apollolake/cpu.c +++ b/src/soc/intel/apollolake/cpu.c @@ -17,6 +17,7 @@ * GNU General Public License for more details. */
+#include <arch/acpi.h> #include <assert.h> #include <console/console.h> #include "chip.h" @@ -70,10 +71,10 @@ void soc_core_init(struct device *cpu) { /* Clear out pending MCEs */ - /* TODO(adurbin): This should only be done on a cold boot. Also, some - * of these banks are core vs package scope. For now every CPU clears - * every bank. */ - mca_configure(NULL); + /* TODO(adurbin): Some of these banks are core vs package + scope. For now every CPU clears every bank. */ + if (acpi_get_sleep_type() != ACPI_S0) + mca_configure(NULL);
/* Set core MSRs */ reg_script_run(core_msr_script);