aboutsummaryrefslogtreecommitdiffstats
path: root/include/lib
diff options
context:
space:
mode:
authorSathees Balya <sathees.balya@arm.com>2018-12-06 13:33:24 +0000
committerSathees Balya <sathees.balya@arm.com>2019-01-03 17:33:09 +0000
commit65849aa595fa0fad1e9b9fd13c24d5b756e61aa6 (patch)
tree90cb44d6f2694a00718940cede1d8f7fc57efb28 /include/lib
parentc8765826f4c2d10db0b660defccc84f7bce11af0 (diff)
downloadplatform_external_arm-trusted-firmware-65849aa595fa0fad1e9b9fd13c24d5b756e61aa6.tar.gz
platform_external_arm-trusted-firmware-65849aa595fa0fad1e9b9fd13c24d5b756e61aa6.tar.bz2
platform_external_arm-trusted-firmware-65849aa595fa0fad1e9b9fd13c24d5b756e61aa6.zip
Enable DIT if supported
This patch enables the Data Independent Timing functionality (DIT) in EL3 if supported by the platform. Change-Id: Ia527d6aa2ee88a9a9fe1c941220404b9ff5567e5 Signed-off-by: Sathees Balya <sathees.balya@arm.com>
Diffstat (limited to 'include/lib')
-rw-r--r--include/lib/aarch32/arch.h9
-rw-r--r--include/lib/aarch64/arch.h14
2 files changed, 20 insertions, 3 deletions
diff --git a/include/lib/aarch32/arch.h b/include/lib/aarch32/arch.h
index fa6e5dbdd..8260c5491 100644
--- a/include/lib/aarch32/arch.h
+++ b/include/lib/aarch32/arch.h
@@ -94,11 +94,17 @@
/* CSSELR definitions */
#define LEVEL_SHIFT U(1)
-/* ID_PFR0 definitions */
+/* ID_PFR0 AMU definitions */
#define ID_PFR0_AMU_SHIFT U(20)
#define ID_PFR0_AMU_LENGTH U(4)
#define ID_PFR0_AMU_MASK U(0xf)
+/* ID_PFR0 DIT definitions */
+#define ID_PFR0_DIT_SHIFT U(24)
+#define ID_PFR0_DIT_LENGTH U(4)
+#define ID_PFR0_DIT_MASK U(0xf)
+#define ID_PFR0_DIT_SUPPORTED (U(1) << ID_PFR0_DIT_SHIFT)
+
/* ID_PFR1 definitions */
#define ID_PFR1_VIRTEXT_SHIFT U(12)
#define ID_PFR1_VIRTEXT_MASK U(0xf)
@@ -276,6 +282,7 @@
#define DISABLE_ALL_EXCEPTIONS \
(SPSR_FIQ_BIT | SPSR_IRQ_BIT | SPSR_ABT_BIT)
+#define CPSR_DIT_BIT (U(1) << 21)
/*
* TTBCR definitions
*/
diff --git a/include/lib/aarch64/arch.h b/include/lib/aarch64/arch.h
index 6f81e1b41..72a14dcfa 100644
--- a/include/lib/aarch64/arch.h
+++ b/include/lib/aarch64/arch.h
@@ -135,6 +135,10 @@
#define ID_AA64PFR0_SVE_LENGTH U(4)
#define ID_AA64PFR0_MPAM_SHIFT U(40)
#define ID_AA64PFR0_MPAM_MASK ULL(0xf)
+#define ID_AA64PFR0_DIT_SHIFT U(48)
+#define ID_AA64PFR0_DIT_MASK ULL(0xf)
+#define ID_AA64PFR0_DIT_LENGTH U(4)
+#define ID_AA64PFR0_DIT_SUPPORTED U(1)
#define ID_AA64PFR0_CSV2_SHIFT U(56)
#define ID_AA64PFR0_CSV2_MASK ULL(0xf)
#define ID_AA64PFR0_CSV2_LENGTH U(4)
@@ -778,7 +782,7 @@
/*******************************************************************************
* RAS system registers
- *******************************************************************************/
+ ******************************************************************************/
#define DISR_EL1 S3_0_C12_C1_1
#define DISR_A_BIT U(31)
@@ -807,7 +811,13 @@
/*******************************************************************************
* Armv8.3 Pointer Authentication Registers
- *******************************************************************************/
+ ******************************************************************************/
#define APGAKeyLo_EL1 S3_0_C2_C3_0
+/*******************************************************************************
+ * Armv8.4 Data Independent Timing Registers
+ ******************************************************************************/
+#define DIT S3_3_C4_C2_5
+#define DIT_BIT BIT(24)
+
#endif /* ARCH_H */