[coreboot-gerrit] New patch to review for coreboot: 9f1eacd arm64: Add useful macro definitions for register bits
Patrick Georgi (pgeorgi@google.com)
gerrit at coreboot.org
Fri Mar 27 09:39:58 CET 2015
Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9069
-gerrit
commit 9f1eacd23d964897299b79c86a2e8ea79e2c97b0
Author: Furquan Shaikh <furquan at google.com>
Date: Fri Sep 12 19:12:27 2014 -0700
arm64: Add useful macro definitions for register bits
BUG=chrome-os-partner:30785
BRANCH=None
TEST=Coreboot compiles successfully
Change-Id: I1fba44974314effa1065e3637aaa5430584a4cc6
Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
Original-Commit-Id: a4791232de764ebe40d9b3de5c63479dec7da003
Original-Change-Id: I95fdff5d1580faf4cb4f85d6acae7a834b8ff0bf
Original-Signed-off-by: Furquan Shaikh <furquan at google.com>
Original-Reviewed-on: https://chromium-review.googlesource.com/218031
Original-Reviewed-by: Aaron Durbin <adurbin at chromium.org>
Original-Tested-by: Furquan Shaikh <furquan at chromium.org>
Original-Commit-Queue: Furquan Shaikh <furquan at chromium.org>
---
src/arch/arm64/include/armv8/arch/lib_helpers.h | 58 +++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/src/arch/arm64/include/armv8/arch/lib_helpers.h b/src/arch/arm64/include/armv8/arch/lib_helpers.h
index 4fcef28..ee41716 100644
--- a/src/arch/arm64/include/armv8/arch/lib_helpers.h
+++ b/src/arch/arm64/include/armv8/arch/lib_helpers.h
@@ -33,6 +33,64 @@
#define CURRENT_EL_MASK 0x3
#define CURRENT_EL_SHIFT 2
+#define SPSR_USE_L 0
+#define SPSR_USE_H 1
+#define SPSR_L_H_MASK 1
+#define SPSR_M_SHIFT 4
+#define SPSR_ERET_32 (1 << SPSR_M_SHIFT)
+#define SPSR_ERET_64 (0 << SPSR_M_SHIFT)
+#define SPSR_FIQ_SHIFT 6
+#define SPSR_FIQ_MASK (0 << SPSR_FIQ_SHIFT)
+#define SPSR_FIQ_ENABLE (1 << SPSR_FIQ_SHIFT)
+#define SPSR_IRQ_SHIFT 7
+#define SPSR_IRQ_MASK (0 << SPSR_IRQ_SHIFT)
+#define SPSR_IRQ_ENABLE (1 << SPSR_IRQ_SHIFT)
+#define SPSR_SERROR_SHIFT 8
+#define SPSR_SERROR_MASK (0 << SPSR_SERROR_SHIFT)
+#define SPSR_SERROR_ENABLE (1 << SPSR_SERROR_SHIFT)
+#define SPSR_DEBUG_SHIFT 9
+#define SPSR_DEBUG_MASK (0 << SPSR_DEBUG_SHIFT)
+#define SPSR_DEBUG_ENABLE (1 << SPSR_DEBUG_SHIFT)
+
+#define SCR_NS 1
+#define SCR_RES1 (0x3 << 4)
+#define SCR_SMC_SHIFT 7
+#define SCR_SMC_DISABLE (1 << SCR_SMC_SHIFT)
+#define SCR_SMC_ENABLE (0 << SCR_SMC_SHIFT)
+#define SCR_HVC_SHIFT 8
+#define SCR_HVC_DISABLE (0 << SCR_HVC_SHIFT)
+#define SCR_HVC_ENABLE (1 << SCR_HVC_SHIFT)
+#define SCR_RW_SHIFT 10
+#define SCR_LOWER_AARCH64 (1 << SCR_RW_SHIFT)
+#define SCR_LOWER_AARCH32 (0 << SCR_RW_SHIFT)
+
+#define HCR_RW_SHIFT 31
+#define HCR_LOWER_AARCH64 (1 << HCR_RW_SHIFT)
+#define HCR_LOWER_AARCH32 (0 << HCR_RW_SHIFT)
+
+#define SCTLR_MMU_ENABLE 1
+#define SCTLR_MMU_DISABLE 0
+#define SCTLR_ACE_SHIFT 1
+#define SCTLR_ACE_ENABLE (1 << SCTLR_ACE_SHIFT)
+#define SCTLR_ACE_DISABLE (0 << SCTLR_ACE_SHIFT)
+#define SCTLR_CACHE_SHIFT 2
+#define SCTLR_CACHE_ENABLE (1 << SCTLR_CACHE_SHIFT)
+#define SCTLR_CACHE_DISABLE (0 << SCTLR_CACHE_SHIFT)
+#define SCTLR_SAE_SHIFT 3
+#define SCTLR_SAE_ENABLE (1 << SCTLR_SAE_SHIFT)
+#define SCTLR_SAE_DISABLE (0 << SCTLR_SAE_SHIFT)
+#define SCTLR_RES1 ((0x3 << 4) | (0x1 << 11) | (0x1 << 16) | \
+ (0x1 << 18) | (0x3 << 22) | (0x3 << 28))
+#define SCTLR_ICE_SHIFT 12
+#define SCTLR_ICE_ENABLE (1 << SCTLR_ICE_SHIFT)
+#define SCTLR_ICE_DISABLE (0 << SCTLR_ICE_SHIFT)
+#define SCTLR_WXN_SHIFT 19
+#define SCTLR_WXN_ENABLE (1 << SCTLR_WXN_SHIFT)
+#define SCTLR_WXN_DISABLE (0 << SCTLR_WXN_SHIFT)
+#define SCTLR_ENDIAN_SHIFT 25
+#define SCTLR_LITTLE_END (0 << SCTLR_ENDIAN_SHIFT)
+#define SCTLR_BIG_END (1 << SCTLR_ENDIAN_SHIFT)
+
#ifdef __ASSEMBLY__
/* Macro to switch to label based on current el */
More information about the coreboot-gerrit
mailing list