|
@@ -103,13 +103,14 @@ ENTRY(cpu_v6_switch_mm)
|
|
|
mov pc, lr
|
|
|
|
|
|
/*
|
|
|
- * cpu_v6_set_pte(ptep, pte)
|
|
|
+ * cpu_v6_set_pte_ext(ptep, pte, ext)
|
|
|
*
|
|
|
* Set a level 2 translation table entry.
|
|
|
*
|
|
|
* - ptep - pointer to level 2 translation table entry
|
|
|
* (hardware version is stored at -1024 bytes)
|
|
|
* - pte - PTE value to store
|
|
|
+ * - ext - value for extended PTE bits
|
|
|
*
|
|
|
* Permissions:
|
|
|
* YUWD APX AP1 AP0 SVC User
|
|
@@ -121,33 +122,34 @@ ENTRY(cpu_v6_switch_mm)
|
|
|
* 11x0 0 1 0 r/w r/o
|
|
|
* 1111 0 1 1 r/w r/w
|
|
|
*/
|
|
|
-ENTRY(cpu_v6_set_pte)
|
|
|
+ENTRY(cpu_v6_set_pte_ext)
|
|
|
#ifdef CONFIG_MMU
|
|
|
str r1, [r0], #-2048 @ linux version
|
|
|
|
|
|
- bic r2, r1, #0x000003f0
|
|
|
- bic r2, r2, #0x00000003
|
|
|
- orr r2, r2, #PTE_EXT_AP0 | 2
|
|
|
+ bic r3, r1, #0x000003f0
|
|
|
+ bic r3, r3, #0x00000003
|
|
|
+ orr r3, r3, r2
|
|
|
+ orr r3, r3, #PTE_EXT_AP0 | 2
|
|
|
|
|
|
tst r1, #L_PTE_WRITE
|
|
|
tstne r1, #L_PTE_DIRTY
|
|
|
- orreq r2, r2, #PTE_EXT_APX
|
|
|
+ orreq r3, r3, #PTE_EXT_APX
|
|
|
|
|
|
tst r1, #L_PTE_USER
|
|
|
- orrne r2, r2, #PTE_EXT_AP1
|
|
|
- tstne r2, #PTE_EXT_APX
|
|
|
- bicne r2, r2, #PTE_EXT_APX | PTE_EXT_AP0
|
|
|
+ orrne r3, r3, #PTE_EXT_AP1
|
|
|
+ tstne r3, #PTE_EXT_APX
|
|
|
+ bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
|
|
|
|
|
|
tst r1, #L_PTE_YOUNG
|
|
|
- biceq r2, r2, #PTE_EXT_APX | PTE_EXT_AP_MASK
|
|
|
+ biceq r3, r3, #PTE_EXT_APX | PTE_EXT_AP_MASK
|
|
|
|
|
|
tst r1, #L_PTE_EXEC
|
|
|
- orreq r2, r2, #PTE_EXT_XN
|
|
|
+ orreq r3, r3, #PTE_EXT_XN
|
|
|
|
|
|
tst r1, #L_PTE_PRESENT
|
|
|
- moveq r2, #0
|
|
|
+ moveq r3, #0
|
|
|
|
|
|
- str r2, [r0]
|
|
|
+ str r3, [r0]
|
|
|
mcr p15, 0, r0, c7, c10, 1 @ flush_pte
|
|
|
#endif
|
|
|
mov pc, lr
|
|
@@ -233,7 +235,7 @@ ENTRY(v6_processor_functions)
|
|
|
.word cpu_v6_do_idle
|
|
|
.word cpu_v6_dcache_clean_area
|
|
|
.word cpu_v6_switch_mm
|
|
|
- .word cpu_v6_set_pte
|
|
|
+ .word cpu_v6_set_pte_ext
|
|
|
.size v6_processor_functions, . - v6_processor_functions
|
|
|
|
|
|
.type cpu_arch_name, #object
|