Home | History | Annotate | Line # | Download | only in conf
      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