Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*	$NetBSD: kern.ldscript,v 1.8 2021/05/01 07:13:21 skrll Exp $	*/

#include "assym.h"

OUTPUT_ARCH(riscv)
ENTRY(start)

__PAGE_SIZE = 0x1000 ;
__LARGE_PAGE_SIZE = 0x200000 ;

SECTIONS
{

	.text : AT (KERNEL_PHYS)
	{
		PROVIDE(__kernel_text = .);
		*(.text)
		*(.text.*)
		*(.stub)
	}
	_etext = . ;
	PROVIDE (etext = .);

	. = ALIGN(__LARGE_PAGE_SIZE);

	PROVIDE(__rodata_start = .);
	.rodata :
	{
		*(.rodata)
		*(.rodata.*)
		*(.srodata)
		*(.srodata.*)
	}

	PROVIDE(_etext = .);
	PROVIDE(etext = .);
	. = ALIGN(__LARGE_PAGE_SIZE);

	.data :
	{
		PROVIDE(__data_start = .);
		*(.data)
	}

	. = ALIGN(COHERENCY_UNIT);
	.data.cacheline_aligned :
	{
		*(.data.cacheline_aligned)
	}
	. = ALIGN(COHERENCY_UNIT);
	.data.read_mostly :
	{
		*(.data.read_mostly)
	}
	. = ALIGN(COHERENCY_UNIT);

	.sdata :
	{
		__global_pointer$ = . + 0x800;
		*(.sdata)
		*(.sdata.*)
	}
	_edata = .;
	PROVIDE (edata = .);

	__bss_start = .;
	.bss :
	{
		*(.bss)
		*(.bss.*)
		*(.sbss)
		*(.sbss.*)
		*(COMMON)
		. = ALIGN(__LARGE_PAGE_SIZE);
	}
	_bss_end__ = . ;
	__bss_end__ = . ;
	. = ALIGN(__PAGE_SIZE);

	__end__ = . ;
	_end = .;
	PROVIDE(end = .);
	.note.netbsd.ident :
	{
		KEEP(*(.note.netbsd.ident));
	}
}