feat(rmm-eac5): update RSI_VERSION, RMI_VERSION
This patch adds necessary support for RMI_VERSION
and RSI_VERSION commands.
Macro SMC_RSI_ABI_VERSION renamed to SMC_RSI_VERSION.
Note.
This patch sets both RSI and RMI version numbers to
1.0 as per RMM Specification 1.0-eac5.
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
Change-Id: If4eb14d93f657388e2fe64ceefee002403cc4ae8
diff --git a/include/common/test_helpers.h b/include/common/test_helpers.h
index 4972d6a..6b44d0a 100644
--- a/include/common/test_helpers.h
+++ b/include/common/test_helpers.h
@@ -294,7 +294,7 @@
#define SKIP_TEST_IF_RME_NOT_SUPPORTED_OR_RMM_IS_TRP() \
do { \
- u_register_t retrmm; \
+ u_register_t retrmm = 0U; \
\
if (!get_armv9_2_feat_rme_support()) { \
tftf_testcase_printf("FEAT_RME not supported\n"); \
@@ -302,7 +302,7 @@
} \
\
host_rmi_init_cmp_result(); \
- retrmm = host_rmi_version(); \
+ retrmm = host_rmi_version(RMI_ABI_VERSION_VAL); \
\
VERBOSE("RMM version is: %lu.%lu\n", \
RMI_ABI_VERSION_GET_MAJOR(retrmm), \
diff --git a/include/runtime_services/host_realm_managment/host_realm_rmi.h b/include/runtime_services/host_realm_managment/host_realm_rmi.h
index b1e54dd..5030c38 100644
--- a/include/runtime_services/host_realm_managment/host_realm_rmi.h
+++ b/include/runtime_services/host_realm_managment/host_realm_rmi.h
@@ -28,6 +28,10 @@
#define RMI_ABI_VERSION_GET_MAJOR(_version) (((_version) >> 16U) & 0x8FFF)
#define RMI_ABI_VERSION_GET_MINOR(_version) ((_version) & 0xFFFF)
+#define RMI_ABI_VERSION_MAJOR U(1)
+#define RMI_ABI_VERSION_MINOR U(0)
+#define RMI_ABI_VERSION_VAL ((RMI_ABI_VERSION_MAJOR << 16U) | \
+ RMI_ABI_VERSION_MINOR)
#define __ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask))
#define __ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a) - 1U)
@@ -522,7 +526,7 @@
};
/* RMI/SMC */
-u_register_t host_rmi_version(void);
+u_register_t host_rmi_version(u_register_t req_ver);
u_register_t host_rmi_granule_delegate(u_register_t addr);
u_register_t host_rmi_granule_undelegate(u_register_t addr);
u_register_t host_rmi_realm_create(u_register_t rd, u_register_t params_ptr);