Title: [7887] trunk/arch/blackfin/kernel/traps.c: bug [#5662], workaround ANOMALY_05000310
Revision
7887
Author
bhsong
Date
2009-11-27 04:18:21 -0500 (Fri, 27 Nov 2009)

Log Message

bug [#5662], workaround ANOMALY_05000310

while fetching instruction at the boundary of L1 instruction SRAM, "External Memory Addressing Error" will be triggerred.
This patch ignore the trap directly and don't force any signal to permit the L1 codes continue to execute.
Test shows L1 codes at boundary can continue to work after ANOMALY_05000310 happen and we ignore it.

Modified Paths

Diff

Modified: trunk/arch/blackfin/kernel/traps.c (7886 => 7887)


--- trunk/arch/blackfin/kernel/traps.c	2009-11-27 07:32:25 UTC (rev 7886)
+++ trunk/arch/blackfin/kernel/traps.c	2009-11-27 09:18:21 UTC (rev 7887)
@@ -524,6 +524,12 @@
 			break;
 		/* External Memory Addressing Error */
 		case (SEQSTAT_HWERRCAUSE_EXTERN_ADDR):
+			if (ANOMALY_05000310) {
+				unsigned int erraddr = fp->pc;
+				if ((erraddr >= (L1_CODE_START + L1_CODE_LENGTH - 512)) &&
+						(erraddr < (L1_CODE_START + L1_CODE_LENGTH)))
+					goto traps_done;
+			}
 			info.si_code = BUS_ADRERR;
 			sig = SIGBUS;
 			strerror = KERN_NOTICE HWC_x3(KERN_NOTICE);
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to