diff options
Diffstat (limited to 'src/cpu')
-rw-r--r-- | src/cpu/x86/smm/smm_module_loader.c | 6 | ||||
-rw-r--r-- | src/cpu/x86/smm/smm_module_loaderv2.c | 8 | ||||
-rw-r--r-- | src/cpu/x86/smm/smm_stub.S | 8 |
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 |