diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2025-12-09 00:57:38 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2025-12-09 00:57:38 +0800 |
| commit | c36e1b5e5e069ce1735dcc2a94aa45ba72ea2441 (patch) | |
| tree | 34be19b553615cfe36a556452e3b7ebad5276216 /src/boot | |
| parent | 8cf8be522133548ee25fdcb0258ddf3950a68bcf (diff) | |
| download | lume-c36e1b5e5e069ce1735dcc2a94aa45ba72ea2441.tar.gz lume-c36e1b5e5e069ce1735dcc2a94aa45ba72ea2441.tar.xz | |
feat: Initial PMM implementation
Introduce the foundational Physical Memory Manager (PMM) and restructure the project for modularity.
Implemented basic PMM and related memory management headers (mm/pmm.h, mm/vm.h).
Updated Makefile and build process to support new modular structure.
Diffstat (limited to 'src/boot')
| -rw-r--r-- | src/boot/entry.S | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/src/boot/entry.S b/src/boot/entry.S index 1a6f6b8..0ca3b29 100644 --- a/src/boot/entry.S +++ b/src/boot/entry.S @@ -1,28 +1,40 @@ .section .text.entry -.globl _start +.global _start _start: csrr t0, mhartid - bnez t0, .L_park_harts + bnez t0, .L_park - la sp, _stack_top + li t0, 0x1fffffffffffff + csrw pmpaddr0, t0 + li t0, 0xf + csrw pmpcfg0, t0 - la a0, _bss_start - la a1, _bss_end - bge a0, a1, .L_call_main + li t0, 0 + li t1, (1 << 11) | (1 << 7) + csrw mstatus, t1 -.L_clear_bss: - sd zero, (a0) - addi a0, a0, 8 - blt a0, a1, .L_clear_bss + csrw satp, zero -.L_call_main: - call kernel_main + li t0, 0xffff + csrw medeleg, t0 + csrw mideleg, t0 + + la t0, kernel_main + csrw mepc, t0 -.L_infinite_loop: - wfi - j .L_infinite_loop + la sp, stack_top + + mret -.L_park_harts: +.L_park: wfi - j .L_park_harts
\ No newline at end of file + j .L_park + + +.section .bss +.align 4 +.global stack_top +stack_base: + .space 4096 * 4 +stack_top:
\ No newline at end of file |
