3 #include "globalconfig.h"
6 _boot_sys_start = 0x300000;
7 _kernel_image = FIASCO_IMAGE_VIRT_START; /* kernel link address */
8 _load = FIASCO_IMAGE_PHYS_START & 0x3fffff;
10 _load = 0x1000; /* skip page 0 to preserve BIOS data and
11 * page 1 to reserve space for the KIP */
13 /*_fiasco_image_offset = 0xf0000000;*/
14 _fiasco_image_offset = FIASCO_IMAGE_PHYS_OFFSET;
16 ENTRY(bootstrap__boot_start)
30 . = FIASCO_MP_TRAMP_PAGE;
37 .text_boot : ALIGN(0x1000) {
38 *(.bootstrap.text .bootstrap.text.* .bootstrap.gnu.linkonce.t.*)
45 PROVIDE(_boot_sys_end = .);
48 . = _kernel_image + _load;
50 .kip : AT(ADDR(.kip) - _fiasco_image_offset) {
51 _kernel_image_start = .;
54 KEEP(*(.initkip.version))
55 KEEP(*(.initkip.features))
56 KEEP(*(.initkip.features.fini))
61 #ifdef CONFIG_ALLOW_RO_TEXT
64 .text : AT (ADDR(.text) - _fiasco_image_offset) {
65 PROVIDE ( _kernel_text_start = . );
68 *(.text SORT(.text.*) .gnu.linkonce.t.*)
73 *(.rodata .rodata.* .gnu.linkonce.r.*)
76 PROVIDE (_log_table = .);
78 * The section must start with ".debug" because else the linker
79 * complains about references to discarded sections
81 KEEP(*(SORT(.debug.jdb.log_table)))
82 PROVIDE (_log_table_end = .);
87 } : ktext = 0x90909090
89 #ifdef CONFIG_ALLOW_RO_TEXT
94 .data : AT (ADDR(.data) - _fiasco_image_offset) {
95 PROVIDE (_kernel_data_start = .);
96 *(.data .data.* .gnu.linkonce.d.*)
99 /* Constructor and destructor lists, ordered by priority. The lists
100 are traversed from end to start, therefore the *_END__ symbols
101 precede the *_LIST__ symbols. */
103 __PER_CPU_CTORS_END__ = .;
104 KEEP (*(.ctors.00010))
105 KEEP (*(.ctors.00009))
106 KEEP (*(.ctors.00008))
107 KEEP (*(.ctors.00007))
108 KEEP (*(.ctors.00006))
109 KEEP (*(.ctors.00005))
110 KEEP (*(.ctors.00004))
111 KEEP (*(.ctors.00003))
112 KEEP (*(.ctors.00002))
113 KEEP (*(.ctors.00001))
114 __PER_CPU_CTORS_LIST__ = .;
119 KEEP (*(SORT (.ctors.*)))
123 KEEP (*(SORT (.dtors.*)))
127 PROVIDE (_edata = .);
131 .per_cpu_data : AT (ADDR(.per_cpu_data) - _fiasco_image_offset) {
132 PROVIDE (_per_cpu_data_start = .);
135 PROVIDE (_per_cpu_data_end = .);
139 .bss : AT (ADDR(.bss) - _fiasco_image_offset) {
140 PROVIDE (_bss_start = .);
141 *(.bss .bss.* .gnu.linkonce.b.* COMMON)
142 PROVIDE (_bss_end = .);
148 PROVIDE (_initcall_start = .);
149 .initcall.text : AT (ADDR(.initcall.text) - _fiasco_image_offset) {
151 } : kitext = 0x90909090
153 .initcall.data : AT (ADDR(.initcall.data) - _fiasco_image_offset) {
156 PROVIDE (_initcall_end = .);