diff options
Diffstat (limited to 'src/soc/intel/common/block/cpu/mp_init.c')
-rw-r--r-- | src/soc/intel/common/block/cpu/mp_init.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/cpu/mp_init.c b/src/soc/intel/common/block/cpu/mp_init.c index e264348055..fd0ac992b5 100644 --- a/src/soc/intel/common/block/cpu/mp_init.c +++ b/src/soc/intel/common/block/cpu/mp_init.c @@ -22,6 +22,7 @@ #include <cpu/x86/msr.h> #include <cpu/x86/mp.h> #include <cpu/intel/microcode.h> +#include <intelblocks/chip.h> #include <intelblocks/cpulib.h> #include <intelblocks/fast_spi.h> #include <intelblocks/mp_init.h> @@ -124,6 +125,9 @@ static void init_cpus(void *unused) struct device *dev = dev_find_path(NULL, DEVICE_PATH_CPU_CLUSTER); assert(dev != NULL); + if (chip_get_fsp_mp_init()) + return; + microcode_patch = intel_microcode_find(); intel_microcode_load_unlocked(microcode_patch); @@ -138,6 +142,9 @@ static void wrapper_x86_setup_mtrrs(void *unused) /* Ensure to re-program all MTRRs based on DRAM resource settings */ static void post_cpus_init(void *unused) { + if (chip_get_fsp_mp_init()) + return; + if (mp_run_on_all_cpus(&wrapper_x86_setup_mtrrs, NULL, 1000) < 0) printk(BIOS_ERR, "MTRR programming failure\n"); |