diff options
author | Robin Getz <robin.getz@analog.com> | 2007-10-10 17:28:27 +0800 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-10-10 17:28:27 +0800 |
commit | b3f8b9276314f4942ef9033aa5f4dc184901d640 (patch) | |
tree | 98c6848363f8a480759116f9cb50f2060d1e6601 /arch/blackfin | |
parent | b76f98761acc909c20c1e65c8af11dc1decae935 (diff) |
Blackfin arch: the load address is not safe to point to as a workaround for ANOMALY 05000281
Now that we have moved head.S into the init section, the load
address is not safe to point to as a workaround for ANOMALY 05000281
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index a56b231d94ce..e3ad5802868a 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S @@ -52,6 +52,15 @@ # define EX_SCRATCH_REG CYCLES #endif +#if ANOMALY_05000281 +ENTRY(_safe_speculative_execution) + NOP; + NOP; + NOP; + jump _safe_speculative_execution; +ENDPROC(_safe_speculative_execution) +#endif + #ifdef CONFIG_EXCPT_IRQ_SYSC_L1 .section .l1.text #else @@ -685,8 +694,8 @@ ENTRY(_return_from_int) [p0] = p1; csync; #if ANOMALY_05000281 - r0.l = lo(CONFIG_BOOT_LOAD); - r0.h = hi(CONFIG_BOOT_LOAD); + r0.l = _safe_speculative_execution; + r0.h = _safe_speculative_execution; reti = r0; #endif r0 = 0x801f (z); @@ -699,8 +708,8 @@ ENDPROC(_return_from_int) ENTRY(_lower_to_irq14) #if ANOMALY_05000281 - r0.l = lo(CONFIG_BOOT_LOAD); - r0.h = hi(CONFIG_BOOT_LOAD); + r0.l = _safe_speculative_execution; + r0.h = _safe_speculative_execution; reti = r0; #endif r0 = 0x401f; |