diff options
author | Mike Frysinger <michael.frysinger@analog.com> | 2007-08-27 04:08:53 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-08-27 04:08:53 -0400 |
commit | 27d875f2c134c4b26860ccdd03b4c52cce4efc2c (patch) | |
tree | 5967e1a42f638a8e73d124e8822ece0b33e45dfd /arch/blackfin/kernel/vmlinux.lds.S | |
parent | d8350e704e5a47784d108d57c27dbb7b9c0a4369 (diff) |
Blackfin arch: vmlinux.lds.S, break up our .init into separate sections
Break up our .init into separate section like all other ports do and
so that we dont mix text and data (causes disassembly headaches as
pointed out by Robin)
Cc: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/blackfin/kernel/vmlinux.lds.S | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index e40b66ae1b79..cd1cea05f1a8 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -46,11 +46,11 @@ SECTIONS | |||
46 | __text = .; | 46 | __text = .; |
47 | _text = .; | 47 | _text = .; |
48 | __stext = .; | 48 | __stext = .; |
49 | *(.text.*) | ||
50 | TEXT_TEXT | 49 | TEXT_TEXT |
51 | SCHED_TEXT | 50 | SCHED_TEXT |
52 | LOCK_TEXT | 51 | LOCK_TEXT |
53 | *(.text.lock) | 52 | KPROBES_TEXT |
53 | *(.text.*) | ||
54 | *(.fixup) | 54 | *(.fixup) |
55 | 55 | ||
56 | . = ALIGN(16); | 56 | . = ALIGN(16); |
@@ -62,7 +62,7 @@ SECTIONS | |||
62 | __etext = .; | 62 | __etext = .; |
63 | } | 63 | } |
64 | 64 | ||
65 | RODATA | 65 | RO_DATA(PAGE_SIZE) |
66 | 66 | ||
67 | .data : | 67 | .data : |
68 | { | 68 | { |
@@ -73,51 +73,63 @@ SECTIONS | |||
73 | __sdata = .; | 73 | __sdata = .; |
74 | . = ALIGN(THREAD_SIZE); | 74 | . = ALIGN(THREAD_SIZE); |
75 | *(.data.init_task) | 75 | *(.data.init_task) |
76 | DATA_DATA | ||
77 | *(.data.*) | ||
78 | CONSTRUCTORS | ||
79 | 76 | ||
80 | . = ALIGN(32); | 77 | . = ALIGN(32); |
81 | *(.data.cacheline_aligned) | 78 | *(.data.cacheline_aligned) |
82 | 79 | ||
80 | DATA_DATA | ||
81 | *(.data.*) | ||
82 | CONSTRUCTORS | ||
83 | |||
83 | . = ALIGN(THREAD_SIZE); | 84 | . = ALIGN(THREAD_SIZE); |
84 | __edata = .; | 85 | __edata = .; |
85 | } | 86 | } |
86 | 87 | ||
87 | ___init_begin = .; | 88 | ___init_begin = .; |
88 | .init : | 89 | |
90 | .init.text : | ||
89 | { | 91 | { |
90 | . = ALIGN(PAGE_SIZE); | 92 | . = ALIGN(PAGE_SIZE); |
91 | __sinittext = .; | 93 | __sinittext = .; |
92 | *(.init.text) | 94 | *(.init.text) |
93 | __einittext = .; | 95 | __einittext = .; |
96 | } | ||
97 | .init.data : | ||
98 | { | ||
99 | . = ALIGN(16); | ||
94 | *(.init.data) | 100 | *(.init.data) |
101 | } | ||
102 | .init.setup : | ||
103 | { | ||
95 | . = ALIGN(16); | 104 | . = ALIGN(16); |
96 | ___setup_start = .; | 105 | ___setup_start = .; |
97 | *(.init.setup) | 106 | *(.init.setup) |
98 | ___setup_end = .; | 107 | ___setup_end = .; |
99 | ___start___param = .; | 108 | } |
100 | *(__param) | 109 | .initcall.init : |
101 | ___stop___param = .; | 110 | { |
102 | ___initcall_start = .; | 111 | ___initcall_start = .; |
103 | INITCALLS | 112 | INITCALLS |
104 | ___initcall_end = .; | 113 | ___initcall_end = .; |
114 | } | ||
115 | .con_initcall.init : | ||
116 | { | ||
105 | ___con_initcall_start = .; | 117 | ___con_initcall_start = .; |
106 | *(.con_initcall.init) | 118 | *(.con_initcall.init) |
107 | ___con_initcall_end = .; | 119 | ___con_initcall_end = .; |
108 | ___security_initcall_start = .; | 120 | } |
109 | *(.security_initcall.init) | 121 | SECURITY_INIT |
110 | ___security_initcall_end = .; | 122 | .init.ramfs : |
123 | { | ||
111 | . = ALIGN(4); | 124 | . = ALIGN(4); |
112 | ___initramfs_start = .; | 125 | ___initramfs_start = .; |
113 | *(.init.ramfs) | 126 | *(.init.ramfs) |
114 | ___initramfs_end = .; | 127 | ___initramfs_end = .; |
115 | . = ALIGN(4); | ||
116 | } | 128 | } |
117 | 129 | ||
118 | __l1_lma_start = .; | 130 | __l1_lma_start = .; |
119 | 131 | ||
120 | .text_l1 L1_CODE_START : AT(LOADADDR(.init) + SIZEOF(.init)) | 132 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) |
121 | { | 133 | { |
122 | . = ALIGN(4); | 134 | . = ALIGN(4); |
123 | __stext_l1 = .; | 135 | __stext_l1 = .; |