Rework handover interface between BL stages
This patch reworks the handover interface from: BL1 to BL2 and
BL2 to BL3-1. It removes the raise_el(), change_el(), drop_el()
and run_image() functions as they catered for code paths that were
never exercised.
BL1 calls bl1_run_bl2() to jump into BL2 instead of doing the same
by calling run_image(). Similarly, BL2 issues the SMC to transfer
execution to BL3-1 through BL1 directly. Only x0 and x1 are used
to pass arguments to BL31. These arguments and parameters for
running BL3-1 are passed through a reference to a
'el_change_info_t' structure. They were being passed value in
general purpose registers earlier.

Change-Id: Id4fd019a19a9595de063766d4a66295a2c9307e1
1 parent 23ff9ba commit 29fb905d5f36a415a170a4bffeadf13b5f084345
@Vikram Kanigiri Vikram Kanigiri authored on 15 May 2014
Showing 8 changed files
View
bl1/aarch64/bl1_exceptions.S
View
bl1/bl1_main.c
View
bl2/aarch64/bl2_entrypoint.S
View
bl2/bl2_main.c
View
bl31/aarch64/bl31_entrypoint.S
View
common/bl_common.c
View
include/common/bl_common.h
View
plat/fvp/bl2_plat_setup.c