diff options
Diffstat (limited to 'arch/blackfin/kernel/setup.c')
-rw-r--r-- | arch/blackfin/kernel/setup.c | 46 |
1 files changed, 17 insertions, 29 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index c202a44d1416..95448ae9c43a 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -178,10 +178,10 @@ void __init bfin_cache_init(void) | |||
178 | 178 | ||
179 | void __init bfin_relocate_l1_mem(void) | 179 | void __init bfin_relocate_l1_mem(void) |
180 | { | 180 | { |
181 | unsigned long l1_code_length; | 181 | unsigned long text_l1_len = (unsigned long)_text_l1_len; |
182 | unsigned long l1_data_a_length; | 182 | unsigned long data_l1_len = (unsigned long)_data_l1_len; |
183 | unsigned long l1_data_b_length; | 183 | unsigned long data_b_l1_len = (unsigned long)_data_b_l1_len; |
184 | unsigned long l2_length; | 184 | unsigned long l2_len = (unsigned long)_l2_len; |
185 | 185 | ||
186 | early_shadow_stamp(); | 186 | early_shadow_stamp(); |
187 | 187 | ||
@@ -201,30 +201,23 @@ void __init bfin_relocate_l1_mem(void) | |||
201 | 201 | ||
202 | blackfin_dma_early_init(); | 202 | blackfin_dma_early_init(); |
203 | 203 | ||
204 | /* if necessary, copy _stext_l1 to _etext_l1 to L1 instruction SRAM */ | 204 | /* if necessary, copy L1 text to L1 instruction SRAM */ |
205 | l1_code_length = _etext_l1 - _stext_l1; | 205 | if (L1_CODE_LENGTH && text_l1_len) |
206 | if (l1_code_length) | 206 | early_dma_memcpy(_stext_l1, _text_l1_lma, text_l1_len); |
207 | early_dma_memcpy(_stext_l1, _l1_lma_start, l1_code_length); | ||
208 | 207 | ||
209 | /* if necessary, copy _sdata_l1 to _sbss_l1 to L1 data bank A SRAM */ | 208 | /* if necessary, copy L1 data to L1 data bank A SRAM */ |
210 | l1_data_a_length = _sbss_l1 - _sdata_l1; | 209 | if (L1_DATA_A_LENGTH && data_l1_len) |
211 | if (l1_data_a_length) | 210 | early_dma_memcpy(_sdata_l1, _data_l1_lma, data_l1_len); |
212 | early_dma_memcpy(_sdata_l1, _l1_lma_start + l1_code_length, l1_data_a_length); | ||
213 | 211 | ||
214 | /* if necessary, copy _sdata_b_l1 to _sbss_b_l1 to L1 data bank B SRAM */ | 212 | /* if necessary, copy L1 data B to L1 data bank B SRAM */ |
215 | l1_data_b_length = _sbss_b_l1 - _sdata_b_l1; | 213 | if (L1_DATA_B_LENGTH && data_b_l1_len) |
216 | if (l1_data_b_length) | 214 | early_dma_memcpy(_sdata_b_l1, _data_b_l1_lma, data_b_l1_len); |
217 | early_dma_memcpy(_sdata_b_l1, _l1_lma_start + l1_code_length + | ||
218 | l1_data_a_length, l1_data_b_length); | ||
219 | 215 | ||
220 | early_dma_memcpy_done(); | 216 | early_dma_memcpy_done(); |
221 | 217 | ||
222 | /* if necessary, copy _stext_l2 to _edata_l2 to L2 SRAM */ | 218 | /* if necessary, copy L2 text/data to L2 SRAM */ |
223 | if (L2_LENGTH != 0) { | 219 | if (L2_LENGTH && l2_len) |
224 | l2_length = _sbss_l2 - _stext_l2; | 220 | memcpy(_stext_l2, _l2_lma, l2_len); |
225 | if (l2_length) | ||
226 | memcpy(_stext_l2, _l2_lma_start, l2_length); | ||
227 | } | ||
228 | } | 221 | } |
229 | 222 | ||
230 | /* add_memory_region to memmap */ | 223 | /* add_memory_region to memmap */ |
@@ -608,11 +601,6 @@ static __init void memory_setup(void) | |||
608 | page_mask_order = get_order(3 * page_mask_nelts * sizeof(long)); | 601 | page_mask_order = get_order(3 * page_mask_nelts * sizeof(long)); |
609 | #endif | 602 | #endif |
610 | 603 | ||
611 | #if !defined(CONFIG_MTD_UCLINUX) | ||
612 | /*In case there is no valid CPLB behind memory_end make sure we don't get to close*/ | ||
613 | memory_end -= SIZE_4K; | ||
614 | #endif | ||
615 | |||
616 | init_mm.start_code = (unsigned long)_stext; | 604 | init_mm.start_code = (unsigned long)_stext; |
617 | init_mm.end_code = (unsigned long)_etext; | 605 | init_mm.end_code = (unsigned long)_etext; |
618 | init_mm.end_data = (unsigned long)_edata; | 606 | init_mm.end_data = (unsigned long)_edata; |
@@ -917,7 +905,7 @@ void __init setup_arch(char **cmdline_p) | |||
917 | 905 | ||
918 | printk(KERN_INFO "Blackfin support (C) 2004-2009 Analog Devices, Inc.\n"); | 906 | printk(KERN_INFO "Blackfin support (C) 2004-2009 Analog Devices, Inc.\n"); |
919 | if (bfin_compiled_revid() == 0xffff) | 907 | if (bfin_compiled_revid() == 0xffff) |
920 | printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); | 908 | printk(KERN_INFO "Compiled for ADSP-%s Rev any, running on 0.%d\n", CPU, bfin_revid()); |
921 | else if (bfin_compiled_revid() == -1) | 909 | else if (bfin_compiled_revid() == -1) |
922 | printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU); | 910 | printk(KERN_INFO "Compiled for ADSP-%s Rev none\n", CPU); |
923 | else | 911 | else |