arm-trusted-firmware/bl31
Sandrine Bailleux 52010cc779 Rationalize reset handling code
The attempt to run the CPU reset code as soon as possible after reset
results in highly complex conditional code relating to the
RESET_TO_BL31 option.

This patch relaxes this requirement a little. In the BL1, BL3-1 and
PSCI entrypoints code, the sequence of operations is now as follows:
 1) Detect whether it is a cold or warm boot;
 2) For cold boot, detect whether it is the primary or a secondary
    CPU. This is needed to handle multiple CPUs entering cold reset
    simultaneously;
 3) Run the CPU init code.

This patch also abstracts the EL3 registers initialisation done by
the BL1, BL3-1 and PSCI entrypoints into common code.

This improves code re-use and consolidates the code flows for
different types of systems.

NOTE: THE FUNCTION plat_secondary_cold_boot() IS NOW EXPECTED TO
NEVER RETURN. THIS PATCH FORCES PLATFORM PORTS THAT RELIED ON THE
FORMER RETRY LOOP AT THE CALL SITE TO MODIFY THEIR IMPLEMENTATION.
OTHERWISE, SECONDARY CPUS WILL PANIC.

Change-Id: If5ecd74d75bee700b1bd718d23d7556b8f863546
2015-06-04 11:38:54 +01:00
..
aarch64 Rationalize reset handling code 2015-06-04 11:38:54 +01:00
bl31.ld.S Remove coherent memory from the BL memory maps 2015-01-22 10:57:44 +00:00
bl31.mk Move bakery algorithm implementation out of coherent memory 2015-01-22 10:57:44 +00:00
bl31_main.c Rationalize console log output 2014-08-12 16:51:18 +01:00
context_mgmt.c Merge pull request #206 from soby-mathew/sm/reset_cntvoff 2014-10-10 12:13:48 +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 Demonstrate model for routing IRQs to EL3 2015-01-26 15:29:32 +00:00
runtime_svc.c Enable type-checking of arguments passed to printf() et al. 2015-03-06 13:07:43 +00:00