11.22Smaxv/*	$NetBSD: kern.ldscript,v 1.22 2018/06/24 18:24:53 maxv Exp $	*/
21.1Sthorpej
31.15Suebayasi#include "assym.h"
41.15Suebayasi
51.18Smaxv__PAGE_SIZE = 0x1000 ;
61.18Smaxv
71.1SthorpejENTRY(_start)
81.1SthorpejSECTIONS
91.1Sthorpej{
101.20Smaxv	.text : AT (ADDR(.text) & 0x0fffffff)
111.16Smaxv	{
121.16Smaxv		*(.text)
131.16Smaxv		*(.text.*)
141.16Smaxv		*(.stub)
151.20Smaxv		. = ALIGN(__PAGE_SIZE);
161.20Smaxv	} =0xCC
171.16Smaxv	_etext = . ;
181.16Smaxv	PROVIDE (etext = .) ;
191.16Smaxv
201.19Smaxv	. = ALIGN(__PAGE_SIZE);
211.17Smaxv
221.17Smaxv	__rodata_start = . ;
231.21Smaxv
241.21Smaxv	.rodata.hotpatch :
251.21Smaxv	{
261.21Smaxv		__rodata_hotpatch_start = . ;
271.21Smaxv		*(.rodata.hotpatch)
281.21Smaxv		__rodata_hotpatch_end = . ;
291.21Smaxv	}
301.21Smaxv
311.16Smaxv	.rodata :
321.16Smaxv	{
331.16Smaxv		*(.rodata)
341.16Smaxv		*(.rodata.*)
351.16Smaxv	}
361.16Smaxv
371.19Smaxv	. = ALIGN(__PAGE_SIZE);
381.19Smaxv
391.16Smaxv	__data_start = . ;
401.16Smaxv	.data :
411.16Smaxv	{
421.16Smaxv		*(.data)
431.16Smaxv	}
441.16Smaxv
451.16Smaxv	. = ALIGN(COHERENCY_UNIT);
461.16Smaxv	.data.cacheline_aligned :
471.16Smaxv	{
481.16Smaxv		*(.data.cacheline_aligned)
491.16Smaxv	}
501.16Smaxv	. = ALIGN(COHERENCY_UNIT);
511.16Smaxv	.data.read_mostly :
521.16Smaxv	{
531.16Smaxv		*(.data.read_mostly)
541.16Smaxv	}
551.16Smaxv	. = ALIGN(COHERENCY_UNIT);
561.18Smaxv
571.16Smaxv	_edata = . ;
581.16Smaxv	PROVIDE (edata = .) ;
591.16Smaxv	__bss_start = . ;
601.16Smaxv	.bss :
611.16Smaxv	{
621.16Smaxv		*(.bss)
631.16Smaxv		*(.bss.*)
641.16Smaxv		*(COMMON)
651.22Smaxv		. = ALIGN(__PAGE_SIZE);
661.16Smaxv	}
671.18Smaxv
681.18Smaxv	. = ALIGN(__PAGE_SIZE);
691.18Smaxv
701.18Smaxv	/* End of the kernel image */
711.18Smaxv	__kernel_end = . ;
721.18Smaxv
731.16Smaxv	_end = . ;
741.16Smaxv	PROVIDE (end = .) ;
751.16Smaxv	.note.netbsd.ident :
761.16Smaxv	{
771.16Smaxv		KEEP(*(.note.netbsd.ident));
781.16Smaxv	}
791.1Sthorpej}
801.16Smaxv
81