diff options
author | Robin Getz <robin.getz@analog.com> | 2009-08-26 11:54:10 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2009-09-16 22:10:34 -0400 |
commit | dedfd5d7f21b08d50ba8c0220778e119952e2f77 (patch) | |
tree | 2d6bf1d13dfe16679c126beed7f35a2f840d22bd /arch/blackfin/mach-common/entry.S | |
parent | 05d17dfaab6671def3fcdcd95c39fd49924dbb3b (diff) |
Blackfin: workaround anomaly 05000283
Make sure our interrupt entry code with exact hardware errors handles
anomaly 05000283 (infinite stall in system MMR kill) so we don't stall
while under load.
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/mach-common/entry.S')
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index a9b15aaf5254..01af24cde362 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -513,14 +513,7 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ | |||
513 | ssync; | 513 | ssync; |
514 | #endif | 514 | #endif |
515 | 515 | ||
516 | #if ANOMALY_05000283 || ANOMALY_05000315 | 516 | ANOMALY_283_315_WORKAROUND(p5, r7) |
517 | cc = r7 == r7; | ||
518 | p5.h = HI(CHIPID); | ||
519 | p5.l = LO(CHIPID); | ||
520 | if cc jump 1f; | ||
521 | r7.l = W[p5]; | ||
522 | 1: | ||
523 | #endif | ||
524 | 517 | ||
525 | #ifdef CONFIG_DEBUG_DOUBLEFAULT | 518 | #ifdef CONFIG_DEBUG_DOUBLEFAULT |
526 | /* | 519 | /* |
@@ -1134,14 +1127,7 @@ ENTRY(_early_trap) | |||
1134 | SAVE_ALL_SYS | 1127 | SAVE_ALL_SYS |
1135 | trace_buffer_stop(p0,r0); | 1128 | trace_buffer_stop(p0,r0); |
1136 | 1129 | ||
1137 | #if ANOMALY_05000283 || ANOMALY_05000315 | 1130 | ANOMALY_283_315_WORKAROUND(p4, r5) |
1138 | cc = r5 == r5; | ||
1139 | p4.h = HI(CHIPID); | ||
1140 | p4.l = LO(CHIPID); | ||
1141 | if cc jump 1f; | ||
1142 | r5.l = W[p4]; | ||
1143 | 1: | ||
1144 | #endif | ||
1145 | 1131 | ||
1146 | /* Turn caches off, to ensure we don't get double exceptions */ | 1132 | /* Turn caches off, to ensure we don't get double exceptions */ |
1147 | 1133 | ||