]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/mm/proc-v7.S
Merge branches 'debug-choice', 'devel-stable' and 'misc' into for-linus
[karo-tx-linux.git] / arch / arm / mm / proc-v7.S
index 73398bcf9bd8ea8d7293803828cb837306742fb7..c63d9bdee51e65cab7bbad13632207702db41273 100644 (file)
@@ -83,7 +83,7 @@ ENTRY(cpu_v7_dcache_clean_area)
        add     r0, r0, r2
        subs    r1, r1, r2
        bhi     2b
-       dsb
+       dsb     ishst
        mov     pc, lr
 ENDPROC(cpu_v7_dcache_clean_area)
 
@@ -330,7 +330,19 @@ __v7_setup:
 1:
 #endif
 
-3:     mov     r10, #0
+       /* Cortex-A15 Errata */
+3:     ldr     r10, =0x00000c0f                @ Cortex-A15 primary part number
+       teq     r0, r10
+       bne     4f
+
+#ifdef CONFIG_ARM_ERRATA_773022
+       cmp     r6, #0x4                        @ only present up to r0p4
+       mrcle   p15, 0, r10, c1, c0, 1          @ read aux control register
+       orrle   r10, r10, #1 << 1               @ disable loop buffer
+       mcrle   p15, 0, r10, c1, c0, 1          @ write aux control register
+#endif
+
+4:     mov     r10, #0
        mcr     p15, 0, r10, c7, c5, 0          @ I+BTB cache invalidate
        dsb
 #ifdef CONFIG_MMU