@@ -80,18 +80,26 @@ asm(
#define ICC_GRPEN1_EL1 sys_reg(3, 0, 12, 12, 7)
/* System Control Register (SCTLR_EL1) bits */
+#define SCTLR_EL1_LSMAOE _BITULL(29)
+#define SCTLR_EL1_NTLSMD _BITULL(28)
#define SCTLR_EL1_EE _BITULL(25)
+#define SCTLR_EL1_SPAN _BITULL(23)
+#define SCTLR_EL1_EIS _BITULL(22)
+#define SCTLR_EL1_TSCXT _BITULL(20)
#define SCTLR_EL1_WXN _BITULL(19)
#define SCTLR_EL1_I _BITULL(12)
+#define SCTLR_EL1_EOS _BITULL(11)
+#define SCTLR_EL1_SED _BITULL(8)
+#define SCTLR_EL1_ITD _BITULL(7)
#define SCTLR_EL1_SA0 _BITULL(4)
#define SCTLR_EL1_SA _BITULL(3)
#define SCTLR_EL1_C _BITULL(2)
#define SCTLR_EL1_A _BITULL(1)
#define SCTLR_EL1_M _BITULL(0)
-#define SCTLR_EL1_RES1 (_BITULL(7) | _BITULL(8) | _BITULL(11) | _BITULL(20) | \
- _BITULL(22) | _BITULL(23) | _BITULL(28) | _BITULL(29))
#define INIT_SCTLR_EL1_MMU_OFF \
- SCTLR_EL1_RES1
+ (SCTLR_EL1_ITD | SCTLR_EL1_SED | SCTLR_EL1_EOS | \
+ SCTLR_EL1_TSCXT | SCTLR_EL1_EIS | SCTLR_EL1_SPAN | \
+ SCTLR_EL1_NTLSMD | SCTLR_EL1_LSMAOE)
#endif /* _ASMARM64_SYSREG_H_ */
Currently some fields in SCTLR_EL1 don't define a name and directly used in the SCTLR_EL1_RES1, that's not good now since these fields have been functional and have a name. Delete the SCTLR_EL1_RES1 since these bits are not RES1 if the related feature has been implemented, it's wired to define these bits as RES1. So simply delete the SCTLR_EL1_RES1 and unwind its definition to INIT_SCTLR_MMU_OFF. According to the ARM DDI 0487J.a, define the name related to these fields. Suggested-by: Alexandru Elisei <alexandru.elisei@arm.com> Signed-off-by: Shaoqin Huang <shahuang@redhat.com> --- lib/arm64/asm/sysreg.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)