]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: Convert SCTLR_EL2 to sysreg infrastructure
authorMarc Zyngier <maz@kernel.org>
Mon, 2 Feb 2026 18:43:10 +0000 (18:43 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 5 Feb 2026 08:59:28 +0000 (08:59 +0000)
Convert SCTLR_EL2 to the sysreg infrastructure, as per the 2025-12_rel
revision of the Registers.json file.

Note that we slightly deviate from the above, as we stick to the ARM
ARM M.a definition of SCTLR_EL2[9], which is RES0, in order to avoid
dragging the POE2 definitions...

Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Link: https://patch.msgid.link/20260202184329.2724080-2-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/include/asm/sysreg.h
arch/arm64/tools/sysreg
tools/arch/arm64/include/asm/sysreg.h

index 939f9c5bbae670405079cb12b069be965f1e16a2..30f0409b1c802eca397121671fe48059e9241490 100644 (file)
 #define SYS_VPIDR_EL2                  sys_reg(3, 4, 0, 0, 0)
 #define SYS_VMPIDR_EL2                 sys_reg(3, 4, 0, 0, 5)
 
-#define SYS_SCTLR_EL2                  sys_reg(3, 4, 1, 0, 0)
 #define SYS_ACTLR_EL2                  sys_reg(3, 4, 1, 0, 1)
 #define SYS_SCTLR2_EL2                 sys_reg(3, 4, 1, 0, 3)
 #define SYS_HCR_EL2                    sys_reg(3, 4, 1, 1, 0)
 #define SCTLR_ELx_A     (BIT(1))
 #define SCTLR_ELx_M     (BIT(0))
 
-/* SCTLR_EL2 specific flags. */
-#define SCTLR_EL2_RES1 ((BIT(4))  | (BIT(5))  | (BIT(11)) | (BIT(16)) | \
-                        (BIT(18)) | (BIT(22)) | (BIT(23)) | (BIT(28)) | \
-                        (BIT(29)))
-
-#define SCTLR_EL2_BT   (BIT(36))
 #ifdef CONFIG_CPU_BIG_ENDIAN
 #define ENDIAN_SET_EL2         SCTLR_ELx_EE
 #else
index a0f6249bd4f98c66265ea844f5a70b05b856f7d3..969a75615d612fbeb81819a7185bb8dee0b15572 100644 (file)
@@ -3749,6 +3749,75 @@ UnsignedEnum     2:0     F8S1
 EndEnum
 EndSysreg
 
+Sysreg SCTLR_EL2       3       4       1       0       0
+Field  63      TIDCP
+Field  62      SPINTMASK
+Field  61      NMI
+Field  60      EnTP2
+Field  59      TCSO
+Field  58      TCSO0
+Field  57      EPAN
+Field  56      EnALS
+Field  55      EnAS0
+Field  54      EnASR
+Res0   53:50
+Field  49:46   TWEDEL
+Field  45      TWEDEn
+Field  44      DSSBS
+Field  43      ATA
+Field  42      ATA0
+Enum   41:40   TCF
+       0b00    NONE
+       0b01    SYNC
+       0b10    ASYNC
+       0b11    ASYMM
+EndEnum
+Enum   39:38   TCF0
+       0b00    NONE
+       0b01    SYNC
+       0b10    ASYNC
+       0b11    ASYMM
+EndEnum
+Field  37      ITFSB
+Field  36      BT
+Field  35      BT0
+Field  34      EnFPM
+Field  33      MSCEn
+Field  32      CMOW
+Field  31      EnIA
+Field  30      EnIB
+Field  29      LSMAOE
+Field  28      nTLSMD
+Field  27      EnDA
+Field  26      UCI
+Field  25      EE
+Field  24      E0E
+Field  23      SPAN
+Field  22      EIS
+Field  21      IESB
+Field  20      TSCXT
+Field  19      WXN
+Field  18      nTWE
+Res0   17
+Field  16      nTWI
+Field  15      UCT
+Field  14      DZE
+Field  13      EnDB
+Field  12      I
+Field  11      EOS
+Field  10      EnRCTX
+Res0   9
+Field  8       SED
+Field  7       ITD
+Field  6       nAA
+Field  5       CP15BEN
+Field  4       SA0
+Field  3       SA
+Field  2       C
+Field  1       A
+Field  0       M
+EndSysreg
+
 Sysreg HCR_EL2         3       4       1       1       0
 Field  63:60   TWEDEL
 Field  59      TWEDEn
index 178b7322bf049b9dfcca4c0ddff6b48c7164b5d9..f75efe98e9df37a6a285bba5e55de391e0dab02b 100644 (file)
 #define SCTLR_ELx_A     (BIT(1))
 #define SCTLR_ELx_M     (BIT(0))
 
-/* SCTLR_EL2 specific flags. */
-#define SCTLR_EL2_RES1 ((BIT(4))  | (BIT(5))  | (BIT(11)) | (BIT(16)) | \
-                        (BIT(18)) | (BIT(22)) | (BIT(23)) | (BIT(28)) | \
-                        (BIT(29)))
-
-#define SCTLR_EL2_BT   (BIT(36))
 #ifdef CONFIG_CPU_BIG_ENDIAN
 #define ENDIAN_SET_EL2         SCTLR_ELx_EE
 #else