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