Juno: Change the Firmware update detect mechanism
authorSoby Mathew <soby.mathew@arm.com>
Wed, 7 Mar 2018 11:32:04 +0000 (11:32 +0000)
committerSoby Mathew <soby.mathew@arm.com>
Thu, 8 Mar 2018 09:44:05 +0000 (09:44 +0000)
commit7b56928a122f4ba19b5f3d6b834590de2e82a978
treeac94c4ff0449270294a78d5f9b08ba968927fbbf
parent74847ab203ca1801b450d32a61f3a3cb98adf83b
Juno: Change the Firmware update detect mechanism

Previously, Juno used to depend on the SSC_GPRETN register to inform
about the reset syndrome. This method was removed when SCP migrated
to the SDS framework. But even the SDS framework doesn't report the
reset syndrome correctly and hence Juno failed to enter Firmware
update mode if BL2 authentication failed.

In addition to that, the error code populated in V2M_SYS_NVFLAGS register
does not seem to be retained any more on Juno across resets. This could
be down to the motherboard firmware not doing the necessary to preserve
the value.

Hence this patch modifies the Juno platform to use the same mechanism to
trigger firmware update as FVP which is to corrupt the FIP TOC on
authentication failure. The implementation in `fvp_err.c` is made common
for ARM platforms and is moved to the new `arm_err.c` file in
plat/arm/common folder. The BL1 and BL2 mmap table entries for Juno
are modified to allow write to the Flash memory address.

Change-Id: Ica7d49a3e8a46a90efd4cf340f19fda3b549e945
Signed-off-by: Soby Mathew <soby.mathew@arm.com>
plat/arm/board/common/board_css_common.c
plat/arm/board/fvp/fvp_bl1_setup.c
plat/arm/board/fvp/fvp_err.c [deleted file]
plat/arm/board/fvp/platform.mk
plat/arm/board/juno/juno_bl1_setup.c
plat/arm/board/juno/juno_err.c [deleted file]
plat/arm/board/juno/platform.mk
plat/arm/common/arm_bl1_setup.c
plat/arm/common/arm_common.mk
plat/arm/common/arm_err.c [new file with mode: 0644]