From 2a00f9f519245dc41bc194224ff2841fa05da901 Mon Sep 17 00:00:00 2001 From: Michael Hennerich Date: Thu, 9 Oct 2008 12:31:03 +0800 Subject: [PATCH] --- yaml --- r: 113758 b: refs/heads/master c: 5e9e7687cbc016ac36b6825f79d78213319331d9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/blackfin/mach-common/entry.S | 18 ++++++++++++++++++ trunk/arch/blackfin/mach-common/interrupt.S | 2 +- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index df009d706612..075311f482b0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 49f7253cc9a5002c3f2aef4ab96df62204ac7052 +refs/heads/master: 5e9e7687cbc016ac36b6825f79d78213319331d9 diff --git a/trunk/arch/blackfin/mach-common/entry.S b/trunk/arch/blackfin/mach-common/entry.S index 5a219b228de3..76c42d3b5e85 100644 --- a/trunk/arch/blackfin/mach-common/entry.S +++ b/trunk/arch/blackfin/mach-common/entry.S @@ -484,6 +484,15 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ [--sp] = ASTAT; [--sp] = (R7:6,P5:4); +#if ANOMALY_05000283 || ANOMALY_05000315 + cc = r7 == r7; + p5.h = HI(CHIPID); + p5.l = LO(CHIPID); + if cc jump 1f; + r7.l = W[p5]; +1: +#endif + #ifdef CONFIG_DEBUG_DOUBLEFAULT /* * Save these registers, as they are only valid in exception context @@ -1020,6 +1029,15 @@ ENTRY(_early_trap) SAVE_ALL_SYS trace_buffer_stop(p0,r0); +#if ANOMALY_05000283 || ANOMALY_05000315 + cc = r5 == r5; + p4.h = HI(CHIPID); + p4.l = LO(CHIPID); + if cc jump 1f; + r5.l = W[p4]; +1: +#endif + /* Turn caches off, to ensure we don't get double exceptions */ P4.L = LO(IMEM_CONTROL); diff --git a/trunk/arch/blackfin/mach-common/interrupt.S b/trunk/arch/blackfin/mach-common/interrupt.S index b27e59d32401..647f0f522910 100644 --- a/trunk/arch/blackfin/mach-common/interrupt.S +++ b/trunk/arch/blackfin/mach-common/interrupt.S @@ -143,7 +143,7 @@ ENTRY(_evt_ivhw) fp = 0; #endif -#if ANOMALY_05000283 +#if ANOMALY_05000283 || ANOMALY_05000315 cc = r7 == r7; p5.h = HI(CHIPID); p5.l = LO(CHIPID);