feat: arch helpers to check RME support

Added helper functions to aid with looking for RME support.

Signed-off-by: J-Alves <joao.alves@arm.com>
Change-Id: Ib678fcaf2f3f0cf7ab9b385bd24e77c5490baf03
diff --git a/src/arch/aarch64/sysregs.h b/src/arch/aarch64/sysregs.h
index 39109d3..9d94c40 100644
--- a/src/arch/aarch64/sysregs.h
+++ b/src/arch/aarch64/sysregs.h
@@ -61,6 +61,15 @@
 }
 
 /**
+ * Returns true if the RME feature is implemented.
+ */
+static inline bool is_arch_feat_rme_supported(void)
+{
+	return ((read_msr(ID_AA64PFR0_EL1) >> ID_AA64PFR0_EL1_RME_SHIFT) &
+		ID_AA64PFR0_EL1_RME_MASK) != 0;
+}
+
+/**
  * Returns true if the SVE feature is implemented.
  */
 bool is_arch_feat_sve_supported(void);
diff --git a/src/arch/aarch64/sysregs_defs.h b/src/arch/aarch64/sysregs_defs.h
index 2f89fb3..f115d01 100644
--- a/src/arch/aarch64/sysregs_defs.h
+++ b/src/arch/aarch64/sysregs_defs.h
@@ -686,3 +686,9 @@
  * Branch Target Identification mechanism support in AArch64 state.
  */
 #define ID_AA64PFR1_EL1_BT (UINT64_C(0xf) << 0)
+
+/**
+ * RME feature support.
+ */
+#define ID_AA64PFR0_EL1_RME_SHIFT 52
+#define ID_AA64PFR0_EL1_RME_MASK UINT64_C(0xf)