11.8Sskrll/*	$NetBSD: kern.ldscript,v 1.8 2021/05/01 07:13:21 skrll Exp $	*/
21.8Sskrll
31.8Sskrll#include "assym.h"
41.7Sskrll
51.1SmattOUTPUT_ARCH(riscv)
61.6SmaxvENTRY(start)
71.6Smaxv
81.6Smaxv__PAGE_SIZE = 0x1000 ;
91.6Smaxv__LARGE_PAGE_SIZE = 0x200000 ;
101.6Smaxv
111.1SmattSECTIONS
121.1Smatt{
131.8Sskrll
141.8Sskrll	.text : AT (KERNEL_PHYS)
151.6Smaxv	{
161.8Sskrll		PROVIDE(__kernel_text = .);
171.6Smaxv		*(.text)
181.6Smaxv		*(.text.*)
191.6Smaxv		*(.stub)
201.6Smaxv	}
211.6Smaxv	_etext = . ;
221.6Smaxv	PROVIDE (etext = .);
231.6Smaxv
241.6Smaxv	. = ALIGN(__LARGE_PAGE_SIZE);
251.6Smaxv
261.8Sskrll	PROVIDE(__rodata_start = .);
271.6Smaxv	.rodata :
281.6Smaxv	{
291.6Smaxv		*(.rodata)
301.6Smaxv		*(.rodata.*)
311.6Smaxv		*(.srodata)
321.6Smaxv		*(.srodata.*)
331.6Smaxv	}
341.6Smaxv
351.8Sskrll	PROVIDE(_etext = .);
361.8Sskrll	PROVIDE(etext = .);
371.6Smaxv	. = ALIGN(__LARGE_PAGE_SIZE);
381.6Smaxv
391.6Smaxv	.data :
401.6Smaxv	{
411.8Sskrll		PROVIDE(__data_start = .);
421.6Smaxv		*(.data)
431.8Sskrll	}
441.8Sskrll
451.8Sskrll	. = ALIGN(COHERENCY_UNIT);
461.8Sskrll	.data.cacheline_aligned :
471.8Sskrll	{
481.8Sskrll		*(.data.cacheline_aligned)
491.8Sskrll	}
501.8Sskrll	. = ALIGN(COHERENCY_UNIT);
511.8Sskrll	.data.read_mostly :
521.8Sskrll	{
531.8Sskrll		*(.data.read_mostly)
541.8Sskrll	}
551.8Sskrll	. = ALIGN(COHERENCY_UNIT);
561.8Sskrll
571.8Sskrll	.sdata :
581.8Sskrll	{
591.8Sskrll		__global_pointer$ = . + 0x800;
601.6Smaxv		*(.sdata)
611.6Smaxv		*(.sdata.*)
621.6Smaxv	}
631.8Sskrll	_edata = .;
641.8Sskrll	PROVIDE (edata = .);
651.6Smaxv
661.6Smaxv	__bss_start = .;
671.6Smaxv	.bss :
681.6Smaxv	{
691.6Smaxv		*(.bss)
701.6Smaxv		*(.bss.*)
711.6Smaxv		*(.sbss)
721.6Smaxv		*(.sbss.*)
731.6Smaxv		*(COMMON)
741.6Smaxv		. = ALIGN(__LARGE_PAGE_SIZE);
751.6Smaxv	}
761.8Sskrll	_bss_end__ = . ;
771.8Sskrll	__bss_end__ = . ;
781.6Smaxv	. = ALIGN(__PAGE_SIZE);
791.6Smaxv
801.8Sskrll	__end__ = . ;
811.8Sskrll	_end = .;
821.8Sskrll	PROVIDE(end = .);
831.6Smaxv	.note.netbsd.ident :
841.6Smaxv	{
851.6Smaxv		KEEP(*(.note.netbsd.ident));
861.6Smaxv	}
871.1Smatt}
88