aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorSam Ravnborg <sam@ravnborg.org>2007-09-15 16:47:02 -0400
committerHaavard Skinnemoen <hskinnemoen@atmel.com>2007-10-11 06:16:56 -0400
commit4e59629bf68e8a6f19b806f8ace3d0f31221c4a4 (patch)
treef86c82077678e35fc19ade0023b0d3bb0a27ae8f /arch/avr32/kernel/vmlinux.lds.S
parentfe57f84efe3165a1e2ec477b256870f3d43b698a (diff)
[AVR32] rename vmlinux.lds
Rename vmlinux.lds to a .S file to match other architectures. Simplify Makefile to match the rename and deleted the unused USE_STANDARD_AS_RULE Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
Diffstat (limited to 'arch/avr32/kernel/vmlinux.lds.S')
-rw-r--r--arch/avr32/kernel/vmlinux.lds.S142
1 files changed, 142 insertions, 0 deletions
diff --git a/arch/avr32/kernel/vmlinux.lds.S b/arch/avr32/kernel/vmlinux.lds.S
new file mode 100644
index 000000000000..db0438f35c00
--- /dev/null
+++ b/arch/avr32/kernel/vmlinux.lds.S
@@ -0,0 +1,142 @@
1/*
2 * AVR32 linker script for the Linux kernel
3 *
4 * Copyright (C) 2004-2006 Atmel Corporation
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 */
10#define LOAD_OFFSET 0x00000000
11#include <asm-generic/vmlinux.lds.h>
12
13OUTPUT_FORMAT("elf32-avr32", "elf32-avr32", "elf32-avr32")
14OUTPUT_ARCH(avr32)
15ENTRY(_start)
16
17/* Big endian */
18jiffies = jiffies_64 + 4;
19
20SECTIONS
21{
22 . = CONFIG_ENTRY_ADDRESS;
23 .init : AT(ADDR(.init) - LOAD_OFFSET) {
24 _stext = .;
25 __init_begin = .;
26 _sinittext = .;
27 *(.text.reset)
28 *(.init.text)
29 /*
30 * .exit.text is discarded at runtime, not
31 * link time, to deal with references from
32 * __bug_table
33 */
34 *(.exit.text)
35 _einittext = .;
36 . = ALIGN(4);
37 __tagtable_begin = .;
38 *(.taglist.init)
39 __tagtable_end = .;
40 *(.init.data)
41 . = ALIGN(16);
42 __setup_start = .;
43 *(.init.setup)
44 __setup_end = .;
45 . = ALIGN(4);
46 __initcall_start = .;
47 INITCALLS
48 __initcall_end = .;
49 __con_initcall_start = .;
50 *(.con_initcall.init)
51 __con_initcall_end = .;
52 __security_initcall_start = .;
53 *(.security_initcall.init)
54 __security_initcall_end = .;
55#ifdef CONFIG_BLK_DEV_INITRD
56 . = ALIGN(32);
57 __initramfs_start = .;
58 *(.init.ramfs)
59 __initramfs_end = .;
60#endif
61 . = ALIGN(4096);
62 __init_end = .;
63 }
64
65 . = ALIGN(8192);
66 .text : AT(ADDR(.text) - LOAD_OFFSET) {
67 _evba = .;
68 _text = .;
69 *(.ex.text)
70 . = 0x50;
71 *(.tlbx.ex.text)
72 . = 0x60;
73 *(.tlbr.ex.text)
74 . = 0x70;
75 *(.tlbw.ex.text)
76 . = 0x100;
77 *(.scall.text)
78 *(.irq.text)
79 TEXT_TEXT
80 SCHED_TEXT
81 LOCK_TEXT
82 KPROBES_TEXT
83 *(.fixup)
84 *(.gnu.warning)
85 _etext = .;
86 } = 0xd703d703
87
88 . = ALIGN(4);
89 __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) {
90 __start___ex_table = .;
91 *(__ex_table)
92 __stop___ex_table = .;
93 }
94
95 BUG_TABLE
96
97 RODATA
98
99 . = ALIGN(8192);
100
101 .data : AT(ADDR(.data) - LOAD_OFFSET) {
102 _data = .;
103 _sdata = .;
104 /*
105 * First, the init task union, aligned to an 8K boundary.
106 */
107 *(.data.init_task)
108
109 /* Then, the cacheline aligned data */
110 . = ALIGN(32);
111 *(.data.cacheline_aligned)
112
113 /* And the rest... */
114 *(.data.rel*)
115 DATA_DATA
116 CONSTRUCTORS
117
118 _edata = .;
119 }
120
121
122 . = ALIGN(8);
123 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
124 __bss_start = .;
125 *(.bss)
126 *(COMMON)
127 . = ALIGN(8);
128 __bss_stop = .;
129 _end = .;
130 }
131
132 /* When something in the kernel is NOT compiled as a module, the module
133 * cleanup code and data are put into these segments. Both can then be
134 * thrown away, as cleanup code is never called unless it's a module.
135 */
136 /DISCARD/ : {
137 *(.exit.data)
138 *(.exitcall.exit)
139 }
140
141 DWARF_DEBUG
142}