Merge remote-tracking branch 'qemu-kvm-tmp/memory/core' into staging
[qemu.git] / tests / xtensa / linker.ld
blob4d0b307fd2500a032bc70ed5ed9d36a301170792
1 OUTPUT_FORMAT("elf32-xtensa-le")
2 ENTRY(_start)
4 __DYNAMIC = 0;
6 MEMORY {
7         ram : ORIGIN = 0xd0000000, LENGTH = 0x08000000  /* 128M */
8         rom : ORIGIN = 0xfe000000, LENGTH = 0x00001000  /* 4k */
11 SECTIONS
13     .init :
14     {
15         *(.init)
16                 *(.init.*)
17     } > rom
19     .vector :
20     {
21     . = 0x00000000;
22         *(.vector.window_overflow_4)
23         *(.vector.window_overflow_4.*)
24     . = 0x00000040;
25         *(.vector.window_underflow_4)
26         *(.vector.window_underflow_4.*)
27     . = 0x00000080;
28         *(.vector.window_overflow_8)
29         *(.vector.window_overflow_8.*)
30     . = 0x000000c0;
31         *(.vector.window_underflow_8)
32         *(.vector.window_underflow_8.*)
33     . = 0x00000100;
34         *(.vector.window_overflow_12)
35         *(.vector.window_overflow_12.*)
36     . = 0x00000140;
37         *(.vector.window_underflow_12)
38         *(.vector.window_underflow_12.*)
40     . = 0x00000180;
41         *(.vector.level2)
42         *(.vector.level2.*)
43     . = 0x000001c0;
44         *(.vector.level3)
45         *(.vector.level3.*)
46     . = 0x00000200;
47         *(.vector.level4)
48         *(.vector.level4.*)
49     . = 0x00000240;
50         *(.vector.level5)
51         *(.vector.level5.*)
52     . = 0x00000280;
53         *(.vector.level6)
54         *(.vector.level6.*)
55     . = 0x000002c0;
56         *(.vector.level7)
57         *(.vector.level7.*)
59     . = 0x00000300;
60         *(.vector.kernel)
61         *(.vector.kernel.*)
62     . = 0x00000340;
63         *(.vector.user)
64         *(.vector.user.*)
65     . = 0x000003c0;
66         *(.vector.double)
67         *(.vector.double.*)
68     } > ram
70         .text :
71         {
72                 _ftext = .;
73                 *(.text .stub .text.* .gnu.linkonce.t.* .literal .literal.*)
74                 _etext = .;
75         } > ram
77         .rodata :
78         {
79                 . = ALIGN(4);
80                 _frodata = .;
81                 *(.rodata .rodata.* .gnu.linkonce.r.*)
82                 *(.rodata1)
83                 _erodata = .;
84         } > ram
86         .data :
87         {
88                 . = ALIGN(4);
89                 _fdata = .;
90                 *(.data .data.* .gnu.linkonce.d.*)
91                 *(.data1)
92                 _gp = ALIGN(16);
93                 *(.sdata .sdata.* .gnu.linkonce.s.*)
94                 _edata = .;
95         } > ram
97         .bss :
98         {
99                 . = ALIGN(4);
100                 _fbss = .;
101                 *(.dynsbss)
102                 *(.sbss .sbss.* .gnu.linkonce.sb.*)
103                 *(.scommon)
104                 *(.dynbss)
105                 *(.bss .bss.* .gnu.linkonce.b.*)
106                 *(COMMON)
107                 _ebss = .;
108                 _end = .;
109         } > ram
112 PROVIDE(_fstack = ORIGIN(ram) + LENGTH(ram) - 4);