summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/x86/mp_init.c18
-rw-r--r--src/include/cpu/x86/smm.h2
2 files changed, 9 insertions, 11 deletions
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);