riscv64: initial risc-v port

This commit is contained in:
2026-09-28 00:09:01 +02:00
committed by rdmsr
parent d03251d3e0
commit 2c20f0b456
21 changed files with 839 additions and 9 deletions
+89
View File
@@ -0,0 +1,89 @@
OUTPUT_FORMAT(elf64-littleriscv)
ENTRY(kmain)
PHDRS
{
limine_requests PT_LOAD;
text PT_LOAD;
rodata PT_LOAD;
data PT_LOAD;
}
SECTIONS
{
. = 0xffffffff80000000;
.limine_requests : {
KEEP(*(.limine_requests_start))
KEEP(*(.limine_requests))
KEEP(*(.limine_requests_end))
} :limine_requests
. = ALIGN(CONSTANT(MAXPAGESIZE));
text_start_addr = .;
.text : {
*(.text .text.*)
} :text
. = ALIGN(CONSTANT(MAXPAGESIZE));
text_end_addr = .;
rodata_start_addr = .;
.rodata : {
*(.rodata .rodata.*)
} :rodata
.note.gnu.build-id : {
*(.note.gnu.build-id)
} :rodata
. = ALIGN(CONSTANT(MAXPAGESIZE));
rodata_end_addr = .;
data_start_addr = .;
.data.percpu : {
__percpu_start = .;
KEEP(*(.data.percpu .data.percpu.*))
__percpu_end = .;
} :data
.data.tunable : {
__tunables_start = .;
KEEP(*(.data.tunable .data.tunable.*))
__tunables_end = .;
} :data
.data : {
*(.data .data.*)
} :data
.bss : {
*(.bss .bss.*)
*(COMMON)
} :data
. = ALIGN(CONSTANT(MAXPAGESIZE));
data_end_addr = .;
/DISCARD/ : {
*(.eh_frame*)
*(.note .note.*)
}
}