arm-trusted-firmware/bl31
Juan Castillo 5c943f7f4d IMF: postpone SCR_EL3 update if context is not initialized
The set_routing_model() function in the Interrupt Management
Framework calls the context management library to update the
SCR_EL3 register. This context management library assumes that
the context has been previously initialized. Consequently, if
a Secure Payload Dispatcher (SPD) tries to set the routing model
before initializing the context, the system will fail (in debug
mode, an assertion will be raised).

This patch fixes the issue by checking if the context has been
initialized before updating SCR_EL3. If a valid context is not
available, SCR_EL3 update will be done when the SPD calls the
context initialization function. This function will call
get_scr_el3_from_routing_model() to obtain the SCR_EL3 value.
If the SPD does not call the context initialization function
then it is SPD's responsibility to obtain SCR_EL3 from the IMF
and update the context accordingly.

Fixes ARM-software/tf-issues#327

Change-Id: Ic2f1c6e899e578a8db858ec43747c63a8539c16f
2015-11-05 16:36:55 +00:00
..
aarch64 Make generic code work in presence of system caches 2015-09-14 22:09:40 +01:00
bl31.ld.S Fix relocation of __PERCPU_BAKERY_LOCK_SIZE__ 2015-09-25 16:35:10 +01:00
bl31.mk PSCI: Switch to the new PSCI frameworks 2015-08-13 23:47:57 +01:00
bl31_main.c Make generic code work in presence of system caches 2015-09-14 22:09:40 +01:00
context_mgmt.c PSCI: Introduce new platform and CM helper APIs 2015-08-13 16:17:58 +01:00
cpu_data_array.c Rework the crash reporting in BL3-1 to use less stack 2014-07-28 11:03:20 +01:00
interrupt_mgmt.c IMF: postpone SCR_EL3 update if context is not initialized 2015-11-05 16:36:55 +00:00
runtime_svc.c Enable type-checking of arguments passed to printf() et al. 2015-03-06 13:07:43 +00:00