diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c index 5a09829..561dbab 100644 --- a/bl31/bl31_main.c +++ b/bl31/bl31_main.c @@ -169,9 +169,15 @@ assert(next_image_info); scr = read_scr(); + scr &= ~SCR_NS_BIT; if (image_type == NON_SECURE) scr |= SCR_NS_BIT; + scr &= ~SCR_RW_BIT; + if ((next_image_info->spsr & (1 << MODE_RW_SHIFT)) == + (MODE_RW_64 << MODE_RW_SHIFT)) + scr |= SCR_RW_BIT; + /* * Tell the context mgmt. library to ensure that SP_EL3 points to * the right context to exit from EL3 correctly.