feat(notifications): schedule receiver interrupt

Configuring Schedule Receiver Interrupt for each CPU, and send
respective SGI to the NWd. If flag FFA_NOTIFICATIONS_FLAG_DELAY_SRI
is set, the SGI will be sent upon context switch from the SWd to the NWd
else it will be sent immediately, the sender SP execution will be
preempted.
A state machine was implemented to coordinate handling and sending of
the SRI.

Change-Id: If05a6535094f5da7189d8dbb55b04e7c1a1f80d7
Signed-off-by: J-Alves <joao.alves@arm.com>
diff --git a/inc/vmapi/hf/ffa.h b/inc/vmapi/hf/ffa.h
index cc87c42..f3d9d15 100644
--- a/inc/vmapi/hf/ffa.h
+++ b/inc/vmapi/hf/ffa.h
@@ -405,6 +405,8 @@
 
 #define MAX_FFA_NOTIFICATIONS 64U
 
+#define FFA_SCHEDULE_RECEIVER_INTERRUPT_ID 8
+
 /**
  * Flag for notification bind and set, to specify call is about per-vCPU
  * notifications.
@@ -443,6 +445,9 @@
 #define FFA_NOTIFICATION_FLAG_BITMAP_SPM UINT32_C(0x1 << 2)
 #define FFA_NOTIFICATION_FLAG_BITMAP_HYP UINT32_C(0x1 << 3)
 
+/** Flag for FFA_NOTIFICATION_SET to delay Schedule Receiver Interrupt */
+#define FFA_NOTIFICATIONS_FLAG_DELAY_SRI UINT32_C(0x1 << 1)
+
 static inline ffa_vm_id_t ffa_notifications_get_receiver(struct ffa_value args)
 {
 	return (args.arg1 >> 16) & 0xffffU;