lib: el3_runtime: Fix aarch32 system registers in el2_sysregs_context
AArch64-only platforms do not implement AArch32 at EL1 and higher ELs. In such cases the build option CTX_INCLUDE_AARCH32_REGS is set to 0. So don't save/restore aarch32 system registers in el2_sysregs_context save/restore routines if CTX_INCLUDE_AARCH32_REGS is set to 0. Change-Id: I229cdd46136c4b4bc9623b02eb444d904e09ce5a Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
This commit is contained in:
parent
32269499cc
commit
0f777eabd9
|
@ -65,9 +65,13 @@ func el2_sysregs_context_save
|
||||||
mrs x9, cptr_el2
|
mrs x9, cptr_el2
|
||||||
stp x17, x9, [x0, #CTX_CNTVOFF_EL2]
|
stp x17, x9, [x0, #CTX_CNTVOFF_EL2]
|
||||||
|
|
||||||
mrs x10, dbgvcr32_el2
|
|
||||||
mrs x11, elr_el2
|
mrs x11, elr_el2
|
||||||
|
#if CTX_INCLUDE_AARCH32_REGS
|
||||||
|
mrs x10, dbgvcr32_el2
|
||||||
stp x10, x11, [x0, #CTX_DBGVCR32_EL2]
|
stp x10, x11, [x0, #CTX_DBGVCR32_EL2]
|
||||||
|
#else
|
||||||
|
str x11, [x0, #CTX_ELR_EL2]
|
||||||
|
#endif
|
||||||
|
|
||||||
mrs x14, esr_el2
|
mrs x14, esr_el2
|
||||||
mrs x15, far_el2
|
mrs x15, far_el2
|
||||||
|
@ -185,8 +189,10 @@ func el2_sysregs_context_save
|
||||||
mrs x9, contextidr_el2
|
mrs x9, contextidr_el2
|
||||||
stp x17, x9, [x0, #CTX_CNTHV_TVAL_EL2]
|
stp x17, x9, [x0, #CTX_CNTHV_TVAL_EL2]
|
||||||
|
|
||||||
|
#if CTX_INCLUDE_AARCH32_REGS
|
||||||
mrs x10, sder32_el2
|
mrs x10, sder32_el2
|
||||||
str x10, [x0, #CTX_SDER32_EL2]
|
str x10, [x0, #CTX_SDER32_EL2]
|
||||||
|
#endif
|
||||||
|
|
||||||
mrs x11, ttbr1_el2
|
mrs x11, ttbr1_el2
|
||||||
str x11, [x0, #CTX_TTBR1_EL2]
|
str x11, [x0, #CTX_TTBR1_EL2]
|
||||||
|
@ -255,8 +261,12 @@ func el2_sysregs_context_restore
|
||||||
msr cntvoff_el2, x17
|
msr cntvoff_el2, x17
|
||||||
msr cptr_el2, x9
|
msr cptr_el2, x9
|
||||||
|
|
||||||
|
#if CTX_INCLUDE_AARCH32_REGS
|
||||||
ldp x10, x11, [x0, #CTX_DBGVCR32_EL2]
|
ldp x10, x11, [x0, #CTX_DBGVCR32_EL2]
|
||||||
msr dbgvcr32_el2, x10
|
msr dbgvcr32_el2, x10
|
||||||
|
#else
|
||||||
|
ldr x11, [x0, #CTX_ELR_EL2]
|
||||||
|
#endif
|
||||||
msr elr_el2, x11
|
msr elr_el2, x11
|
||||||
|
|
||||||
ldp x14, x15, [x0, #CTX_ESR_EL2]
|
ldp x14, x15, [x0, #CTX_ESR_EL2]
|
||||||
|
@ -374,8 +384,10 @@ func el2_sysregs_context_restore
|
||||||
msr cnthv_tval_el2, x9
|
msr cnthv_tval_el2, x9
|
||||||
msr contextidr_el2, x10
|
msr contextidr_el2, x10
|
||||||
|
|
||||||
|
#if CTX_INCLUDE_AARCH32_REGS
|
||||||
ldr x11, [x0, #CTX_SDER32_EL2]
|
ldr x11, [x0, #CTX_SDER32_EL2]
|
||||||
msr sder32_el2, x11
|
msr sder32_el2, x11
|
||||||
|
#endif
|
||||||
|
|
||||||
ldr x12, [x0, #CTX_TTBR1_EL2]
|
ldr x12, [x0, #CTX_TTBR1_EL2]
|
||||||
msr ttbr1_el2, x12
|
msr ttbr1_el2, x12
|
||||||
|
|
Loading…
Reference in New Issue