[BACK]Return to kernel.ld CVS log [TXT][DIR] Up to [local] / prex-old / sys / arch / arm / cats

File: [local] / prex-old / sys / arch / arm / cats / kernel.ld (download)

Revision 1.2, Sun Jul 20 22:49:23 2008 UTC (15 years, 10 months ago) by nbrk
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines

switch to new memory partitioning model:
'prexos' loads at 0; boot stack and boot_info resides below 0x00100000.
bootldr starts at 0 and loads kernel and friends upwards from 0x00100000 (1M);
then, bootldr rewrites himself with first 15 words of kernel .text and jumps
into actual loaded kernel (0x00100000 + entry).
Kernel assigns new SVC, SYS and IRQ stacks - all below BOOT_INFO (1M - BOOT_INFO_SIZE).
This means that zero MB holds vectors trampolines into higher addresses, boot_info and
all kernel stacks.

OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(kernel_start)
PHDRS
{
	text PT_LOAD FILEHDR PHDRS;
	data PT_LOAD;
}
SECTIONS
{
	. = 0x00100000 + SIZEOF_HEADERS;

	.text : {
		*(.text)
		*(.glue_7)
		*(.glue_7t)
	} : text = 0xff

	. = ALIGN(4);
	.rodata : {
		*(.rodata)
		*(.rodata.*)
	} : text

	.data ALIGN(4) : {
		*(.data)
	} : data = 0xff

	. = ALIGN(4);
	__bss = . ;
	.bss .    : {
		*(.bss)
		*(COMMON)
	}
	. = ALIGN(4);
	__end = . ;


	/DISCARD/ : { *(.comment .note) }
}