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/inc/hf/plat/interrupts.h b/inc/hf/plat/interrupts.h
index 1530b22..c1a86e8 100644
--- a/inc/hf/plat/interrupts.h
+++ b/inc/hf/plat/interrupts.h
@@ -29,6 +29,5 @@
 uint32_t plat_interrupts_get_pending_interrupt_id(void);
 void plat_interrupts_end_of_interrupt(uint32_t id);
 void plat_interrupts_configure_interrupt(struct interrupt_descriptor int_desc);
-void plat_interrupts_send_sgi(uint32_t id, bool send_to_all,
-			      uint32_t target_list,
+void plat_interrupts_send_sgi(uint32_t id, struct cpu *cpu,
 			      bool to_this_security_state);