aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/apollolake/cpu.c
diff options
context:
space:
mode:
authorJohn Zhao <john.zhao@intel.com>2016-08-23 16:38:05 -0700
committerMartin Roth <martinroth@google.com>2016-08-31 17:02:51 +0200
commit3156934bf8f059fb8ba14965b75ed0ccb56c79cb (patch)
treeda7848dbbb48a0ba32553c6c311d0f85110e4fba /src/soc/intel/apollolake/cpu.c
parent62d13139256d6b6abcc7a5d88dfd6b0f2e689dd6 (diff)
soc/intel/apollolake: Gather microcode revision
Expose get_microcode_info in cpu initialization. Microcode revision is retrieved and stored into log file at verstage. BUG=chrome-os-partner:56544 BRANCH=None TEST=Built coreboot image and validate log file Change-Id: I1e792e70f1318df64b4b85a319700013f3757952 Signed-off-by: John Zhao <john.zhao@intel.com> Reviewed-on: https://review.coreboot.org/16311 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Diffstat (limited to 'src/soc/intel/apollolake/cpu.c')
-rw-r--r--src/soc/intel/apollolake/cpu.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c
index 4f74def886..86fe3e1fd5 100644
--- a/src/soc/intel/apollolake/cpu.c
+++ b/src/soc/intel/apollolake/cpu.c
@@ -20,6 +20,7 @@
#include <cpu/cpu.h>
#include <cpu/x86/cache.h>
#include <cpu/x86/mp.h>
+#include <cpu/intel/microcode.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/mtrr.h>
#include <device/device.h>
@@ -42,7 +43,6 @@ static const struct cpu_driver driver __cpu_driver = {
.id_table = cpu_table,
};
-
/*
* MP and SMM loading initialization.
*/
@@ -88,6 +88,12 @@ static int get_cpu_count(void)
return num_virt_cores;
}
+static void get_microcode_info(const void **microcode, int *parallel)
+{
+ *microcode = intel_microcode_find();
+ *parallel = 1;
+}
+
static void get_smm_info(uintptr_t *perm_smbase, size_t *perm_smsize,
size_t *smm_save_state_size)
{
@@ -135,6 +141,7 @@ static const struct mp_ops mp_ops = {
.pre_mp_init = pre_mp_init,
.get_cpu_count = get_cpu_count,
.get_smm_info = get_smm_info,
+ .get_microcode_info = get_microcode_info,
.pre_mp_smm_init = southbridge_smm_clear_state,
.relocation_handler = relocation_handler,
.post_mp_init = southbridge_smm_enable_smi,