summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/x86/smm/smm_module_loader.c6
-rw-r--r--src/cpu/x86/smm/smm_module_loaderv2.c8
-rw-r--r--src/cpu/x86/smm/smm_stub.S8
3 files changed, 5 insertions, 17 deletions
diff --git a/src/cpu/x86/smm/smm_module_loader.c b/src/cpu/x86/smm/smm_module_loader.c
index a4ace43880..d799ae2805 100644
--- a/src/cpu/x86/smm/smm_module_loader.c
+++ b/src/cpu/x86/smm/smm_module_loader.c
@@ -249,7 +249,6 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
stub_params->stack_top = (uintptr_t)stacks_top;
stub_params->stack_size = params->per_cpu_stack_size;
stub_params->c_handler = (uintptr_t)params->handler;
- stub_params->c_handler_arg = (uintptr_t)params->handler_arg;
stub_params->fxsave_area = (uintptr_t)fxsave_area;
stub_params->fxsave_area_size = FXSAVE_SIZE;
stub_params->runtime.smbase = (uintptr_t)smbase;
@@ -265,8 +264,8 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
/* Allow the initiator to manipulate SMM stub parameters. */
params->runtime = &stub_params->runtime;
- printk(BIOS_DEBUG, "SMM Module: stub loaded at %p. Will call %p(%p)\n",
- smm_stub_loc, params->handler, params->handler_arg);
+ printk(BIOS_DEBUG, "SMM Module: stub loaded at %p. Will call %p\n",
+ smm_stub_loc, params->handler);
return 0;
}
@@ -390,7 +389,6 @@ int smm_load_module(void *smram, size_t size, struct smm_loader_params *params)
return -1;
params->handler = rmodule_entry(&smm_mod);
- params->handler_arg = rmodule_parameters(&smm_mod);
return smm_module_setup_stub(smram, size, params, fxsave_area);
}
diff --git a/src/cpu/x86/smm/smm_module_loaderv2.c b/src/cpu/x86/smm/smm_module_loaderv2.c
index 8e02fa8316..be0e23d50c 100644
--- a/src/cpu/x86/smm/smm_module_loaderv2.c
+++ b/src/cpu/x86/smm/smm_module_loaderv2.c
@@ -429,7 +429,6 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
stub_params->stack_top = (uintptr_t)stacks_top;
stub_params->stack_size = params->per_cpu_stack_size;
stub_params->c_handler = (uintptr_t)params->handler;
- stub_params->c_handler_arg = (uintptr_t)params->handler_arg;
stub_params->fxsave_area = (uintptr_t)fxsave_area;
stub_params->fxsave_area_size = FXSAVE_SIZE;
stub_params->runtime.smbase = (uintptr_t)smbase;
@@ -470,8 +469,8 @@ static int smm_module_setup_stub(void *smbase, size_t smm_size,
/* Allow the initiator to manipulate SMM stub parameters. */
params->runtime = &stub_params->runtime;
- printk(BIOS_DEBUG, "SMM Module: stub loaded at %p. Will call %p(%p)\n",
- smm_stub_loc, params->handler, params->handler_arg);
+ printk(BIOS_DEBUG, "SMM Module: stub loaded at %p. Will call %p\n",
+ smm_stub_loc, params->handler);
return 0;
}
@@ -618,7 +617,6 @@ int smm_load_module(void *smram, size_t size, struct smm_loader_params *params)
return -1;
params->handler = rmodule_entry(&smm_mod);
- params->handler_arg = rmodule_parameters(&smm_mod);
printk(BIOS_DEBUG, "%s: smram_start: 0x%p\n",
__func__, smram);
@@ -630,8 +628,6 @@ int smm_load_module(void *smram, size_t size, struct smm_loader_params *params)
__func__, params->handler);
printk(BIOS_DEBUG, "%s: handler_size %zx\n",
__func__, handler_size);
- printk(BIOS_DEBUG, "%s: handler_arg %p\n",
- __func__, params->handler_arg);
printk(BIOS_DEBUG, "%s: fxsave_area %p\n",
__func__, fxsave_area);
printk(BIOS_DEBUG, "%s: fxsave_size %zx\n",
diff --git a/src/cpu/x86/smm/smm_stub.S b/src/cpu/x86/smm/smm_stub.S
index 45f634d0c9..b9b0670ef6 100644
--- a/src/cpu/x86/smm/smm_stub.S
+++ b/src/cpu/x86/smm/smm_stub.S
@@ -21,8 +21,6 @@ stack_top:
.long 0
c_handler:
.long 0
-c_handler_arg:
-.long 0
fxsave_area:
.long 0
fxsave_area_size:
@@ -201,10 +199,10 @@ smm_trampoline32:
* c_handler(&arg)
*/
#ifdef __x86_64__
+ push $0x0 /* Padding */
push %rbx /* uintptr_t *canary */
push $(smm_runtime)
push %rcx /* size_t cpu */
- push c_handler_arg /* void *arg */
mov %rsp, %rdi /* *arg */
@@ -229,13 +227,9 @@ smm_trampoline32:
wrmsr
#else
- push $0x0 /* Padding */
- push $0x0 /* Padding */
- push $0x0 /* Padding */
push %ebx /* uintptr_t *canary */
push $(smm_runtime)
push %ecx /* size_t cpu */
- push c_handler_arg /* void *arg */
push %esp /* smm_module_params *arg (allocated on stack). */
mov c_handler, %eax
call *%eax