From c36e1b5e5e069ce1735dcc2a94aa45ba72ea2441 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Tue, 9 Dec 2025 00:57:38 +0800 Subject: 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. --- link.ld | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 link.ld (limited to 'link.ld') diff --git a/link.ld b/link.ld new file mode 100644 index 0000000..239d244 --- /dev/null +++ b/link.ld @@ -0,0 +1,39 @@ +OUTPUT_ARCH( "riscv" ) +ENTRY(_start) + +SECTIONS +{ + . = 0x80000000; + + .text : { + PROVIDE(text_start = .); + *(.text.entry) + *(.text .text.*) + . = ALIGN(4096); + PROVIDE(text_end = .); + } + + .rodata : { + PROVIDE(rodata_start = .); + *(.rodata .rodata.*) + . = ALIGN(4096); + PROVIDE(rodata_end = .); + } + + .data : { + PROVIDE(data_start = .); + *(.data .data.*) + . = ALIGN(4096); + PROVIDE(data_end = .); + } + + .bss : { + PROVIDE(bss_start = .); + *(.bss .bss.*) + *(.sbss .sbss.*) + . = ALIGN(4096); + PROVIDE(bss_end = .); + } + + PROVIDE(kernel_end = .); +} \ No newline at end of file -- cgit v1.2.3