test(realm): add testcase to enter all planes

Testcase creates realm with all 4 planes.
Enters all planes.

Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
Change-Id: I7a3b9103e1fbcfe98117c02827624a2fc2d24fc2
diff --git a/realm/realm_payload_main.c b/realm/realm_payload_main.c
index 2556c11..4ad1b6c 100644
--- a/realm/realm_payload_main.c
+++ b/realm/realm_payload_main.c
@@ -24,6 +24,7 @@
 
 static fpu_state_t rl_fpu_state_write;
 static fpu_state_t rl_fpu_state_read;
+static rsi_plane_run run __aligned(PAGE_SIZE);
 
 /*
  * This function reads sleep time in ms from shared buffer and spins PE
@@ -44,6 +45,18 @@
 	}
 }
 
+static bool test_realm_enter_plane_n(void)
+{
+	u_register_t base, plane_index, perm_index, flags = 0U;
+
+	plane_index = realm_shared_data_get_my_host_val(HOST_ARG1_INDEX);
+	base = realm_shared_data_get_my_host_val(HOST_ARG2_INDEX);
+	perm_index = plane_index + 1U;
+
+	realm_printf("Entering plane %ld, ep=0x%lx run=0x%lx\n", plane_index, base, &run);
+	return realm_plane_enter(plane_index, perm_index, base, flags, &run);
+}
+
 /*
  * This function requests RSI/ABI version from RMM.
  */
@@ -284,6 +297,9 @@
 			realm_loop_cmd();
 			test_succeed = true;
 			break;
+		case REALM_ENTER_PLANE_N_CMD:
+			test_succeed = test_realm_enter_plane_n();
+			break;
 		case REALM_MULTIPLE_REC_PSCI_DENIED_CMD:
 			test_succeed = test_realm_multiple_rec_psci_denied_cmd();
 			break;