summaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/entry.S33
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