]> err.no Git - linux-2.6/blobdiff - arch/arm/boot/compressed/head.S
[ARM] 3541/2: workaround for PXA27x erratum E7
[linux-2.6] / arch / arm / boot / compressed / head.S
index 23016f6aa645f405dcb9108240f1fad80f4ac4b9..9b42b88bfba0d3ad5a71aa38bcd668e59d4620f0 100644 (file)
@@ -448,8 +448,11 @@ __common_mmu_cache_on:
                mov     r1, #-1
                mcr     p15, 0, r3, c2, c0, 0   @ load page table pointer
                mcr     p15, 0, r1, c3, c0, 0   @ load domain access control
-               mcr     p15, 0, r0, c1, c0, 0   @ load control register
-               mov     pc, lr
+               b       1f
+               .align  5                       @ cache line aligned
+1:             mcr     p15, 0, r0, c1, c0, 0   @ load control register
+               mrc     p15, 0, r0, c1, c0, 0   @ and read it back to
+               sub     pc, lr, r0, lsr #32     @ properly flush pipeline
 
 /*
  * All code following this line is relocatable.  It is relocated by