1 1.7.4.1 thorpej /* $NetBSD: kern.ldscript,v 1.7.4.1 2021/05/13 00:47:27 thorpej Exp $ */ 2 1.7.4.1 thorpej 3 1.7.4.1 thorpej #include "assym.h" 4 1.7 skrll 5 1.1 matt OUTPUT_ARCH(riscv) 6 1.6 maxv ENTRY(start) 7 1.6 maxv 8 1.6 maxv __PAGE_SIZE = 0x1000 ; 9 1.6 maxv __LARGE_PAGE_SIZE = 0x200000 ; 10 1.6 maxv 11 1.1 matt SECTIONS 12 1.1 matt { 13 1.7.4.1 thorpej 14 1.7.4.1 thorpej .text : AT (KERNEL_PHYS) 15 1.6 maxv { 16 1.7.4.1 thorpej PROVIDE(__kernel_text = .); 17 1.6 maxv *(.text) 18 1.6 maxv *(.text.*) 19 1.6 maxv *(.stub) 20 1.6 maxv } 21 1.6 maxv _etext = . ; 22 1.6 maxv PROVIDE (etext = .); 23 1.6 maxv 24 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 25 1.6 maxv 26 1.7.4.1 thorpej PROVIDE(__rodata_start = .); 27 1.6 maxv .rodata : 28 1.6 maxv { 29 1.6 maxv *(.rodata) 30 1.6 maxv *(.rodata.*) 31 1.6 maxv *(.srodata) 32 1.6 maxv *(.srodata.*) 33 1.6 maxv } 34 1.6 maxv 35 1.7.4.1 thorpej PROVIDE(_etext = .); 36 1.7.4.1 thorpej PROVIDE(etext = .); 37 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 38 1.6 maxv 39 1.6 maxv .data : 40 1.6 maxv { 41 1.7.4.1 thorpej PROVIDE(__data_start = .); 42 1.6 maxv *(.data) 43 1.7.4.1 thorpej } 44 1.7.4.1 thorpej 45 1.7.4.1 thorpej . = ALIGN(COHERENCY_UNIT); 46 1.7.4.1 thorpej .data.cacheline_aligned : 47 1.7.4.1 thorpej { 48 1.7.4.1 thorpej *(.data.cacheline_aligned) 49 1.7.4.1 thorpej } 50 1.7.4.1 thorpej . = ALIGN(COHERENCY_UNIT); 51 1.7.4.1 thorpej .data.read_mostly : 52 1.7.4.1 thorpej { 53 1.7.4.1 thorpej *(.data.read_mostly) 54 1.7.4.1 thorpej } 55 1.7.4.1 thorpej . = ALIGN(COHERENCY_UNIT); 56 1.7.4.1 thorpej 57 1.7.4.1 thorpej .sdata : 58 1.7.4.1 thorpej { 59 1.7.4.1 thorpej __global_pointer$ = . + 0x800; 60 1.6 maxv *(.sdata) 61 1.6 maxv *(.sdata.*) 62 1.6 maxv } 63 1.7.4.1 thorpej _edata = .; 64 1.7.4.1 thorpej PROVIDE (edata = .); 65 1.6 maxv 66 1.6 maxv __bss_start = .; 67 1.6 maxv .bss : 68 1.6 maxv { 69 1.6 maxv *(.bss) 70 1.6 maxv *(.bss.*) 71 1.6 maxv *(.sbss) 72 1.6 maxv *(.sbss.*) 73 1.6 maxv *(COMMON) 74 1.6 maxv . = ALIGN(__LARGE_PAGE_SIZE); 75 1.6 maxv } 76 1.7.4.1 thorpej _bss_end__ = . ; 77 1.7.4.1 thorpej __bss_end__ = . ; 78 1.6 maxv . = ALIGN(__PAGE_SIZE); 79 1.6 maxv 80 1.7.4.1 thorpej __end__ = . ; 81 1.7.4.1 thorpej _end = .; 82 1.7.4.1 thorpej PROVIDE(end = .); 83 1.6 maxv .note.netbsd.ident : 84 1.6 maxv { 85 1.6 maxv KEEP(*(.note.netbsd.ident)); 86 1.6 maxv } 87 1.1 matt } 88