diff options
authorMarc Kleine-Budde <>2009-12-07 12:40:11 +0100
committerMarc Kleine-Budde <>2009-12-09 18:08:09 +0100
commit44b677b31c3b993ad1191f8e80c74b6b39fb7158 (patch)
parent6dc5be9a1679adcd95f1d3c091b528b3cf9f5ba8 (diff)
start-arm: disable I-cache
<HACK> For some yet unknown reason the processor on the i.MX35 3stack board (at least on our board) has problem with an activated instruction cache and booting from NAND: The copy-from-NFC-RAM-to-SDRAM routine doesn't loop. It looks basically like this: 1: ldmia stmia cmp ble 1b If the "cmp" instruction lives on address 0xbb000640 it doesn't work with an activated i-cache. The processor flags are not properly updated. So the ble won't jump back. This obviously break booting from nand. This is why this patch disables the i-cache. </HACK> Signed-off-by: Marc Kleine-Budde <>
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/cpu/start-arm.S b/arch/arm/cpu/start-arm.S
index 8ad03e4..d683c24 100644
--- a/arch/arm/cpu/start-arm.S
+++ b/arch/arm/cpu/start-arm.S
@@ -198,7 +198,7 @@ finished_inval:
bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */
bic r0, r0, #0x00000087 /* clear bits 7, 2:0 (B--- -CAM) */
orr r0, r0, #0x00000002 /* set bit 2 (A) Align */
- orr r0, r0, #0x00001000 /* set bit 12 (I) I-Cache */
+ bic r0, r0, #0x00001000 /* clear bit 12 (I) I-Cache */
mcr p15, 0, r0, c1, c0, 0