aboutsummaryrefslogtreecommitdiff
path: root/arch/blackfin/kernel/setup.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-30 08:39:20 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-30 08:39:20 -0700
commitfb7267acfef1de3e49d4e0c80be3cc603e974b3b (patch)
tree555f4c02309c08f3dd0d918aaf0c7c374f1ad70a /arch/blackfin/kernel/setup.c
parent2d175d438f297bcd75a7b88baf3a304137047af6 (diff)
parent2ea4649b3634b9dbd098d0d8be65304eb2ea3a9c (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: Blackfin arch: use a less common define name in BF549 Blackfin arch: Add missing definitions for BF561 Blackfin arch: reclaim a few bytes from the end of our init section Blackfin arch: fix libata data struct member from irq_type to irq_flags Blackfin arch: Do not pollute name space used in linux-2.6.x/sound Blackfin arch: Fix bug set correct baud for spi mmc and enable SPI after DMA. Blackfin arch: update board defconfig files according to latest information from ADI datasheet Blackfin arch: ensure that speculative loads of bad pointers don't cause us to do bad things. Blackfin arch: Add missing definitions of BF54x Blackfin arch: Fix random crash issue found by Michael. Blackfin arch: fix bug: tell users if the kernel is recovering from a fault condition Blackfin arch: add support for checking/clearing overruns in generic purpose Timer API Blackfin arch: cleanup arch/blackfin/kernel/traps.c handling code. Blackfin arch: Apply Bluetchnix vendor patch provided by Harald Krapfenbauer Blackfin arch: fix bug BlueTechnix CM-BF537 board config uses wrong IRQ for net2272 driver Blackfin arch: fix bug: kernel prints out error message twice Blackfin arch: add NFC driver support in BF527-EZKIT board Blackfin arch: Added support for HV Sistemas H8606 board
Diffstat (limited to 'arch/blackfin/kernel/setup.c')
-rw-r--r--arch/blackfin/kernel/setup.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c
index f1b059e5a06..934234f4383 100644
--- a/arch/blackfin/kernel/setup.c
+++ b/arch/blackfin/kernel/setup.c
@@ -316,6 +316,15 @@ void __init setup_arch(char **cmdline_p)
init_leds();
+ _bfin_swrst = bfin_read_SWRST();
+
+ if (_bfin_swrst & RESET_DOUBLE)
+ printk(KERN_INFO "Recovering from Double Fault event\n");
+ else if (_bfin_swrst & RESET_WDOG)
+ printk(KERN_INFO "Recovering from Watchdog event\n");
+ else if (_bfin_swrst & RESET_SOFTWARE)
+ printk(KERN_NOTICE "Reset caused by Software reset\n");
+
printk(KERN_INFO "Blackfin support (C) 2004-2007 Analog Devices, Inc.\n");
if (bfin_compiled_revid() == 0xffff)
printk(KERN_INFO "Compiled for ADSP-%s Rev any\n", CPU);
@@ -402,8 +411,6 @@ void __init setup_arch(char **cmdline_p)
if (l1_length > L1_DATA_A_LENGTH)
panic("L1 data memory overflow\n");
- _bfin_swrst = bfin_read_SWRST();
-
/* Copy atomic sequences to their fixed location, and sanity check that
these locations are the ones that we advertise to userspace. */
memcpy((void *)FIXED_CODE_START, &fixed_code_start,
@@ -424,6 +431,8 @@ void __init setup_arch(char **cmdline_p)
!= ATOMIC_AND32 - FIXED_CODE_START);
BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start
!= ATOMIC_XOR32 - FIXED_CODE_START);
+ BUG_ON((char *)&safe_user_instruction - (char *)&fixed_code_start
+ != SAFE_USER_INSTRUCTION - FIXED_CODE_START);
init_exception_vectors();
bf53x_cache_init();