1 1.8.18.2 jdolecek /* $NetBSD: kern.ldscript,v 1.8.18.2 2017/12/03 11:36:17 jdolecek Exp $ */ 2 1.8.18.2 jdolecek 3 1.8.18.2 jdolecek #include "assym.h" 4 1.8.18.2 jdolecek 5 1.8.18.2 jdolecek __PAGE_SIZE = 0x1000 ; 6 1.1 thorpej 7 1.1 thorpej ENTRY(_start) 8 1.1 thorpej SECTIONS 9 1.1 thorpej { 10 1.8.18.2 jdolecek .text : AT (ADDR(.text) & 0x0fffffff) 11 1.8.18.2 jdolecek { 12 1.8.18.2 jdolecek *(.text) 13 1.8.18.2 jdolecek *(.text.*) 14 1.8.18.2 jdolecek *(.stub) 15 1.8.18.2 jdolecek . = ALIGN(__PAGE_SIZE); 16 1.8.18.2 jdolecek } =0xCC 17 1.8.18.2 jdolecek _etext = . ; 18 1.8.18.2 jdolecek PROVIDE (etext = .) ; 19 1.8.18.2 jdolecek 20 1.8.18.2 jdolecek . = ALIGN(__PAGE_SIZE); 21 1.8.18.2 jdolecek 22 1.8.18.2 jdolecek __rodata_start = . ; 23 1.8.18.2 jdolecek .rodata : 24 1.8.18.2 jdolecek { 25 1.8.18.2 jdolecek *(.rodata) 26 1.8.18.2 jdolecek *(.rodata.*) 27 1.8.18.2 jdolecek } 28 1.8.18.2 jdolecek 29 1.8.18.2 jdolecek . = ALIGN(__PAGE_SIZE); 30 1.8.18.2 jdolecek 31 1.8.18.2 jdolecek __data_start = . ; 32 1.8.18.2 jdolecek .data : 33 1.8.18.2 jdolecek { 34 1.8.18.2 jdolecek *(.data) 35 1.8.18.2 jdolecek } 36 1.8.18.2 jdolecek 37 1.8.18.2 jdolecek . = ALIGN(COHERENCY_UNIT); 38 1.8.18.2 jdolecek .data.cacheline_aligned : 39 1.8.18.2 jdolecek { 40 1.8.18.2 jdolecek *(.data.cacheline_aligned) 41 1.8.18.2 jdolecek } 42 1.8.18.2 jdolecek . = ALIGN(COHERENCY_UNIT); 43 1.8.18.2 jdolecek .data.read_mostly : 44 1.8.18.2 jdolecek { 45 1.8.18.2 jdolecek *(.data.read_mostly) 46 1.8.18.2 jdolecek } 47 1.8.18.2 jdolecek . = ALIGN(COHERENCY_UNIT); 48 1.8.18.2 jdolecek 49 1.8.18.2 jdolecek _edata = . ; 50 1.8.18.2 jdolecek PROVIDE (edata = .) ; 51 1.8.18.2 jdolecek __bss_start = . ; 52 1.8.18.2 jdolecek .bss : 53 1.8.18.2 jdolecek { 54 1.8.18.2 jdolecek *(.bss) 55 1.8.18.2 jdolecek *(.bss.*) 56 1.8.18.2 jdolecek *(COMMON) 57 1.8.18.2 jdolecek . = ALIGN(32 / 8); 58 1.8.18.2 jdolecek } 59 1.8.18.2 jdolecek 60 1.8.18.2 jdolecek . = ALIGN(__PAGE_SIZE); 61 1.8.18.2 jdolecek 62 1.8.18.2 jdolecek /* End of the kernel image */ 63 1.8.18.2 jdolecek __kernel_end = . ; 64 1.8.18.2 jdolecek 65 1.8.18.2 jdolecek _end = . ; 66 1.8.18.2 jdolecek PROVIDE (end = .) ; 67 1.8.18.2 jdolecek .note.netbsd.ident : 68 1.8.18.2 jdolecek { 69 1.8.18.2 jdolecek KEEP(*(.note.netbsd.ident)); 70 1.8.18.2 jdolecek } 71 1.1 thorpej } 72 1.8.18.2 jdolecek 73