From d5e5afae9249da312b417bc4f5f45ac164404846 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 30 Oct 2024 16:23:15 +0200 Subject: smp on visionfive2 'works' --- arch/riscv64/kernel/smp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'arch/riscv64/kernel/smp.c') diff --git a/arch/riscv64/kernel/smp.c b/arch/riscv64/kernel/smp.c index 5e30fee..f061694 100644 --- a/arch/riscv64/kernel/smp.c +++ b/arch/riscv64/kernel/smp.c @@ -99,8 +99,7 @@ void smp_bringup(struct vmem *b, void *fdt) BASE_PAGE_SIZE; /* fixup physical address of bringup */ - pm_t bringup = (pm_t)riscv_bringup; - bringup = bringup - VM_KERNEL + get_load_addr(); + pm_t bringup = (pm_t)riscv_bringup - VM_KERNEL + get_load_addr(); r = sbi_hart_start(hartid, bringup, satp); @@ -149,6 +148,9 @@ __noreturn void core_bringup(long hartid) tcb_assign(t); use_tcb(t); + /* now that we're in our own virtual address space, set stack etc. */ + set_thread(t); + info("core %ld releasing BKL\n", (long)cpuid); run_init(t, NULL, NULL); unreachable(); -- cgit v1.3