diff options
Diffstat (limited to 'arch/blackfin/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/blackfin/kernel/vmlinux.lds.S | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index cb01a9de2680..3ecc64cab3be 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -56,6 +56,10 @@ SECTIONS | |||
56 | *(.text.*) | 56 | *(.text.*) |
57 | *(.fixup) | 57 | *(.fixup) |
58 | 58 | ||
59 | #if !L1_CODE_LENGTH | ||
60 | *(.l1.text) | ||
61 | #endif | ||
62 | |||
59 | . = ALIGN(16); | 63 | . = ALIGN(16); |
60 | ___start___ex_table = .; | 64 | ___start___ex_table = .; |
61 | *(__ex_table) | 65 | *(__ex_table) |
@@ -73,6 +77,12 @@ SECTIONS | |||
73 | ___bss_start = .; | 77 | ___bss_start = .; |
74 | *(.bss .bss.*) | 78 | *(.bss .bss.*) |
75 | *(COMMON) | 79 | *(COMMON) |
80 | #if !L1_DATA_A_LENGTH | ||
81 | *(.l1.bss) | ||
82 | #endif | ||
83 | #if !L1_DATA_B_LENGTH | ||
84 | *(.l1.bss.B) | ||
85 | #endif | ||
76 | ___bss_stop = .; | 86 | ___bss_stop = .; |
77 | } | 87 | } |
78 | 88 | ||
@@ -83,6 +93,15 @@ SECTIONS | |||
83 | . = ALIGN(32); | 93 | . = ALIGN(32); |
84 | *(.data.cacheline_aligned) | 94 | *(.data.cacheline_aligned) |
85 | 95 | ||
96 | #if !L1_DATA_A_LENGTH | ||
97 | . = ALIGN(32); | ||
98 | *(.data_l1.cacheline_aligned) | ||
99 | *(.l1.data) | ||
100 | #endif | ||
101 | #if !L1_DATA_B_LENGTH | ||
102 | *(.l1.data.B) | ||
103 | #endif | ||
104 | |||
86 | DATA_DATA | 105 | DATA_DATA |
87 | *(.data.*) | 106 | *(.data.*) |
88 | CONSTRUCTORS | 107 | CONSTRUCTORS |
@@ -147,64 +166,43 @@ SECTIONS | |||
147 | 166 | ||
148 | __l1_lma_start = .; | 167 | __l1_lma_start = .; |
149 | 168 | ||
150 | #if L1_CODE_LENGTH | ||
151 | # define LDS_L1_CODE *(.l1.text) | ||
152 | #else | ||
153 | # define LDS_L1_CODE | ||
154 | #endif | ||
155 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) | 169 | .text_l1 L1_CODE_START : AT(LOADADDR(.init.ramfs) + SIZEOF(.init.ramfs)) |
156 | { | 170 | { |
157 | . = ALIGN(4); | 171 | . = ALIGN(4); |
158 | __stext_l1 = .; | 172 | __stext_l1 = .; |
159 | LDS_L1_CODE | 173 | *(.l1.text) |
160 | . = ALIGN(4); | 174 | . = ALIGN(4); |
161 | __etext_l1 = .; | 175 | __etext_l1 = .; |
162 | } | 176 | } |
163 | 177 | ||
164 | #if L1_DATA_A_LENGTH | ||
165 | # define LDS_L1_A_DATA *(.l1.data) | ||
166 | # define LDS_L1_A_BSS *(.l1.bss) | ||
167 | # define LDS_L1_A_CACHE *(.data_l1.cacheline_aligned) | ||
168 | #else | ||
169 | # define LDS_L1_A_DATA | ||
170 | # define LDS_L1_A_BSS | ||
171 | # define LDS_L1_A_CACHE | ||
172 | #endif | ||
173 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) | 178 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) |
174 | { | 179 | { |
175 | . = ALIGN(4); | 180 | . = ALIGN(4); |
176 | __sdata_l1 = .; | 181 | __sdata_l1 = .; |
177 | LDS_L1_A_DATA | 182 | *(.l1.data) |
178 | __edata_l1 = .; | 183 | __edata_l1 = .; |
179 | 184 | ||
180 | . = ALIGN(4); | 185 | . = ALIGN(4); |
181 | __sbss_l1 = .; | 186 | __sbss_l1 = .; |
182 | LDS_L1_A_BSS | 187 | *(.l1.bss) |
183 | 188 | ||
184 | . = ALIGN(32); | 189 | . = ALIGN(32); |
185 | LDS_L1_A_CACHE | 190 | *(.data_l1.cacheline_aligned) |
186 | 191 | ||
187 | . = ALIGN(4); | 192 | . = ALIGN(4); |
188 | __ebss_l1 = .; | 193 | __ebss_l1 = .; |
189 | } | 194 | } |
190 | 195 | ||
191 | #if L1_DATA_B_LENGTH | ||
192 | # define LDS_L1_B_DATA *(.l1.data.B) | ||
193 | # define LDS_L1_B_BSS *(.l1.bss.B) | ||
194 | #else | ||
195 | # define LDS_L1_B_DATA | ||
196 | # define LDS_L1_B_BSS | ||
197 | #endif | ||
198 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) | 196 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) |
199 | { | 197 | { |
200 | . = ALIGN(4); | 198 | . = ALIGN(4); |
201 | __sdata_b_l1 = .; | 199 | __sdata_b_l1 = .; |
202 | LDS_L1_B_DATA | 200 | *(.l1.data.B) |
203 | __edata_b_l1 = .; | 201 | __edata_b_l1 = .; |
204 | 202 | ||
205 | . = ALIGN(4); | 203 | . = ALIGN(4); |
206 | __sbss_b_l1 = .; | 204 | __sbss_b_l1 = .; |
207 | LDS_L1_B_BSS | 205 | *(.l1.bss.B) |
208 | 206 | ||
209 | . = ALIGN(4); | 207 | . = ALIGN(4); |
210 | __ebss_b_l1 = .; | 208 | __ebss_b_l1 = .; |
@@ -223,8 +221,6 @@ SECTIONS | |||
223 | 221 | ||
224 | DWARF_DEBUG | 222 | DWARF_DEBUG |
225 | 223 | ||
226 | NOTES | ||
227 | |||
228 | /DISCARD/ : | 224 | /DISCARD/ : |
229 | { | 225 | { |
230 | EXIT_TEXT | 226 | EXIT_TEXT |