mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00
Introduce functions to disable the MMU in EL1
The implementation is the same as those used to disable it in EL3. Change-Id: Ibfe7e69034a691fbf57477c5a76a8cdca28f6b26 Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
This commit is contained in:
parent
996d6b390d
commit
ec0c8fdacf
2 changed files with 29 additions and 3 deletions
|
@ -171,7 +171,9 @@ void inv_dcache_range(uintptr_t addr, size_t size);
|
|||
void dcsw_op_louis(u_register_t op_type);
|
||||
void dcsw_op_all(u_register_t op_type);
|
||||
|
||||
void disable_mmu_el1(void);
|
||||
void disable_mmu_el3(void);
|
||||
void disable_mmu_icache_el1(void);
|
||||
void disable_mmu_icache_el3(void);
|
||||
|
||||
/*******************************************************************************
|
||||
|
|
|
@ -18,7 +18,9 @@
|
|||
.globl zeromem16
|
||||
.globl memcpy16
|
||||
|
||||
.globl disable_mmu_el1
|
||||
.globl disable_mmu_el3
|
||||
.globl disable_mmu_icache_el1
|
||||
.globl disable_mmu_icache_el3
|
||||
|
||||
#if SUPPORT_VFP
|
||||
|
@ -451,11 +453,11 @@ endfunc memcpy16
|
|||
|
||||
func disable_mmu_el3
|
||||
mov x1, #(SCTLR_M_BIT | SCTLR_C_BIT)
|
||||
do_disable_mmu:
|
||||
do_disable_mmu_el3:
|
||||
mrs x0, sctlr_el3
|
||||
bic x0, x0, x1
|
||||
msr sctlr_el3, x0
|
||||
isb // ensure MMU is off
|
||||
isb /* ensure MMU is off */
|
||||
dsb sy
|
||||
ret
|
||||
endfunc disable_mmu_el3
|
||||
|
@ -463,9 +465,31 @@ endfunc disable_mmu_el3
|
|||
|
||||
func disable_mmu_icache_el3
|
||||
mov x1, #(SCTLR_M_BIT | SCTLR_C_BIT | SCTLR_I_BIT)
|
||||
b do_disable_mmu
|
||||
b do_disable_mmu_el3
|
||||
endfunc disable_mmu_icache_el3
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Disable the MMU at EL1
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
func disable_mmu_el1
|
||||
mov x1, #(SCTLR_M_BIT | SCTLR_C_BIT)
|
||||
do_disable_mmu_el1:
|
||||
mrs x0, sctlr_el1
|
||||
bic x0, x0, x1
|
||||
msr sctlr_el1, x0
|
||||
isb /* ensure MMU is off */
|
||||
dsb sy
|
||||
ret
|
||||
endfunc disable_mmu_el1
|
||||
|
||||
|
||||
func disable_mmu_icache_el1
|
||||
mov x1, #(SCTLR_M_BIT | SCTLR_C_BIT | SCTLR_I_BIT)
|
||||
b do_disable_mmu_el1
|
||||
endfunc disable_mmu_icache_el1
|
||||
|
||||
/* ---------------------------------------------------------------------------
|
||||
* Enable the use of VFP at EL3
|
||||
* ---------------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Reference in a new issue