From a267ebfc347b50fc21953f441d7a7c2ce8cd9c81 Mon Sep 17 00:00:00 2001 From: Barnali Sarkar Date: Tue, 6 Jun 2017 15:22:30 +0530 Subject: [PATCH] UPSTREAM: soc/intel/skylake: Move update microcode from cbfs to mp_ops callbacks FIT is already loading microcode before CPU Reset. So, we need not update the microcode again in RO FW in bootblock. But we need to update in RW FW if there is any new ucode version. So, added the update microcode function in get_microcode_info callback before MP Init to make sure BSP is using the microcode from cbfs. BUG=none BRANCH=none TEST=Build and Boot poppy Change-Id: I7665b2f1fc10f625f8535aef1f11a77154dfe2a4 Signed-off-by: Patrick Georgi Original-Commit-Id: 682355ab16a946dce3f989b9581196a888b17ee8 Original-Change-Id: I5606563726c00974f00285acfa435cadc90a085e Original-Signed-off-by: Barnali Sarkar Original-Reviewed-on: https://review.coreboot.org/20051 Original-Reviewed-by: Aaron Durbin Original-Reviewed-by: Furquan Shaikh Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Subrata Banik Reviewed-on: https://chromium-review.googlesource.com/531703 Commit-Ready: Patrick Georgi Tested-by: Patrick Georgi Reviewed-by: Patrick Georgi --- src/soc/intel/skylake/bootblock/cpu.c | 3 +-- src/soc/intel/skylake/cpu.c | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/soc/intel/skylake/bootblock/cpu.c b/src/soc/intel/skylake/bootblock/cpu.c index 6963b829ea..ee344efb13 100644 --- a/src/soc/intel/skylake/bootblock/cpu.c +++ b/src/soc/intel/skylake/bootblock/cpu.c @@ -16,7 +16,7 @@ #include #include -#include +#include #include #include #include @@ -89,7 +89,6 @@ void bootblock_cpu_init(void) fast_spi_cache_bios_region(); /* Set flex ratio and reset if needed */ set_flex_ratio_to_tdp_nominal(); - intel_update_microcode_from_cbfs(); } void set_max_freq(void) diff --git a/src/soc/intel/skylake/cpu.c b/src/soc/intel/skylake/cpu.c index d1ed146c1b..a40aefcf4f 100644 --- a/src/soc/intel/skylake/cpu.c +++ b/src/soc/intel/skylake/cpu.c @@ -480,6 +480,7 @@ static void get_microcode_info(const void **microcode, int *parallel) microcode_patch = intel_microcode_find(); *microcode = microcode_patch; *parallel = 1; + intel_microcode_load_unlocked(microcode_patch); } static int adjust_apic_id(int index, int apic_id)