|
@@ -173,15 +173,22 @@ ENTRY(v7_coherent_user_range)
|
|
|
UNWIND(.fnstart )
|
|
|
dcache_line_size r2, r3
|
|
|
sub r3, r2, #1
|
|
|
- bic r0, r0, r3
|
|
|
+ bic r12, r0, r3
|
|
|
1:
|
|
|
- USER( mcr p15, 0, r0, c7, c11, 1 ) @ clean D line to the point of unification
|
|
|
+ USER( mcr p15, 0, r12, c7, c11, 1 ) @ clean D line to the point of unification
|
|
|
+ add r12, r12, r2
|
|
|
+ cmp r12, r1
|
|
|
+ blo 1b
|
|
|
dsb
|
|
|
- USER( mcr p15, 0, r0, c7, c5, 1 ) @ invalidate I line
|
|
|
- add r0, r0, r2
|
|
|
+ icache_line_size r2, r3
|
|
|
+ sub r3, r2, #1
|
|
|
+ bic r12, r0, r3
|
|
|
2:
|
|
|
- cmp r0, r1
|
|
|
- blo 1b
|
|
|
+ USER( mcr p15, 0, r12, c7, c5, 1 ) @ invalidate I line
|
|
|
+ add r12, r12, r2
|
|
|
+ cmp r12, r1
|
|
|
+ blo 2b
|
|
|
+3:
|
|
|
mov r0, #0
|
|
|
ALT_SMP(mcr p15, 0, r0, c7, c1, 6) @ invalidate BTB Inner Shareable
|
|
|
ALT_UP(mcr p15, 0, r0, c7, c5, 6) @ invalidate BTB
|
|
@@ -194,10 +201,10 @@ ENTRY(v7_coherent_user_range)
|
|
|
* isn't mapped, just try the next page.
|
|
|
*/
|
|
|
9001:
|
|
|
- mov r0, r0, lsr #12
|
|
|
- mov r0, r0, lsl #12
|
|
|
- add r0, r0, #4096
|
|
|
- b 2b
|
|
|
+ mov r12, r12, lsr #12
|
|
|
+ mov r12, r12, lsl #12
|
|
|
+ add r12, r12, #4096
|
|
|
+ b 3b
|
|
|
UNWIND(.fnend )
|
|
|
ENDPROC(v7_coherent_kern_range)
|
|
|
ENDPROC(v7_coherent_user_range)
|