From f32393b222d89048be978e31c2ae3f8b8eac6612 Mon Sep 17 00:00:00 2001 From: Joonyoung Shim Date: Wed, 20 Jan 2010 18:40:07 +0900 Subject: [PATCH] s5p6442: Workaround fix EVT1 imprecise abort error Signed-off-by: Joonyoung Shim --- cpu/arm1176/start.S | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/cpu/arm1176/start.S b/cpu/arm1176/start.S index 4c85c3f..adb37bd 100644 --- a/cpu/arm1176/start.S +++ b/cpu/arm1176/start.S @@ -129,6 +129,25 @@ _bss_end: */ reset: +#ifdef CONFIG_S5P6442_EVT1 + ldr r0, =0xD0021800 + mcr p15, 0, r0, c12, c0, 0 @;Change Exception Vector Base Address + + mrs r0, cpsr + bic r0, r0, #0x100 + msr cpsr_x, r0 @;Enable Imprecise Abort Exception + + nop @;Data Abort Exception will occurred + nop + + mrs r0, cpsr @;Disable Imprecise Abort Exception + orr r0, r0, #0x100 + msr cpsr_x, r0 + + ldr r0, =0x0 + mcr p15, 0, r0, c12, c0, 0 @;Restore Exception Vector Base Address +#endif + /* * set the cpu to SVC32 mode */ @@ -449,6 +468,9 @@ prefetch_abort: .align 5 data_abort: +#ifdef CONFIG_S5P6442_EVT1 + subs pc, lr, #4 +#endif get_bad_stack bad_save_user_regs bl do_data_abort -- 2.7.4