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;