diff options
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/entry.S | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/boot/entry.S b/src/boot/entry.S index 0ca3b29..c0753c4 100644 --- a/src/boot/entry.S +++ b/src/boot/entry.S @@ -1,40 +1,27 @@ +# src/boot/entry.S .section .text.entry .global _start _start: - csrr t0, mhartid - bnez t0, .L_park - - li t0, 0x1fffffffffffff - csrw pmpaddr0, t0 - li t0, 0xf - csrw pmpcfg0, t0 - - li t0, 0 - li t1, (1 << 11) | (1 << 7) - csrw mstatus, t1 - - csrw satp, zero - - li t0, 0xffff - csrw medeleg, t0 - csrw mideleg, t0 - - la t0, kernel_main - csrw mepc, t0 + la t0, g_dtb_addr + sd a1, 0(t0) la sp, stack_top - mret + call kernel_main .L_park: wfi j .L_park - .section .bss .align 4 .global stack_top stack_base: .space 4096 * 4 -stack_top:
\ No newline at end of file +stack_top: + +.align 8 +.global g_dtb_addr +g_dtb_addr: + .space 8
\ No newline at end of file |
