feat(spmc): support for el3 direct messaging

This patch makes changes required to support el3 direct messaging from
an el3 spmd logical partition. It adds the logical partition
identifiers that are a reserved range as defined in the patch. The patch
also changes the checks for valid direct requests and responses to be
accepted or targeted to the spmd logical partition. When a direct
request is received from an spmd logical partition, the target secure
partition is put in spmc scheduled mode with all interrupts masked. When
a direct response is targeted to an spmd logical partition, the spmc
switches back to el3.

Signed-off-by: Raghu Krishnamurthy <raghu.ncstate@gmail.com>
Change-Id: I11a6ac1021e3e8913afc0f64cbbe89742b73fe73
diff --git a/src/arch/fake/hypervisor/ffa.c b/src/arch/fake/hypervisor/ffa.c
index 1dae16f..efcdd49 100644
--- a/src/arch/fake/hypervisor/ffa.c
+++ b/src/arch/fake/hypervisor/ffa.c
@@ -455,11 +455,12 @@
 
 void plat_ffa_wind_call_chain_ffa_direct_req(
 	struct vcpu_locked current_locked,
-	struct vcpu_locked receiver_vcpu_locked)
+	struct vcpu_locked receiver_vcpu_locked, ffa_vm_id_t sender_vm_id)
 {
 	/* Calls chains not supported in the Hypervisor/VMs. */
 	(void)current_locked;
 	(void)receiver_vcpu_locked;
+	(void)sender_vm_id;
 }
 
 void plat_ffa_unwind_call_chain_ffa_direct_resp(
@@ -470,6 +471,12 @@
 	(void)next_locked;
 }
 
+bool plat_ffa_is_spmd_lp_id(ffa_vm_id_t vm_id)
+{
+	(void)vm_id;
+	return false;
+}
+
 bool plat_ffa_intercept_direct_response(struct vcpu_locked current_locked,
 					struct vcpu **next,
 					struct ffa_value to_ret,