aboutsummaryrefslogtreecommitdiff
path: root/src/cpu/x86/mp_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cpu/x86/mp_init.c')
-rw-r--r--src/cpu/x86/mp_init.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 9526824976..3889c7d28e 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -18,6 +18,7 @@
#include <stdint.h>
#include <rmodule.h>
#include <arch/cpu.h>
+#include <commonlib/helpers.h>
#include <cpu/cpu.h>
#include <cpu/intel/microcode.h>
#include <cpu/x86/cache.h>
@@ -229,11 +230,11 @@ static void asmlinkage ap_init(unsigned int cpu)
static void setup_default_sipi_vector_params(struct sipi_params *sp)
{
- sp->gdt = (uint32_t)&gdt;
- sp->gdtlimit = (uint32_t)&gdt_end - (u32)&gdt - 1;
- sp->idt_ptr = (uint32_t)&idtarg;
+ sp->gdt = (uintptr_t)&gdt;
+ sp->gdtlimit = (uintptr_t)&gdt_end - (uintptr_t)&gdt - 1;
+ sp->idt_ptr = (uintptr_t)&idtarg;
sp->stack_size = CONFIG_STACK_SIZE;
- sp->stack_top = (uint32_t)&_estack;
+ sp->stack_top = ALIGN_DOWN((uintptr_t)&_estack, CONFIG_STACK_SIZE);
/* Adjust the stack top to take into account cpu_info. */
sp->stack_top -= sizeof(struct cpu_info);
}