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