diff options
Diffstat (limited to 'arch/blackfin/kernel/setup.c')
-rw-r--r-- | arch/blackfin/kernel/setup.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index d2822010b7ce..462cae893757 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -238,7 +238,13 @@ void __init setup_arch(char **cmdline_p) | |||
238 | memory_end = _ramend - DMA_UNCACHED_REGION; | 238 | memory_end = _ramend - DMA_UNCACHED_REGION; |
239 | 239 | ||
240 | _ramstart = (unsigned long)__bss_stop; | 240 | _ramstart = (unsigned long)__bss_stop; |
241 | _rambase = (unsigned long)_stext; | ||
242 | #ifdef CONFIG_MPU | ||
243 | /* Round up to multiple of 4MB. */ | ||
244 | memory_start = (_ramstart + 0x3fffff) & ~0x3fffff; | ||
245 | #else | ||
241 | memory_start = PAGE_ALIGN(_ramstart); | 246 | memory_start = PAGE_ALIGN(_ramstart); |
247 | #endif | ||
242 | 248 | ||
243 | #if defined(CONFIG_MTD_UCLINUX) | 249 | #if defined(CONFIG_MTD_UCLINUX) |
244 | /* generic memory mapped MTD driver */ | 250 | /* generic memory mapped MTD driver */ |
@@ -307,6 +313,11 @@ void __init setup_arch(char **cmdline_p) | |||
307 | printk(KERN_NOTICE "Warning: limiting memory to %liMB due to hardware anomaly 05000263\n", memory_end >> 20); | 313 | printk(KERN_NOTICE "Warning: limiting memory to %liMB due to hardware anomaly 05000263\n", memory_end >> 20); |
308 | #endif /* ANOMALY_05000263 */ | 314 | #endif /* ANOMALY_05000263 */ |
309 | 315 | ||
316 | #ifdef CONFIG_MPU | ||
317 | page_mask_nelts = ((_ramend >> PAGE_SHIFT) + 31) / 32; | ||
318 | page_mask_order = get_order(3 * page_mask_nelts * sizeof(long)); | ||
319 | #endif | ||
320 | |||
310 | #if !defined(CONFIG_MTD_UCLINUX) | 321 | #if !defined(CONFIG_MTD_UCLINUX) |
311 | memory_end -= SIZE_4K; /*In case there is no valid CPLB behind memory_end make sure we don't get to close*/ | 322 | memory_end -= SIZE_4K; /*In case there is no valid CPLB behind memory_end make sure we don't get to close*/ |
312 | #endif | 323 | #endif |
@@ -315,8 +326,6 @@ void __init setup_arch(char **cmdline_p) | |||
315 | init_mm.end_data = (unsigned long)_edata; | 326 | init_mm.end_data = (unsigned long)_edata; |
316 | init_mm.brk = (unsigned long)0; | 327 | init_mm.brk = (unsigned long)0; |
317 | 328 | ||
318 | init_leds(); | ||
319 | |||
320 | _bfin_swrst = bfin_read_SWRST(); | 329 | _bfin_swrst = bfin_read_SWRST(); |
321 | 330 | ||
322 | if (_bfin_swrst & RESET_DOUBLE) | 331 | if (_bfin_swrst & RESET_DOUBLE) |