juno/aarch32: Restore `SCP_BOOT_CFG_ADDR` to the cold boot value
authorDimitris Papastamos <dimitris.papastamos@arm.com>
Wed, 14 Jun 2017 13:47:36 +0000 (14:47 +0100)
committerDimitris Papastamos <dimitris.papastamos@arm.com>
Mon, 26 Jun 2017 16:37:46 +0000 (17:37 +0100)
commitcc47e1ada6d9a4234d8ca6547008ddc10e6e6568
treed22410d7265ff4f28a7410588fdc454cfa7aa44f
parentccf3911108ea817a53f6e3b33526881d397ef442
juno/aarch32: Restore `SCP_BOOT_CFG_ADDR` to the cold boot value

Before BL2 loads the SCP ram firmware, `SCP_BOOT_CFG_ADDR` specifies
the primary core.  After the SCP ram firmware has started executing,
`SCP_BOOT_CFG_ADDR` is modified.  This is not normally an issue but
the Juno AArch32 boot flow is a special case.  BL1 does a warm reset
into AArch32 and the core jumps to the `sp_min` entrypoint.  This is
effectively a `RESET_TO_SP_MIN` configuration.  `sp_min` has to be
able to determine the primary core and hence we need to restore
`SCP_BOOT_CFG_ADDR` to the cold boot value before `sp_min` runs.

This magically worked when booting on A53 because the core index was
zero and it just so happened to match with the new value in
`SCP_BOOT_CFG_ADDR`.

Change-Id: I105425c680cf6238948625c1d1017b01d3517c01
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
plat/arm/board/juno/juno_bl2_setup.c