diff --git a/sys/riscv/riscv/genassym.c b/sys/riscv/riscv/genassym.c index f69a3b86470f..319b7b67aa37 100644 --- a/sys/riscv/riscv/genassym.c +++ b/sys/riscv/riscv/genassym.c @@ -55,6 +55,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include ASSYM(KERNBASE, KERNBASE); ASSYM(VM_MAXUSER_ADDRESS, VM_MAXUSER_ADDRESS); @@ -98,3 +99,5 @@ ASSYM(TF_SEPC, offsetof(struct trapframe, tf_sepc)); ASSYM(TF_STVAL, offsetof(struct trapframe, tf_stval)); ASSYM(TF_SCAUSE, offsetof(struct trapframe, tf_scause)); ASSYM(TF_SSTATUS, offsetof(struct trapframe, tf_sstatus)); + +ASSYM(RISCV_BOOTPARAMS_SIZE, sizeof(struct riscv_bootparams)); diff --git a/sys/riscv/riscv/locore.S b/sys/riscv/riscv/locore.S index 5f08d23b2a2d..a1ec86243adf 100644 --- a/sys/riscv/riscv/locore.S +++ b/sys/riscv/riscv/locore.S @@ -188,7 +188,7 @@ va: mv sp, s3 /* Allocate space for thread0 PCB and riscv_bootparams */ - addi sp, sp, -(PCB_SIZE + 40) & ~STACKALIGNBYTES + addi sp, sp, -(PCB_SIZE + RISCV_BOOTPARAMS_SIZE) & ~STACKALIGNBYTES /* Clear BSS */ la s0, _C_LABEL(__bss_start)