From f771de445d6538d049f36c8522b9f42e8dd9c858 Mon Sep 17 00:00:00 2001 From: Pratik Prajapati Date: Wed, 16 Aug 2017 18:22:08 -0700 Subject: 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 Reviewed-on: https://review.coreboot.org/21061 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- src/soc/intel/common/block/cpu/mp_init.c | 13 ++++++++++++- src/soc/intel/common/block/include/intelblocks/mp_init.h | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'src') 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 @@ -92,6 +92,17 @@ int get_cpu_count(void) return num_virt_cores; } +/* + * 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 @@ -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 @@ -42,6 +42,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 -- cgit v1.2.3