aboutsummaryrefslogtreecommitdiff
path: root/bl31
diff options
context:
space:
mode:
authorAchin Gupta <achin.gupta@arm.com>2015-11-10 13:46:00 +0000
committerAchin Gupta <achin.gupta@arm.com>2015-11-10 13:46:00 +0000
commit613b7e5e7e8a80a42b1bc017e7a4638aea25ec00 (patch)
treeadd7ac070d8bb3103d2417820ace620ae4a92539 /bl31
parent4266228306de468dff34609581474f2f43d781fa (diff)
parent5c943f7f4dfa7f264d8a5c5caa37eb045f55a67b (diff)
downloadtrusted-firmware-a-613b7e5e7e8a80a42b1bc017e7a4638aea25ec00.tar.gz
Merge pull request #424 from jcastillo-arm/jc/tf-issues/327
IMF: postpone SCR_EL3 update if context is not initialized
Diffstat (limited to 'bl31')
-rw-r--r--bl31/interrupt_mgmt.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/bl31/interrupt_mgmt.c b/bl31/interrupt_mgmt.c
index 5478902fe6..206578b4dc 100644
--- a/bl31/interrupt_mgmt.c
+++ b/bl31/interrupt_mgmt.c
@@ -129,7 +129,12 @@ static void set_scr_el3_from_rm(uint32_t type,
flag = get_interrupt_rm_flag(interrupt_type_flags, security_state);
bit_pos = plat_interrupt_type_to_line(type, security_state);
intr_type_descs[type].scr_el3[security_state] = flag << bit_pos;
- cm_write_scr_el3_bit(security_state, bit_pos, flag);
+
+ /* Update scr_el3 only if there is a context available. If not, it
+ * will be updated later during context initialization which will obtain
+ * the scr_el3 value to be used via get_scr_el3_from_routing_model() */
+ if (cm_get_context(security_state))
+ cm_write_scr_el3_bit(security_state, bit_pos, flag);
}
/*******************************************************************************