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 f1b059e5a06c..934234f43839 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -316,6 +316,15 @@ void __init setup_arch(char **cmdline_p) | |||
316 | 316 | ||
317 | init_leds(); | 317 | init_leds(); |
318 | 318 | ||
319 | _bfin_swrst = bfin_read_SWRST(); | ||
320 | |||
321 | if (_bfin_swrst & RESET_DOUBLE) | ||
322 | printk(KERN_INFO "Recovering from Double Fault event\n"); | ||
323 | else if (_bfin_swrst & RESET_WDOG) | ||
324 | printk(KERN_INFO "Recovering from Watchdog event\n"); | ||
325 | else if (_bfin_swrst & RESET_SOFTWARE) | ||
326 | printk(KERN_NOTICE "Reset caused by Software reset\n"); | ||
327 | |||
319 | printk(KERN_INFO "Blackfin support (C) 2004-2007 Analog Devices, Inc.\n"); | 328 | printk(KERN_INFO "Blackfin support (C) 2004-2007 Analog Devices, Inc.\n"); |
320 | if (bfin_compiled_revid() == 0xffff) | 329 | if (bfin_compiled_revid() == 0xffff) |
321 | printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); | 330 | printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU); |
@@ -402,8 +411,6 @@ void __init setup_arch(char **cmdline_p) | |||
402 | if (l1_length > L1_DATA_A_LENGTH) | 411 | if (l1_length > L1_DATA_A_LENGTH) |
403 | panic("L1 data memory overflow\n"); | 412 | panic("L1 data memory overflow\n"); |
404 | 413 | ||
405 | _bfin_swrst = bfin_read_SWRST(); | ||
406 | |||
407 | /* Copy atomic sequences to their fixed location, and sanity check that | 414 | /* Copy atomic sequences to their fixed location, and sanity check that |
408 | these locations are the ones that we advertise to userspace. */ | 415 | these locations are the ones that we advertise to userspace. */ |
409 | memcpy((void *)FIXED_CODE_START, &fixed_code_start, | 416 | memcpy((void *)FIXED_CODE_START, &fixed_code_start, |
@@ -424,6 +431,8 @@ void __init setup_arch(char **cmdline_p) | |||
424 | != ATOMIC_AND32 - FIXED_CODE_START); | 431 | != ATOMIC_AND32 - FIXED_CODE_START); |
425 | BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start | 432 | BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start |
426 | != ATOMIC_XOR32 - FIXED_CODE_START); | 433 | != ATOMIC_XOR32 - FIXED_CODE_START); |
434 | BUG_ON((char *)&safe_user_instruction - (char *)&fixed_code_start | ||
435 | != SAFE_USER_INSTRUCTION - FIXED_CODE_START); | ||
427 | 436 | ||
428 | init_exception_vectors(); | 437 | init_exception_vectors(); |
429 | bf53x_cache_init(); | 438 | bf53x_cache_init(); |