xv6-k210/linker/k210.ld

53 lines
959 B
Plaintext

OUTPUT_ARCH(riscv)
ENTRY(_start)
BASE_ADDRESS = 0xffffffff80020000;
SECTIONS
{
/* Load the kernel at this address: "." means the current address */
. = BASE_ADDRESS;
kernel_start = .;
. = ALIGN(4K);
text_start = .;
.text : {
*(.text .text.*)
. = ALIGN(0x1000);
_trampoline = .;
*(trampsec)
. = ALIGN(0x1000);
ASSERT(. - _trampoline == 0x1000, "error: trampoline larger than one page");
PROVIDE(etext = .);
}
. = ALIGN(4K);
rodata_start = .;
.rodata : {
srodata = .;
*(.rodata .rodata.*)
erodata = .;
}
. = ALIGN(4K);
data_start = .;
.data : {
sdata = .;
*(.data .data.*)
edata = .;
}
. = ALIGN(4K);
bss_start = .;
.bss : {
*(.bss.stack)
sbss_clear = .;
*(.sbss .bss .bss.*)
ebss_clear = .;
}
. = ALIGN(4K);
PROVIDE(kernel_end = .);
}