aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mm')
-rw-r--r--arch/arm/mm/proc-v7.S36
1 files changed, 25 insertions, 11 deletions
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index 4f8486475a79..180a08d03a03 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -190,23 +190,37 @@ __v7_setup:
190 stmia r12, {r0-r5, r7, r9, r11, lr} 190 stmia r12, {r0-r5, r7, r9, r11, lr}
191 bl v7_flush_dcache_all 191 bl v7_flush_dcache_all
192 ldmia r12, {r0-r5, r7, r9, r11, lr} 192 ldmia r12, {r0-r5, r7, r9, r11, lr}
193
194 mrc p15, 0, r0, c0, c0, 0 @ read main ID register
195 and r10, r0, #0xff000000 @ ARM?
196 teq r10, #0x41000000
197 bne 2f
198 and r5, r0, #0x00f00000 @ variant
199 and r6, r0, #0x0000000f @ revision
200 orr r0, r6, r5, lsr #20-4 @ combine variant and revision
201
193#ifdef CONFIG_ARM_ERRATA_430973 202#ifdef CONFIG_ARM_ERRATA_430973
194 mrc p15, 0, r10, c1, c0, 1 @ read aux control register 203 teq r5, #0x00100000 @ only present in r1p*
195 orr r10, r10, #(1 << 6) @ set IBE to 1 204 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register
196 mcr p15, 0, r10, c1, c0, 1 @ write aux control register 205 orreq r10, r10, #(1 << 6) @ set IBE to 1
206 mcreq p15, 0, r10, c1, c0, 1 @ write aux control register
197#endif 207#endif
198#ifdef CONFIG_ARM_ERRATA_458693 208#ifdef CONFIG_ARM_ERRATA_458693
199 mrc p15, 0, r10, c1, c0, 1 @ read aux control register 209 teq r0, #0x20 @ only present in r2p0
200 orr r10, r10, #(1 << 5) @ set L1NEON to 1 210 mrceq p15, 0, r10, c1, c0, 1 @ read aux control register
201 orr r10, r10, #(1 << 9) @ set PLDNOP to 1 211 orreq r10, r10, #(1 << 5) @ set L1NEON to 1
202 mcr p15, 0, r10, c1, c0, 1 @ write aux control register 212 orreq r10, r10, #(1 << 9) @ set PLDNOP to 1
213 mcreq p15, 0, r10, c1, c0, 1 @ write aux control register
203#endif 214#endif
204#ifdef CONFIG_ARM_ERRATA_460075 215#ifdef CONFIG_ARM_ERRATA_460075
205 mrc p15, 1, r10, c9, c0, 2 @ read L2 cache aux ctrl register 216 teq r0, #0x20 @ only present in r2p0
206 orr r10, r10, #(1 << 22) @ set the Write Allocate disable bit 217 mrceq p15, 1, r10, c9, c0, 2 @ read L2 cache aux ctrl register
207 mcr p15, 1, r10, c9, c0, 2 @ write the L2 cache aux ctrl register 218 tsteq r10, #1 << 22
219 orreq r10, r10, #(1 << 22) @ set the Write Allocate disable bit
220 mcreq p15, 1, r10, c9, c0, 2 @ write the L2 cache aux ctrl register
208#endif 221#endif
209 mov r10, #0 222
2232: mov r10, #0
210#ifdef HARVARD_CACHE 224#ifdef HARVARD_CACHE
211 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate 225 mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate
212#endif 226#endif