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/include/realm_rsi.h b/realm/include/realm_rsi.h
index 547db0d..8436db9 100644
--- a/realm/include/realm_rsi.h
+++ b/realm/include/realm_rsi.h
@@ -100,6 +100,33 @@
  * arg0 == struct rsi_realm_config address
  */
 #define RSI_REALM_CONFIG	SMC_RSI_FID(6U)
+#define RSI_IPA_STATE_SET	SMC_RSI_FID(7U)
+#define RSI_IPA_STATE_GET	SMC_RSI_FID(8U)
+
+typedef enum {
+	RSI_EMPTY = 0U,
+	RSI_RAM,
+	RSI_DESTROYED
+} rsi_ripas_type;
+
+typedef enum {
+	RSI_ACCEPT = 0U,
+	RSI_REJECT
+} rsi_ripas_respose_type;
+
+#define RSI_NO_CHANGE_DESTROYED	0UL
+#define RSI_CHANGE_DESTROYED	1UL
+
+/* Request RIPAS of a target IPA range to be changed to a specified value. */
+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);
+
+/* Request RIPAS of a target IPA */
+u_register_t rsi_ipa_state_get(u_register_t adr, rsi_ripas_type *ripas);
 
 /* This function return RSI_ABI_VERSION */
 u_register_t rsi_get_version(u_register_t req_ver);