diff options
Diffstat (limited to 'arch/riscv64/kernel/core_bringup.S')
| -rw-r--r-- | arch/riscv64/kernel/core_bringup.S | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/riscv64/kernel/core_bringup.S b/arch/riscv64/kernel/core_bringup.S index 83b017c..8a5a6f5 100644 --- a/arch/riscv64/kernel/core_bringup.S +++ b/arch/riscv64/kernel/core_bringup.S @@ -12,12 +12,17 @@ riscv_bringup: sfence.vma /* fetch the stack allocated to us at our hart index in smp_init_stacks */ - lla t0, smp_init_stacks + lui t0, %hi(smp_init_stacks) + addi t0, t0, %lo(smp_init_stacks) slli t1, a0, RW_SHIFT add t0, t0, t1 lr sp, 0(t0) mv tp, sp + /* calculate actual address in kernelspace where we should jump to */ + /* a0 has RAM base */ + lui t0, %hi(core_bringup) + addi t0, t0, %lo(core_bringup) + /* jump to C to handle rest of bringup */ - lla t0, core_bringup jr t0 |
