test(realm): add test for FEAT_DIT
Add testcase to enable FEAT_DIT in realm.
Test if DIT Bit is preserved across context switch RL/NS.
Change-Id: I26cbaaf669b53ecba14a451955b6f847c45e0575
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
diff --git a/realm/realm_payload_main.c b/realm/realm_payload_main.c
index 93e2404..ce25f43 100644
--- a/realm/realm_payload_main.c
+++ b/realm/realm_payload_main.c
@@ -130,6 +130,20 @@
return false;
}
+bool test_realm_dit_check_cmd(void)
+{
+ if (is_armv8_4_dit_present()) {
+ write_dit(DIT_BIT);
+ realm_printf("Testing DIT=0x%lx\n", read_dit());
+ /* Test if DIT is preserved after HOST_CALL */
+ if (read_dit() == DIT_BIT) {
+ return true;
+ }
+ }
+ return false;
+}
+
+
static bool test_realm_instr_fetch_cmd(void)
{
u_register_t base;
@@ -229,6 +243,9 @@
case REALM_PAUTH_FAULT:
test_succeed = test_realm_pauth_fault();
break;
+ case REALM_DIT_CHECK_CMD:
+ test_succeed = test_realm_dit_check_cmd();
+ break;
case REALM_GET_RSI_VERSION:
test_succeed = realm_get_rsi_version();
break;