summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPratik Prajapati <pratikkumar.v.prajapati@intel.com>2017-08-16 18:22:08 -0700
committerAaron Durbin <adurbin@chromium.org>2017-08-21 15:58:42 +0000
commitf771de445d6538d049f36c8522b9f42e8dd9c858 (patch)
tree4b8dd2d367d269f6fcf6fc9e6d754b9b1faafe17
parent6278867065e0849ba54ed7022fc9aab819daaaaf (diff)
intel/common/cpu: Add function to get microcode patch pointer
Add mp_current_microcode() function to get the microcode patch pointer. Use this function to avoid reading the microcode patch from the boot media. init_cpus() would initialize microcode_patch global variable to point to microcode patch in boot media and this function can be used to access the pointer. Change-Id: Ia71395f4e5b2b4fcd4e4660b66e8beb99eda65b8 Signed-off-by: Pratik Prajapati <pratikkumar.v.prajapati@intel.com> Reviewed-on: https://review.coreboot.org/21061 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
-rw-r--r--src/soc/intel/common/block/cpu/mp_init.c13
-rw-r--r--src/soc/intel/common/block/include/intelblocks/mp_init.h8
2 files changed, 20 insertions, 1 deletions
diff --git a/src/soc/intel/common/block/cpu/mp_init.c b/src/soc/intel/common/block/cpu/mp_init.c
index fd8b5db89e..5bbbb2c01e 100644
--- a/src/soc/intel/common/block/cpu/mp_init.c
+++ b/src/soc/intel/common/block/cpu/mp_init.c
@@ -93,6 +93,17 @@ int get_cpu_count(void)
}
/*
+ * Function to get the microcode patch pointer. Use this function to avoid
+ * reading the microcode patch from the boot media. init_cpus() would
+ * initialize microcode_patch global variable to point to microcode patch
+ * in boot media and this function can be used to access the pointer.
+ */
+const void *intel_mp_current_microcode(void)
+{
+ return microcode_patch;
+}
+
+/*
* MP Init callback function(get_microcode_info) to find the Microcode at
* Pre MP Init phase. This function is common among all SOCs and thus its in
* Common CPU block.
@@ -102,7 +113,7 @@ int get_cpu_count(void)
*/
void get_microcode_info(const void **microcode, int *parallel)
{
- *microcode =microcode_patch;
+ *microcode = intel_mp_current_microcode();
*parallel = 1;
}
diff --git a/src/soc/intel/common/block/include/intelblocks/mp_init.h b/src/soc/intel/common/block/include/intelblocks/mp_init.h
index 1e5531cfd5..d123207c58 100644
--- a/src/soc/intel/common/block/include/intelblocks/mp_init.h
+++ b/src/soc/intel/common/block/include/intelblocks/mp_init.h
@@ -43,6 +43,14 @@
int get_cpu_count(void);
/*
+ * Function to get the microcode patch pointer. Use this function to avoid
+ * reading the microcode patch from the boot media. init_cpus() would
+ * initialize microcode_patch global variable to point to microcode patch
+ * in boot media and this function can be used to access the pointer.
+ */
+const void *intel_mp_current_microcode(void);
+
+/*
* MP Init callback function(get_microcode_info) to find the Microcode at
* Pre MP Init phase. This function is common among all SOCs and thus its in
* Common CPU block.