meson: gxl: Fix CPU hotplug
authorRemi Pommarel <repk@triplefau.lt>
Tue, 30 Jul 2019 16:04:38 +0000 (18:04 +0200)
committerRemi Pommarel <repk@triplefau.lt>
Fri, 2 Aug 2019 11:54:16 +0000 (13:54 +0200)
commitb4694a8677a58546a078c38b9a841c67653b3ca9
tree5cca9e8b2040182c13914a8f6a35874c429e1bde
parent43d4a2910dd7b1ed46719b31a03a3d860d4875b1
meson: gxl: Fix CPU hotplug

The CPU[1-3] are reset to initial/cold boot state (with their reset
address set to 0x0). In this state the cpus are waiting for another
one to set the reset address to bl31_warm_entrypoint and wake them up.

The CPU0 needs a bit of a workaround as changing the reset address
either through PSCI mailbox or the mmio mapped RVBAR (at 0xda834650)
does not seem to have any effect. Thus the workaround consists in
emulating the other CPUs' behavior with a WFE loop and manually jumping
to bl31_warm_entrypoint when woken back up by another one.

Change-Id: I11265620b5fd0619285e3993253a3f9a3ff6a7a4
Signed-off-by: Remi Pommarel <repk@triplefau.lt>
plat/meson/gxl/gxl_pm.c