test(dir_msg): demo MP test with direct message

Validate direct messaging between secondary cores on sender and receiver
VMs. Add a test for FFA_MSG_SEND_DIRECT_REQ/RESP and for
FFA_MSG_SEND_DIRECT_REQ2/RESP2.

Add semaphore semantics to hftest to coordinate synchronizing between
test VM cores.

Change-Id: Ia2c1466fdcfc1704c6134d9caad7b694f137fee9
Signed-off-by: J-Alves <joao.alves@arm.com>
Signed-off-by: Kathleen Capella <kathleen.capella@arm.com>
diff --git a/test/hftest/power_mgmt.c b/test/hftest/power_mgmt.c
index 4ca3c52..afd1744 100644
--- a/test/hftest/power_mgmt.c
+++ b/test/hftest/power_mgmt.c
@@ -10,6 +10,7 @@
 
 #include "hf/arch/mm.h"
 
+#include "hf/mm.h"
 #include "hf/spinlock.h"
 
 #include "test/hftest.h"
@@ -20,6 +21,12 @@
 	struct spinlock lock;
 };
 
+/*
+ * Stack for secondary execution contexts.
+ * Used in tests for MP partitions where multicore functionality is tested.
+ */
+alignas(PAGE_SIZE) uint8_t secondary_ec_stack[MAX_CPUS - 1][PAGE_SIZE];
+
 static noreturn void cpu_entry(uintptr_t arg)
 {
 	/*