aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/boot/boot-elf/boot.lds.S
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2008-02-12 16:14:17 -0500
committerChris Zankel <chris@zankel.net>2008-02-13 20:26:17 -0500
commit36dffadb7f19671aab58be43c5896ea87d5fb1bf (patch)
treecd319ff25851048fab09f382a0eded96f112924f /arch/xtensa/boot/boot-elf/boot.lds.S
parent6d15d109632ff01e13c26893030e2ed9e6c4e3fd (diff)
[XTENSA] Use preprocessor to generate the linker script for the ELF boot image
Signed-off-by: Marc Gauthier <marc@tensilica.com> Signed-off-by: Chris Zankel <chris@zankel.net>
Diffstat (limited to 'arch/xtensa/boot/boot-elf/boot.lds.S')
-rw-r--r--arch/xtensa/boot/boot-elf/boot.lds.S73
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/xtensa/boot/boot-elf/boot.lds.S b/arch/xtensa/boot/boot-elf/boot.lds.S
new file mode 100644
index 000000000000..849dfcafd518
--- /dev/null
+++ b/arch/xtensa/boot/boot-elf/boot.lds.S
@@ -0,0 +1,73 @@
1#include <asm/variant/core.h>
2OUTPUT_ARCH(xtensa)
3ENTRY(_ResetVector)
4
5SECTIONS
6{
7 .start 0xD0000000 : { *(.start) }
8
9 .text 0xD0000000:
10 {
11 __reloc_start = . ;
12 _text_start = . ;
13 *(.literal .text.literal .text)
14 _text_end = . ;
15 }
16
17 .rodata ALIGN(0x04):
18 {
19 *(.rodata)
20 *(.rodata1)
21 }
22
23 .data ALIGN(0x04):
24 {
25 *(.data)
26 *(.data1)
27 *(.sdata)
28 *(.sdata2)
29 *(.got.plt)
30 *(.got)
31 *(.dynamic)
32 }
33
34 __reloc_end = . ;
35
36 .initrd ALIGN(0x10) :
37 {
38 boot_initrd_start = . ;
39 *(.initrd)
40 boot_initrd_end = .;
41 }
42
43 . = ALIGN(0x10);
44 __image_load = . ;
45 .image 0xd0001000:
46 {
47 _image_start = .;
48 *(image)
49 . = (. + 3) & ~ 3;
50 _image_end = . ;
51 }
52
53
54 .bss ((LOADADDR(.image) + SIZEOF(.image) + 3) & ~ 3):
55 {
56 __bss_start = .;
57 *(.sbss)
58 *(.scommon)
59 *(.dynbss)
60 *(.bss)
61 __bss_end = .;
62 }
63 _end = .;
64 _param_start = .;
65
66 .ResetVector.text XCHAL_RESET_VECTOR_VADDR :
67 {
68 *(.ResetVector.text)
69 }
70
71
72 PROVIDE (end = .);
73}