Skip to content

Commit

Permalink
Blackfin arch: Print out doublefault addresses, so debug can occur
Browse files Browse the repository at this point in the history
Signed-off-by: Robin Getz <rgetz@blackfin.uclinux.org>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
  • Loading branch information
Robin Getz authored and Bryan Wu committed Aug 14, 2008
1 parent ee32664 commit cd8fb8d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
7 changes: 6 additions & 1 deletion arch/blackfin/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ EXPORT_SYMBOL(mtd_size);
#endif

char __initdata command_line[COMMAND_LINE_SIZE];
unsigned int __initdata *__retx;

/* boot memmap, for parsing "memmap=" */
#define BFIN_MEMMAP_MAX 128 /* number of entries in bfin_memmap */
Expand Down Expand Up @@ -785,7 +786,11 @@ void __init setup_arch(char **cmdline_p)
bfin_write_SWRST(DOUBLE_FAULT);

if (_bfin_swrst & RESET_DOUBLE)
printk(KERN_INFO "Recovering from Double Fault event\n");
/*
* don't decode the address, since you don't know if this
* kernel's symbol map is the same as the crashing kernel
*/
printk(KERN_INFO "Recovering from Double Fault event at %p\n", __retx);
else if (_bfin_swrst & RESET_WDOG)
printk(KERN_INFO "Recovering from Watchdog event\n");
else if (_bfin_swrst & RESET_SOFTWARE)
Expand Down
6 changes: 6 additions & 0 deletions arch/blackfin/mach-common/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ ENTRY(__start)
[p0] = R0;
SSYNC;

/* Save RETX, in case of doublefault */
p0.l = ___retx;
p0.h = ___retx;
R0 = RETX;
[P0] = R0;

/* Let each Blackfin family do its own thing */
call _mach_early_start;

Expand Down

0 comments on commit cd8fb8d

Please sign in to comment.