1 1.1 matt OUTPUT_ARCH(riscv) 2 1.6 maxv ENTRY(start) 3 1.6 maxv 4 1.6 maxv __PAGE_SIZE = 0x1000 ; 5 1.6 maxv __LARGE_PAGE_SIZE = 0x200000 ; 6 1.6 maxv 7 1.1 matt SECTIONS 8 1.1 matt { 9 1.6 maxv .text : AT (ADDR(.text) & 0x0fffffff) 10 1.6 maxv { 11 1.6 maxv *(.text) 12 1.6 maxv *(.text.*) 13 1.6 maxv *(.stub) 14 1.6 maxv } 15 1.6 maxv _etext = . ; 16 1.6 maxv PROVIDE (etext = .); 17 1.6 maxv 18 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 19 1.6 maxv 20 1.6 maxv __rodata_start = . ; 21 1.6 maxv .rodata : 22 1.6 maxv { 23 1.6 maxv *(.rodata) 24 1.6 maxv *(.rodata.*) 25 1.6 maxv *(.srodata) 26 1.6 maxv *(.srodata.*) 27 1.6 maxv } 28 1.6 maxv 29 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 30 1.6 maxv 31 1.6 maxv __data_start = . ; 32 1.6 maxv .data : 33 1.6 maxv { 34 1.6 maxv *(.data) 35 1.6 maxv *(.sdata) 36 1.6 maxv *(.sdata.*) 37 1.6 maxv } 38 1.6 maxv _edata = . ; 39 1.6 maxv PROVIDE (edata = .) ; 40 1.6 maxv 41 1.6 maxv __bss_start = .; 42 1.6 maxv .bss : 43 1.6 maxv { 44 1.6 maxv *(.bss) 45 1.6 maxv *(.bss.*) 46 1.6 maxv *(.sbss) 47 1.6 maxv *(.sbss.*) 48 1.6 maxv *(COMMON) 49 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 50 1.6 maxv } 51 1.6 maxv 52 1.6 maxv . = ALIGN(__PAGE_SIZE); 53 1.6 maxv 54 1.6 maxv /* End of the kernel image */ 55 1.6 maxv __kernel_end = . ; 56 1.6 maxv 57 1.6 maxv _end = . ; 58 1.6 maxv PROVIDE (end = .) ; 59 1.6 maxv .note.netbsd.ident : 60 1.6 maxv { 61 1.6 maxv KEEP(*(.note.netbsd.ident)); 62 1.6 maxv } 63 1.1 matt } 64