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