arm-trusted-firmware/plat
Yatharth Kochar 07570d592e Changes to support execution in AArch32 state for JUNO
Following steps are required to boot JUNO in AArch32 state:
1> BL1, in AArch64 state, loads BL2.
2> BL2, in AArch64 state, initializes DDR.
  Loads SP_MIN & BL33 (AArch32 executable)images.
  Calls RUN_IMAGE SMC to go back to BL1.
3> BL1 writes AArch32 executable opcodes, to load and branch
  at the entrypoint address of SP_MIN, at HI-VECTOR address and
  then request for warm reset in AArch32 state using RMR_EL3.

This patch makes following changes to facilitate above steps:
* Added assembly function to carry out step 3 above.
* Added region in TZC that enables Secure access to the
  HI-VECTOR(0xFFFF0000) address space.
* AArch32 image descriptor is used, in BL2, to load
  SP_MIN and BL33 AArch32 executable images.

A new flag `JUNO_AARCH32_EL3_RUNTIME` is introduced that
controls above changes. By default this flag is disabled.

NOTE: BL1 and BL2 are not supported in AArch32 state for JUNO.

Change-Id: I091d56a0e6d36663e6d9d2bb53c92c672195d1ec
Signed-off-by: Yatharth Kochar <yatharth.kochar@arm.com>
Signed-off-by: dp-arm <dimitris.papastamos@arm.com>
2017-04-20 15:05:21 +01:00
..
arm Changes to support execution in AArch32 state for JUNO 2017-04-20 15:05:21 +01:00
common Add and use plat_crash_console_flush() API 2017-03-31 09:54:22 +01:00
compat AArch32: Add essential ARM platform and FVP support 2016-08-10 18:01:38 +01:00
mediatek Merge pull request #885 from antonio-nino-diaz-arm/an/console-flush 2017-04-12 22:23:44 +01:00
nvidia/tegra Merge pull request #899 from vwadekar/tegra186-platform-support-v6 2017-04-16 16:20:38 +01:00
qemu Move plat/common source file definitions to generic Makefiles 2017-03-20 14:58:25 +00:00
rockchip Merge pull request #892 from rockchip-linux/fixes-a-typo 2017-04-07 15:54:14 +01:00
xilinx/zynqmp zynqmp: Enable workaround for errata 855873 2017-04-06 11:44:27 -07:00