feat(realm): add support for RSI_IPA_STATE_GET/SET

Add support for realm API rsi_ipa_state_set, rsi_ipa_state_get
Add testcase for following
* Realm calls rsi_ipa_state_set to change RIPAS=RAM,
* Host accepts and call RMI_RTT_SET_RIPAS
* Realm verifies RIPAS change was successful

Change-Id: I4da6c7d25faa62afde1d0f682510bac6c8445821
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
diff --git a/realm/realm_rsi.c b/realm/realm_rsi.c
index ba60ba8..04f57fc 100644
--- a/realm/realm_rsi.c
+++ b/realm/realm_rsi.c
@@ -51,3 +51,35 @@
 	tftf_smc(&(smc_args) {RSI_HOST_CALL, (u_register_t)&host_cal,
 		0UL, 0UL, 0UL, 0UL, 0UL, 0UL});
 }
+
+/* This function will exit to the Host to request RIPAS CHANGE of IPA range */
+u_register_t rsi_ipa_state_set(u_register_t base,
+			       u_register_t top,
+			       rsi_ripas_type ripas,
+			       u_register_t flag,
+			       u_register_t *new_base,
+			       rsi_ripas_respose_type *response)
+{
+	smc_ret_values res = {};
+
+	res = tftf_smc(&(smc_args)
+			{RSI_IPA_STATE_SET, base, top, ripas, flag});
+	if (res.ret0 == RSI_SUCCESS) {
+		*new_base = res.ret1;
+		*response = res.ret2;
+	}
+	return res.ret0;
+}
+
+/* This function will return RIPAS of IPA */
+u_register_t rsi_ipa_state_get(u_register_t adr, rsi_ripas_type *ripas)
+{
+	smc_ret_values res = {};
+
+	res = tftf_smc(&(smc_args)
+			{RSI_IPA_STATE_GET, adr});
+	if (res.ret0 == RSI_SUCCESS) {
+		*ripas = res.ret1;
+	}
+	return res.ret0;
+}