fix(gic): SGI helper to use cpu struct id affinity

The plat_interrupts_send_sgi interface uses a target list bitfield
parameter to identify the PE to which an SGI is to be sent. The target
list is infered from the target core linear id.
Furthermore, gicv3_send_sgi uses the target list combined with the
current core MPIDR Aff3 to Aff1 affinities.
This approach is slightly wrong because the target list shall be
derived from the Aff0 value of the target PE.
This used to 'work' on qemu because Aff3 to Aff1 are zero and Aff0
encodes the linear PE id. This implementation exhibits a failure on
FVP because Aff0 is zero on all cores.
This change redefines the plat_interrupts_send_sgi interface to trigger
an SGI by using the id from the cpu struct passed as parameter.
gicv3_send_sgi is made independent from MPIDR and calculates the target
list from Aff0.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I0ab925498955d27c2b31b313e294dbcdbc4cc3f9
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index bc141c2..4bd8a3b 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -697,7 +697,8 @@
 #if SECURE_WORLD == 1
 		/*
 		 * If giving back execution to the NWd, check if the Schedule
-		 * Receiver Interrupt has been delayed, and trigger it if so.
+		 * Receiver Interrupt has been delayed, and trigger it on
+		 * current core if so.
 		 */
 		if ((*next != NULL && (*next)->vm->id == HF_OTHER_WORLD_ID) ||
 		    (*next == NULL && vcpu->vm->id == HF_OTHER_WORLD_ID)) {