xref: /minix3/minix/kernel/arch/earm/kernel.lds (revision 41b870c89094742fac0d9000e2abce50c1723418)
1433d6423SLionel SambucOUTPUT_ARCH("arm")
2433d6423SLionel SambucENTRY(__k_unpaged_MINIX)
3433d6423SLionel Sambuc
4433d6423SLionel Sambuc_kern_phys_base = 0x80200000;	/* phys 4MB aligned for convenient remapping */
5433d6423SLionel Sambuc_kern_vir_base =  0xF0400000;	/* map kernel high for max. user vir space */
6433d6423SLionel Sambuc_kern_offset = (_kern_vir_base - _kern_phys_base);
7433d6423SLionel Sambuc
8433d6423SLionel Sambuc__k_unpaged__kern_offset = _kern_offset;
9433d6423SLionel Sambuc__k_unpaged__kern_vir_base = _kern_vir_base;
10433d6423SLionel Sambuc__k_unpaged__kern_phys_base = _kern_phys_base;
11433d6423SLionel Sambuc
12433d6423SLionel SambucSECTIONS
13433d6423SLionel Sambuc{
14433d6423SLionel Sambuc	. = _kern_phys_base;
15433d6423SLionel Sambuc	__k_unpaged__kern_unpaged_start = .;
16433d6423SLionel Sambuc
17*41b870c8SEmmanuel Blot	.unpaged_text ALIGN(4096) : { unpaged_*.o(.startup); unpaged_*.o(.text) }
18433d6423SLionel Sambuc	.unpaged_data ALIGN(4096) : { unpaged_*.o(.data .rodata*) }
19433d6423SLionel Sambuc	__k_unpaged__kern_unpaged_edata = .;
20433d6423SLionel Sambuc
21433d6423SLionel Sambuc	.unpaged_bss  ALIGN(4096) : { unpaged_*.o(.bss COMMON) }
22433d6423SLionel Sambuc	__k_unpaged__kern_unpaged_end = .;
23433d6423SLionel Sambuc
24433d6423SLionel Sambuc	. += _kern_offset;
25433d6423SLionel Sambuc
26433d6423SLionel Sambuc	. = ALIGN(4096); usermapped_start = .;
275f5dcc54SLionel Sambuc	.usermapped_glo : AT(ADDR(.usermapped_glo) - _kern_offset) { *(.usermapped_glo) }
28433d6423SLionel Sambuc	. = ALIGN(4096); usermapped_nonglo_start = .;
295f5dcc54SLionel Sambuc	.usermapped : AT(ADDR(.usermapped) - _kern_offset) { *(.usermapped) }
30433d6423SLionel Sambuc	. = ALIGN(4096); usermapped_end = .;
31433d6423SLionel Sambuc	.text             : AT(ADDR(.text) - _kern_offset) { *(.text*) }
32433d6423SLionel Sambuc	_etext = .;
33433d6423SLionel Sambuc	.data ALIGN(4096) : AT(ADDR(.data) - _kern_offset) { *(.data .rodata* ) }
34433d6423SLionel Sambuc	. = ALIGN(4096);
35433d6423SLionel Sambuc	_edata = .;
36433d6423SLionel Sambuc	__k_unpaged__edata = . - _kern_offset;
37433d6423SLionel Sambuc	.bss ALIGN(4096)  : AT(ADDR(.bss) - _kern_offset) { *(.bss* COMMON)
38433d6423SLionel Sambuc		__k_unpaged__kern_size = . - _kern_vir_base;
39433d6423SLionel Sambuc		_kern_size = __k_unpaged__kern_size;
40433d6423SLionel Sambuc
41433d6423SLionel Sambuc		. += 4096;
42433d6423SLionel Sambuc	}
43433d6423SLionel Sambuc	_end = .;
44433d6423SLionel Sambuc        __k_unpaged__end = . - _kern_offset;
45433d6423SLionel Sambuc
46433d6423SLionel Sambuc      /DISCARD/ :
47433d6423SLionel Sambuc       {
48433d6423SLionel Sambuc               *(.ARM.exidx*)
49433d6423SLionel Sambuc       }
50433d6423SLionel Sambuc}
51