diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2025-12-08 22:25:48 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2025-12-08 22:25:48 +0800 |
| commit | 8cf8be522133548ee25fdcb0258ddf3950a68bcf (patch) | |
| tree | 17d97abd848638d44de41e202d891dcaf4bb68c0 /src/boot | |
| download | lume-8cf8be522133548ee25fdcb0258ddf3950a68bcf.tar.gz lume-8cf8be522133548ee25fdcb0258ddf3950a68bcf.tar.xz | |
The start of the project -- A MicroDOS
feat: Initial bare-metal RISC-V boot with UART
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/entry.S | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/boot/entry.S b/src/boot/entry.S new file mode 100644 index 0000000..1a6f6b8 --- /dev/null +++ b/src/boot/entry.S @@ -0,0 +1,28 @@ +.section .text.entry +.globl _start + +_start: + csrr t0, mhartid + bnez t0, .L_park_harts + + la sp, _stack_top + + la a0, _bss_start + la a1, _bss_end + bge a0, a1, .L_call_main + +.L_clear_bss: + sd zero, (a0) + addi a0, a0, 8 + blt a0, a1, .L_clear_bss + +.L_call_main: + call kernel_main + +.L_infinite_loop: + wfi + j .L_infinite_loop + +.L_park_harts: + wfi + j .L_park_harts
\ No newline at end of file |
