summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/arm/shared/arm920/mmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/arm/shared/arm920/mmu.c')
-rw-r--r--c/src/lib/libcpu/arm/shared/arm920/mmu.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/c/src/lib/libcpu/arm/shared/arm920/mmu.c b/c/src/lib/libcpu/arm/shared/arm920/mmu.c
index a2182431cf..0158475e35 100644
--- a/c/src/lib/libcpu/arm/shared/arm920/mmu.c
+++ b/c/src/lib/libcpu/arm/shared/arm920/mmu.c
@@ -151,7 +151,7 @@ static inline uint32_t mmu_get_id(void)
static inline uint32_t mmu_get_ctrl(void)
{
uint32_t val;
- asm volatile ("msr 15, 0, %0, cr1, cr0\n" : "=r" (val));
+ asm volatile ("mrc 15, 0, %0, cr1, cr0\n" : "=r" (val));
return val;
}
@@ -240,3 +240,13 @@ static void mmu_set_map_inval(mmu_lvl1_t *base)
base[i] = MMU_SET_LVL1_INVAL;
}
}
+
+
+void mmu_set_cpu_async_mode(void)
+{
+ uint32_t reg;
+ reg = mmu_get_ctrl();
+ reg |= 0xc0000000;
+ mmu_set_ctrl(reg);
+}
+