SPM: Change condition on saving/restoring EL2 registers

Make this more scalable by explicitly checking internal and hardware
states at run_time

Signed-off-by: Ruari Phipps <ruari.phipps@arm.com>
Change-Id: I1c6ed1c1badb3538a93bff3ac5b5189b59cccfa1
This commit is contained in:
Ruari Phipps 2020-07-28 11:26:29 +01:00
parent 572dea8534
commit 6b704da34b
1 changed files with 2 additions and 2 deletions

View File

@ -585,7 +585,7 @@ void cm_el2_sysregs_context_save(uint32_t security_state)
* S-EL2 context if S-EL2 is enabled.
*/
if ((security_state == NON_SECURE) ||
((scr_el3 & SCR_EEL2_BIT) != 0U)) {
((security_state == SECURE) && ((scr_el3 & SCR_EEL2_BIT) != 0U))) {
cpu_context_t *ctx;
ctx = cm_get_context(security_state);
@ -607,7 +607,7 @@ void cm_el2_sysregs_context_restore(uint32_t security_state)
* S-EL2 context if S-EL2 is enabled.
*/
if ((security_state == NON_SECURE) ||
((scr_el3 & SCR_EEL2_BIT) != 0U)) {
((security_state == SECURE) && ((scr_el3 & SCR_EEL2_BIT) != 0U))) {
cpu_context_t *ctx;
ctx = cm_get_context(security_state);