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);