Title: [5298] trunk/arch/blackfin: Fix [#4426] - make sure that we clear the EBIU_ERRMST (necessary on BF54x)
- Revision
- 5298
- Author
- rgetz
- Date
- 2008-09-16 12:39:34 -0500 (Tue, 16 Sep 2008)
Log Message
Fix [#4426] - make sure that we clear the EBIU_ERRMST (necessary on BF54x)
Modified Paths
Diff
Modified: trunk/arch/blackfin/kernel/traps.c (5297 => 5298)
--- trunk/arch/blackfin/kernel/traps.c 2008-09-16 11:16:41 UTC (rev 5297)
+++ trunk/arch/blackfin/kernel/traps.c 2008-09-16 17:39:34 UTC (rev 5298)
@@ -1028,8 +1028,19 @@
printk(KERN_NOTICE "\n" KERN_NOTICE "SEQUENCER STATUS:\t\t%s\n", print_tainted());
printk(KERN_NOTICE " SEQSTAT: %08lx IPEND: %04lx SYSCFG: %04lx\n",
(long)fp->seqstat, fp->ipend, fp->syscfg);
- printk(KERN_NOTICE " HWERRCAUSE: 0x%lx\n",
- (fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
+ if ((fp->seqstat & SEQSTAT_EXCAUSE) == VEC_HWERR) {
+ printk(KERN_NOTICE " HWERRCAUSE: 0x%lx\n",
+ (fp->seqstat & SEQSTAT_HWERRCAUSE) >> 14);
+#ifdef EBIU_ERRMST
+ /* If the error was from the EBIU, print it out */
+ if (bfin_read_EBIU_ERRMST() & CORE_ERROR) {
+ printk(KERN_NOTICE " EBIU Error Reason : 0x%04x\n",
+ bfin_read_EBIU_ERRMST());
+ printk(KERN_NOTICE " EBIU Error Address : 0x%08x\n",
+ bfin_read_EBIU_ERRADD());
+ }
+#endif
+ }
printk(KERN_NOTICE " EXCAUSE : 0x%lx\n",
fp->seqstat & SEQSTAT_EXCAUSE);
for (i = 6; i <= 15 ; i++) {
Modified: trunk/arch/blackfin/mach-common/interrupt.S (5297 => 5298)
--- trunk/arch/blackfin/mach-common/interrupt.S 2008-09-16 11:16:41 UTC (rev 5297)
+++ trunk/arch/blackfin/mach-common/interrupt.S 2008-09-16 17:39:34 UTC (rev 5298)
@@ -179,7 +179,16 @@
call _trap_c;
SP += 12;
+#ifdef EBIU_ERRMST
+ /* make sure EBIU_ERRMST is clear */
+ p0.l = LO(EBIU_ERRMST);
+ p0.h = HI(EBIU_ERRMST);
+ r0.l = (CORE_ERROR | CORE_MERROR);
+ w[p0] = r0.l;
+#endif
+
call _ret_from_exception;
+
.Lcommon_restore_all_sys:
RESTORE_ALL_SYS
rti;
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
http://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits