diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c index a545d67537..94a8fd8d8b 100644 --- a/src/cpu/x86/mp_init.c +++ b/src/cpu/x86/mp_init.c @@ -730,16 +730,16 @@ static void asmlinkage smm_do_relocation(void *arg) * the location of the new SMBASE. If using SMM modules then this * calculation needs to match that of the module loader. */ -#if CONFIG(X86_SMM_LOADER_VERSION2) - perm_smbase = smm_get_cpu_smbase(cpu); - if (!perm_smbase) { - printk(BIOS_ERR, "%s: bad SMBASE for CPU %d\n", __func__, cpu); - return; + if (CONFIG(X86_SMM_LOADER_VERSION2)) { + perm_smbase = smm_get_cpu_smbase(cpu); + if (!perm_smbase) { + printk(BIOS_ERR, "%s: bad SMBASE for CPU %d\n", __func__, cpu); + return; + } + } else { + perm_smbase = mp_state.perm_smbase; + perm_smbase -= cpu * mp_state.smm_save_state_size; } -#else - perm_smbase = mp_state.perm_smbase; - perm_smbase -= cpu * mp_state.smm_save_state_size; -#endif /* Setup code checks this callback for validity. */ printk(BIOS_INFO, "%s : curr_smbase 0x%x perm_smbase 0x%x, cpu = %d\n", diff --git a/src/include/cpu/x86/smm.h b/src/include/cpu/x86/smm.h index 4f3db291ac..b42f3faef4 100644 --- a/src/include/cpu/x86/smm.h +++ b/src/include/cpu/x86/smm.h @@ -151,9 +151,7 @@ struct smm_loader_params { int smm_setup_relocation_handler(struct smm_loader_params *params); int smm_load_module(void *smram, size_t size, struct smm_loader_params *params); -#if CONFIG(X86_SMM_LOADER_VERSION2) u32 smm_get_cpu_smbase(unsigned int cpu_num); -#endif /* Backup and restore default SMM region. */ void *backup_default_smm_area(void);