e45101bf71f3b4b88d6b93f9e211c3e501b7ff5f
[tpg/acess2.git] / KernelLand / Kernel / arch / armv7 / link.ld
1 ENTRY (_start)
2
3 _kernel_base = 0x80000000;
4 _usertext_vbase = 0xFFFFE000;
5
6 SECTIONS
7 {
8         . = 0;
9         .init :
10         {
11                 *(.init)
12         }
13         . += _kernel_base;
14         .text : AT( ADDR(.text) - _kernel_base )
15         {
16                 *(.text*)
17                 *(.rodata*)
18         }
19                         
20
21         /* HACKS: User accesible .text section */
22         . = ALIGN(0x1000);
23         gUsertextPhysStart = . - _kernel_base;
24         . = _usertext_vbase;
25         .usertext : AT( gUsertextPhysStart )
26         {
27                 *(.usertext)
28         }
29         . += gUsertextPhysStart + _kernel_base - _usertext_vbase;
30
31         /DISCARD/           : { *(.ARM.extab.init .ARM.exidx.init)      }
32         .ARM.extab          : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
33         PROVIDE_HIDDEN ( __exidx_start = . );
34         .ARM.exidx          : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
35         PROVIDE_HIDDEN ( __exidx_end = . );
36         .eh_frame_hdr       : { *(.eh_frame_hdr) }
37         .eh_frame           : ONLY_IF_RO { KEEP (*(.eh_frame)) }
38         .gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
39
40         /* 0x4000 (4 pages) alignment needed for root table */
41         . = ALIGN(0x4000);
42         .data : AT( ADDR(.data) - _kernel_base )
43         {
44                 *(.padata)
45                 *(.data*)
46                 
47                 gKernelSymbols = .;
48                 *(KEXPORT)
49                 gKernelSymbolsEnd = .;
50                 
51                 gKernelModules = .;
52                 *(KMODULES)
53                 gKernelModulesEnd = .;
54         }
55         .bss ALIGN(0x1000) : AT( ADDR(.bss) - _kernel_base )
56         {
57                 bss_start = .;
58                 *(.bss*)
59                 *(COMMON*)
60                 . = ALIGN(0x1000);
61                 *(.pabss)
62                 bss_end = .;
63         }
64         gKernelEnd = .;
65 }

UCC git Repository :: git.ucc.asn.au