FVP: Remove GIC initialisation from secondary core cold boot
authorJohn Tsichritzis <[email protected]>
Mon, 3 Jun 2019 15:20:46 +0000 (16:20 +0100)
committerJohn Tsichritzis <[email protected]>
Wed, 5 Jun 2019 16:46:50 +0000 (17:46 +0100)
commit9c29e5f78e54cda2f323604332d167ae38d04d1a
treeda3642d3b5aee5ba56cc9e1c12b7f4a3b001db74
parentc9e40ec59eeebb7e7d5c77ca052c1d1eb8ece511
FVP: Remove GIC initialisation from secondary core cold boot

During the secondary cores' cold boot path, the cores initialise the GIC
CPU interface. However this is a redundant action since 1) the cores are
powered down immediately after that, 2) the GIC CPU interface is
initialised from scratch when the secondary cores are powered up again
later.

Moreover, this part of code was introducing a bug. In a GICv3 system,
the GIC's CPU interface system registers must not be written without the
core being marked as "awake" in the redistributor. However, this
sequence was performing such accesses and this would cause those cores
to hang. The hang was caused by the DSB instruction that would never
complete because of the GIC not recognising those writes.

For the two aforementioned reasons, the entire part of the GIC CPU
interface initialisation is removed.

Change-Id: I6c33a1edda69dd5b6add16a27390a70731b5532a
Signed-off-by: John Tsichritzis <[email protected]>
plat/arm/board/fvp/aarch64/fvp_helpers.S