test(realm): enhance realm memory exception tests for planes

Extend memory exception tests for planes.

Change-Id: Ifc98b8c67e85b04b36a78f16971d17f05d6a87d2
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
diff --git a/realm/realm_payload_main.c b/realm/realm_payload_main.c
index ad98841..e654f1f 100644
--- a/realm/realm_payload_main.c
+++ b/realm/realm_payload_main.c
@@ -271,7 +271,7 @@
 	void (*func_ptr)(void);
 	rsi_ripas_type ripas;
 
-	base = realm_shared_data_get_my_host_val(HOST_ARG1_INDEX);
+	base = realm_shared_data_get_my_host_val(HOST_ARG3_INDEX);
 	rsi_ipa_state_get(base, base + PAGE_SIZE, &new_top, &ripas);
 	realm_printf("Initial ripas=%u\n", ripas);
 	/* Causes instruction abort */
@@ -286,7 +286,7 @@
 {
 	u_register_t base, new_top;
 	rsi_ripas_type ripas;
-	base = realm_shared_data_get_my_host_val(HOST_ARG1_INDEX);
+	base = realm_shared_data_get_my_host_val(HOST_ARG3_INDEX);
 	rsi_ipa_state_get(base, base + PAGE_SIZE, &new_top, &ripas);
 	realm_printf("Initial ripas=%u\n", ripas);
 	/* Causes data abort */
@@ -300,7 +300,7 @@
 {
 	u_register_t base, far, esr, elr;
 
-	base = realm_shared_data_get_my_host_val(HOST_ARG1_INDEX);
+	base = realm_shared_data_get_my_host_val(HOST_ARG3_INDEX);
 	far = read_far_el1();
 	esr = read_esr_el1();
 	elr = read_elr_el1();
diff --git a/realm/realm_plane.c b/realm/realm_plane.c
index 3b79aff..656c688 100644
--- a/realm/realm_plane.c
+++ b/realm/realm_plane.c
@@ -19,6 +19,7 @@
 
 static bool is_plane0;
 static unsigned int plane_num;
+static bool plane_init[MAX_PLANE_COUNT];
 
 bool realm_is_plane0(void)
 {
@@ -168,11 +169,16 @@
 	run->enter.pc = base;
 
 	/* Perm init */
+	if (plane_init[plane_index]) {
+		return true;
+	}
+
 	ret = rsi_mem_set_perm_value(plane_index, perm_index, PERM_LABEL_RW_upX);
 	if (ret != RSI_SUCCESS) {
 		ERROR("rsi_mem_set_perm_value failed %u\n", plane_index);
 		return false;
 	}
+	plane_init[plane_index] = true;
 	return true;
 }