diff options
Diffstat (limited to 'arch/blackfin/kernel/vmlinux.lds.S')
-rw-r--r-- | arch/blackfin/kernel/vmlinux.lds.S | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index 10e12539000e..01682eed771e 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -123,8 +123,6 @@ SECTIONS | |||
123 | EXIT_DATA | 123 | EXIT_DATA |
124 | } | 124 | } |
125 | 125 | ||
126 | __l1_lma_start = .; | ||
127 | |||
128 | .text_l1 L1_CODE_START : AT(LOADADDR(.exit.data) + SIZEOF(.exit.data)) | 126 | .text_l1 L1_CODE_START : AT(LOADADDR(.exit.data) + SIZEOF(.exit.data)) |
129 | { | 127 | { |
130 | . = ALIGN(4); | 128 | . = ALIGN(4); |
@@ -136,9 +134,11 @@ SECTIONS | |||
136 | . = ALIGN(4); | 134 | . = ALIGN(4); |
137 | __etext_l1 = .; | 135 | __etext_l1 = .; |
138 | } | 136 | } |
139 | ASSERT (SIZEOF(.text_l1) <= L1_CODE_LENGTH, "L1 text overflow!") | 137 | __text_l1_lma = LOADADDR(.text_l1); |
138 | __text_l1_len = SIZEOF(.text_l1); | ||
139 | ASSERT (__text_l1_len <= L1_CODE_LENGTH, "L1 text overflow!") | ||
140 | 140 | ||
141 | .data_l1 L1_DATA_A_START : AT(LOADADDR(.text_l1) + SIZEOF(.text_l1)) | 141 | .data_l1 L1_DATA_A_START : AT(__text_l1_lma + __text_l1_len) |
142 | { | 142 | { |
143 | . = ALIGN(4); | 143 | . = ALIGN(4); |
144 | __sdata_l1 = .; | 144 | __sdata_l1 = .; |
@@ -154,9 +154,11 @@ SECTIONS | |||
154 | . = ALIGN(4); | 154 | . = ALIGN(4); |
155 | __ebss_l1 = .; | 155 | __ebss_l1 = .; |
156 | } | 156 | } |
157 | ASSERT (SIZEOF(.data_l1) <= L1_DATA_A_LENGTH, "L1 data A overflow!") | 157 | __data_l1_lma = LOADADDR(.data_l1); |
158 | __data_l1_len = SIZEOF(.data_l1); | ||
159 | ASSERT (__data_l1_len <= L1_DATA_A_LENGTH, "L1 data A overflow!") | ||
158 | 160 | ||
159 | .data_b_l1 L1_DATA_B_START : AT(LOADADDR(.data_l1) + SIZEOF(.data_l1)) | 161 | .data_b_l1 L1_DATA_B_START : AT(__data_l1_lma + __data_l1_len) |
160 | { | 162 | { |
161 | . = ALIGN(4); | 163 | . = ALIGN(4); |
162 | __sdata_b_l1 = .; | 164 | __sdata_b_l1 = .; |
@@ -169,11 +171,11 @@ SECTIONS | |||
169 | . = ALIGN(4); | 171 | . = ALIGN(4); |
170 | __ebss_b_l1 = .; | 172 | __ebss_b_l1 = .; |
171 | } | 173 | } |
172 | ASSERT (SIZEOF(.data_b_l1) <= L1_DATA_B_LENGTH, "L1 data B overflow!") | 174 | __data_b_l1_lma = LOADADDR(.data_b_l1); |
173 | 175 | __data_b_l1_len = SIZEOF(.data_b_l1); | |
174 | __l2_lma_start = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1); | 176 | ASSERT (__data_b_l1_len <= L1_DATA_B_LENGTH, "L1 data B overflow!") |
175 | 177 | ||
176 | .text_data_l2 L2_START : AT(LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1)) | 178 | .text_data_l2 L2_START : AT(__data_b_l1_lma + __data_b_l1_len) |
177 | { | 179 | { |
178 | . = ALIGN(4); | 180 | . = ALIGN(4); |
179 | __stext_l2 = .; | 181 | __stext_l2 = .; |
@@ -195,12 +197,14 @@ SECTIONS | |||
195 | . = ALIGN(4); | 197 | . = ALIGN(4); |
196 | __ebss_l2 = .; | 198 | __ebss_l2 = .; |
197 | } | 199 | } |
198 | ASSERT (SIZEOF(.text_data_l2) <= L2_LENGTH, "L2 overflow!") | 200 | __l2_lma = LOADADDR(.text_data_l2); |
201 | __l2_len = SIZEOF(.text_data_l2); | ||
202 | ASSERT (__l2_len <= L2_LENGTH, "L2 overflow!") | ||
199 | 203 | ||
200 | /* Force trailing alignment of our init section so that when we | 204 | /* Force trailing alignment of our init section so that when we |
201 | * free our init memory, we don't leave behind a partial page. | 205 | * free our init memory, we don't leave behind a partial page. |
202 | */ | 206 | */ |
203 | . = LOADADDR(.text_data_l2) + SIZEOF(.text_data_l2); | 207 | . = __l2_lma + __l2_len; |
204 | . = ALIGN(PAGE_SIZE); | 208 | . = ALIGN(PAGE_SIZE); |
205 | ___init_end = .; | 209 | ___init_end = .; |
206 | 210 | ||