Merge pull request #460 from sandrine-bailleux/sb/init-vttbrel2-vmid
Initialize VTTBR_EL2 when bypassing EL2
This commit is contained in:
commit
e4d3c51ddd
|
@ -330,6 +330,14 @@ void cm_prepare_el3_exit(uint32_t security_state)
|
||||||
/* Set VPIDR, VMPIDR to match MIDR, MPIDR */
|
/* Set VPIDR, VMPIDR to match MIDR, MPIDR */
|
||||||
write_vpidr_el2(read_midr_el1());
|
write_vpidr_el2(read_midr_el1());
|
||||||
write_vmpidr_el2(read_mpidr_el1());
|
write_vmpidr_el2(read_mpidr_el1());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Reset VTTBR_EL2.
|
||||||
|
* Needed because cache maintenance operations depend on
|
||||||
|
* the VMID even when non-secure EL1&0 stage 2 address
|
||||||
|
* translation are disabled.
|
||||||
|
*/
|
||||||
|
write_vttbr_el2(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -270,6 +270,8 @@ DEFINE_SYSREG_RW_FUNCS(ttbr0_el3)
|
||||||
|
|
||||||
DEFINE_SYSREG_RW_FUNCS(ttbr1_el1)
|
DEFINE_SYSREG_RW_FUNCS(ttbr1_el1)
|
||||||
|
|
||||||
|
DEFINE_SYSREG_RW_FUNCS(vttbr_el2)
|
||||||
|
|
||||||
DEFINE_SYSREG_RW_FUNCS(cptr_el2)
|
DEFINE_SYSREG_RW_FUNCS(cptr_el2)
|
||||||
DEFINE_SYSREG_RW_FUNCS(cptr_el3)
|
DEFINE_SYSREG_RW_FUNCS(cptr_el3)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue