diff options
author | Pratik Prajapati <pratikkumar.v.prajapati@intel.com> | 2018-05-18 18:07:25 -0700 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2018-06-28 09:01:56 +0000 |
commit | 1b25c8efcae2954b86040083f38ffc4cdc765ecc (patch) | |
tree | a2f3aadca5dde15354091c5bdee43d09f529cf88 | |
parent | 35cb7851ab3e5b9b44857386b43690ce719fa655 (diff) |
soc/intel/skylake: clear MCA before booting to OS
mca_configure needs to be called for each core before
booting to OS, else OS would keep dumping MCEs
Change-Id: I95ca46fda7be65d74714bdb344e339922cbb6305
Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati@intel.com>
Reviewed-on: https://review.coreboot.org/26392
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
-rw-r--r-- | src/soc/intel/skylake/finalize.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/soc/intel/skylake/finalize.c b/src/soc/intel/skylake/finalize.c index 12dbab4814..4c8a1299a8 100644 --- a/src/soc/intel/skylake/finalize.c +++ b/src/soc/intel/skylake/finalize.c @@ -2,7 +2,7 @@ * This file is part of the coreboot project. * * Copyright (C) 2014 Google Inc. - * Copyright (C) 2015 Intel Corporation. + * Copyright (C) 2015-2018 Intel Corporation. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +19,10 @@ #include <chip.h> #include <console/console.h> #include <console/post_codes.h> +#include <cpu/x86/mp.h> #include <cpu/x86/smm.h> #include <device/pci.h> +#include <intelblocks/cpulib.h> #include <intelblocks/lpc_lib.h> #include <intelblocks/p2sb.h> #include <intelblocks/pcr.h> @@ -35,6 +37,7 @@ #include <soc/systemagent.h> #include <soc/thermal.h> #include <stdlib.h> +#include <timer.h> #define PSF_BASE_ADDRESS 0xA00 #define PCR_PSFX_T0_SHDW_PCIEN 0x1C @@ -136,6 +139,9 @@ static void soc_finalize(void *unused) pch_finalize_script(dev); + printk(BIOS_DEBUG, "Clearing MCA.\n"); + mp_run_on_all_cpus(mca_configure, NULL, 17 * USECS_PER_SEC); + soc_lockdown(dev); printk(BIOS_DEBUG, "Finalizing SMM.\n"); |