summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/cpu/x86/mp_init.c5
-rw-r--r--src/cpu/x86/smm/smm_module_loader.c5
-rw-r--r--src/cpu/x86/smm/smm_module_loaderv2.c20
-rw-r--r--src/cpu/x86/smm/smm_stub.S18
-rw-r--r--src/include/cpu/x86/smm.h2
5 files changed, 2 insertions, 48 deletions
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 26b1ccabe251..6003c9745bf1 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -709,15 +709,12 @@ static void smm_enable(void)
static void asmlinkage smm_do_relocation(void *arg)
{
const struct smm_module_params *p;
- const struct smm_runtime *runtime;
int cpu;
- uintptr_t curr_smbase;
+ const uintptr_t curr_smbase = SMM_DEFAULT_BASE;
uintptr_t perm_smbase;
p = arg;
- runtime = p->runtime;
cpu = p->cpu;
- curr_smbase = runtime->smbase;
if (cpu >= CONFIG_MAX_CPUS) {
printk(BIOS_CRIT,
diff --git a/src/cpu/x86/smm/smm_module_loader.c b/src/cpu/x86/smm/smm_module_loader.c
index 028ace27ebdd..de2738ab36a7 100644
--- a/src/cpu/x86/smm/smm_module_loader.c
+++ b/src/cpu/x86/smm/smm_module_loader.c
@@ -251,11 +251,6 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
stub_params->c_handler = (uintptr_t)params->handler;
stub_params->fxsave_area = (uintptr_t)fxsave_area;
stub_params->fxsave_area_size = FXSAVE_SIZE;
- stub_params->runtime.smbase = (uintptr_t)smbase;
- stub_params->runtime.smm_size = smm_size;
- stub_params->runtime.save_state_size = params->per_cpu_save_state_size;
- stub_params->runtime.num_cpus = params->num_concurrent_stacks;
- stub_params->runtime.gnvs_ptr = (uintptr_t)acpi_get_gnvs();
/* Initialize the APIC id to CPU number table to be 1:1 */
for (i = 0; i < params->num_concurrent_stacks; i++)
diff --git a/src/cpu/x86/smm/smm_module_loaderv2.c b/src/cpu/x86/smm/smm_module_loaderv2.c
index afed05f9bdea..5f7e76ec0164 100644
--- a/src/cpu/x86/smm/smm_module_loaderv2.c
+++ b/src/cpu/x86/smm/smm_module_loaderv2.c
@@ -342,7 +342,6 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
size_t i;
struct smm_stub_params *stub_params;
struct rmodule smm_stub;
- unsigned int total_size_all;
base = smbase;
size = smm_size;
@@ -431,11 +430,6 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
stub_params->c_handler = (uintptr_t)params->handler;
stub_params->fxsave_area = (uintptr_t)fxsave_area;
stub_params->fxsave_area_size = FXSAVE_SIZE;
- stub_params->runtime.smbase = (uintptr_t)smbase;
- stub_params->runtime.smm_size = smm_size;
- stub_params->runtime.save_state_size = params->per_cpu_save_state_size;
- stub_params->runtime.num_cpus = params->num_concurrent_stacks;
- stub_params->runtime.gnvs_ptr = (uintptr_t)acpi_get_gnvs();
printk(BIOS_DEBUG, "%s: stack_end = 0x%lx\n",
__func__, stub_params->stack_top - total_stack_size);
@@ -443,24 +437,10 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
"%s: stack_top = 0x%x\n", __func__, stub_params->stack_top);
printk(BIOS_DEBUG, "%s: stack_size = 0x%x\n",
__func__, stub_params->stack_size);
- printk(BIOS_DEBUG, "%s: runtime.smbase = 0x%x\n",
- __func__, stub_params->runtime.smbase);
printk(BIOS_DEBUG, "%s: runtime.start32_offset = 0x%x\n", __func__,
stub_params->start32_offset);
printk(BIOS_DEBUG, "%s: runtime.smm_size = 0x%zx\n",
__func__, smm_size);
- printk(BIOS_DEBUG, "%s: per_cpu_save_state_size = 0x%x\n",
- __func__, stub_params->runtime.save_state_size);
- printk(BIOS_DEBUG, "%s: num_cpus = 0x%x\n", __func__,
- stub_params->runtime.num_cpus);
- printk(BIOS_DEBUG, "%s: total_save_state_size = 0x%x\n",
- __func__, (stub_params->runtime.save_state_size *
- stub_params->runtime.num_cpus));
- total_size_all = stub_params->stack_size +
- (stub_params->runtime.save_state_size *
- stub_params->runtime.num_cpus);
- printk(BIOS_DEBUG, "%s: total_size_all = 0x%x\n", __func__,
- total_size_all);
/* Initialize the APIC id to CPU number table to be 1:1 */
for (i = 0; i < params->num_concurrent_stacks; i++)
diff --git a/src/cpu/x86/smm/smm_stub.S b/src/cpu/x86/smm/smm_stub.S
index 10560b159377..7c09e04108bf 100644
--- a/src/cpu/x86/smm/smm_stub.S
+++ b/src/cpu/x86/smm/smm_stub.S
@@ -34,20 +34,6 @@ apic_to_cpu_num:
start32_offset:
.long smm_trampoline32 - _start
-/* struct smm_runtime begins here. */
-smm_runtime:
-smbase:
-.long 0
-smm_size:
-.long 0
-save_state_size:
-.long 0
-num_cpus:
-.long 0
-gnvs_ptr:
-.long 0
-/* end struct smm_runtime */
-
.data
/* Provide fallback stack to use when a valid CPU number cannot be found. */
fallback_stack_bottom:
@@ -200,9 +186,7 @@ smm_trampoline32:
* c_handler(&arg)
*/
#ifdef __x86_64__
- push $0x0 /* Padding */
push %rbx /* uintptr_t *canary */
- push $(smm_runtime)
push %rcx /* size_t cpu */
mov %rsp, %rdi /* *arg */
@@ -228,8 +212,8 @@ smm_trampoline32:
wrmsr
#else
+ push $0x0 /* Padding */
push %ebx /* uintptr_t *canary */
- push $(smm_runtime)
push %ecx /* size_t cpu */
push %esp /* smm_module_params *arg (allocated on stack). */
mov c_handler, %eax
diff --git a/src/include/cpu/x86/smm.h b/src/include/cpu/x86/smm.h
index 8b92e417e81d..cb9aeac813a6 100644
--- a/src/include/cpu/x86/smm.h
+++ b/src/include/cpu/x86/smm.h
@@ -64,7 +64,6 @@ struct smm_runtime {
struct smm_module_params {
size_t cpu;
- const struct smm_runtime *runtime;
/* A canary value that has been placed at the end of the stack.
* If (uintptr_t)canary != *canary then a stack overflow has occurred.
*/
@@ -88,7 +87,6 @@ struct smm_stub_params {
u8 apic_id_to_cpu[CONFIG_MAX_CPUS];
/* STM's 32bit entry into SMI handler */
u32 start32_offset;
- struct smm_runtime runtime;
} __packed;
/* smm_handler_t is called with arg of smm_module_params pointer. */