0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # System register metadata
0004
0005 # Each System register is described by a Sysreg block:
0006
0007 # Sysreg <name> <op0> <op1> <crn> <crm> <op2>
0008 # <field>
0009 # ...
0010 # EndSysreg
0011
0012 # Within a Sysreg block, each field can be described as one of:
0013
0014 # Res0 <msb>[:<lsb>]
0015
0016 # Res1 <msb>[:<lsb>]
0017
0018 # Field <msb>[:<lsb>] <name>
0019
0020 # Enum <msb>[:<lsb>] <name>
0021 # <enumval> <enumname>
0022 # ...
0023 # EndEnum
0024
0025 # Alternatively if multiple registers share the same layout then
0026 # a SysregFields block can be used to describe the shared layout
0027
0028 # SysregFields <fieldsname>
0029 # <field>
0030 # ...
0031 # EndSysregFields
0032
0033 # and referenced from within the Sysreg:
0034
0035 # Sysreg <name> <op0> <op1> <crn> <crm> <op2>
0036 # Fields <fieldsname>
0037 # EndSysreg
0038
0039 # For ID registers we adopt a few conventions for translating the
0040 # language in the ARM into defines:
0041 #
0042 # NI - Not implemented
0043 # IMP - Implemented
0044 #
0045 # In general it is recommended that new enumeration items be named for the
0046 # feature that introduces them (eg, FEAT_LS64_ACCDATA introduces enumeration
0047 # item ACCDATA) though it may be more taseful to do something else.
0048
0049 Sysreg ID_AA64ZFR0_EL1 3 0 0 4 4
0050 Res0 63:60
0051 Enum 59:56 F64MM
0052 0b0000 NI
0053 0b0001 IMP
0054 EndEnum
0055 Enum 55:52 F32MM
0056 0b0000 NI
0057 0b0001 IMP
0058 EndEnum
0059 Res0 51:48
0060 Enum 47:44 I8MM
0061 0b0000 NI
0062 0b0001 IMP
0063 EndEnum
0064 Enum 43:40 SM4
0065 0b0000 NI
0066 0b0001 IMP
0067 EndEnum
0068 Res0 39:36
0069 Enum 35:32 SHA3
0070 0b0000 NI
0071 0b0001 IMP
0072 EndEnum
0073 Res0 31:24
0074 Enum 23:20 BF16
0075 0b0000 NI
0076 0b0001 IMP
0077 0b0010 EBF16
0078 EndEnum
0079 Enum 19:16 BitPerm
0080 0b0000 NI
0081 0b0001 IMP
0082 EndEnum
0083 Res0 15:8
0084 Enum 7:4 AES
0085 0b0000 NI
0086 0b0001 IMP
0087 0b0010 PMULL128
0088 EndEnum
0089 Enum 3:0 SVEver
0090 0b0000 IMP
0091 0b0001 SVE2
0092 EndEnum
0093 EndSysreg
0094
0095 Sysreg ID_AA64SMFR0_EL1 3 0 0 4 5
0096 Enum 63 FA64
0097 0b0 NI
0098 0b1 IMP
0099 EndEnum
0100 Res0 62:60
0101 Field 59:56 SMEver
0102 Enum 55:52 I16I64
0103 0b0000 NI
0104 0b1111 IMP
0105 EndEnum
0106 Res0 51:49
0107 Enum 48 F64F64
0108 0b0 NI
0109 0b1 IMP
0110 EndEnum
0111 Res0 47:40
0112 Enum 39:36 I8I32
0113 0b0000 NI
0114 0b1111 IMP
0115 EndEnum
0116 Enum 35 F16F32
0117 0b0 NI
0118 0b1 IMP
0119 EndEnum
0120 Enum 34 B16F32
0121 0b0 NI
0122 0b1 IMP
0123 EndEnum
0124 Res0 33
0125 Enum 32 F32F32
0126 0b0 NI
0127 0b1 IMP
0128 EndEnum
0129 Res0 31:0
0130 EndSysreg
0131
0132 Sysreg ID_AA64ISAR0_EL1 3 0 0 6 0
0133 Enum 63:60 RNDR
0134 0b0000 NI
0135 0b0001 IMP
0136 EndEnum
0137 Enum 59:56 TLB
0138 0b0000 NI
0139 0b0001 OS
0140 0b0010 RANGE
0141 EndEnum
0142 Enum 55:52 TS
0143 0b0000 NI
0144 0b0001 FLAGM
0145 0b0010 FLAGM2
0146 EndEnum
0147 Enum 51:48 FHM
0148 0b0000 NI
0149 0b0001 IMP
0150 EndEnum
0151 Enum 47:44 DP
0152 0b0000 NI
0153 0b0001 IMP
0154 EndEnum
0155 Enum 43:40 SM4
0156 0b0000 NI
0157 0b0001 IMP
0158 EndEnum
0159 Enum 39:36 SM3
0160 0b0000 NI
0161 0b0001 IMP
0162 EndEnum
0163 Enum 35:32 SHA3
0164 0b0000 NI
0165 0b0001 IMP
0166 EndEnum
0167 Enum 31:28 RDM
0168 0b0000 NI
0169 0b0001 IMP
0170 EndEnum
0171 Enum 27:24 TME
0172 0b0000 NI
0173 0b0001 IMP
0174 EndEnum
0175 Enum 23:20 ATOMIC
0176 0b0000 NI
0177 0b0010 IMP
0178 EndEnum
0179 Enum 19:16 CRC32
0180 0b0000 NI
0181 0b0001 IMP
0182 EndEnum
0183 Enum 15:12 SHA2
0184 0b0000 NI
0185 0b0001 SHA256
0186 0b0010 SHA512
0187 EndEnum
0188 Enum 11:8 SHA1
0189 0b0000 NI
0190 0b0001 IMP
0191 EndEnum
0192 Enum 7:4 AES
0193 0b0000 NI
0194 0b0001 AES
0195 0b0010 PMULL
0196 EndEnum
0197 Res0 3:0
0198 EndSysreg
0199
0200 Sysreg ID_AA64ISAR1_EL1 3 0 0 6 1
0201 Enum 63:60 LS64
0202 0b0000 NI
0203 0b0001 LS64
0204 0b0010 LS64_V
0205 0b0011 LS64_ACCDATA
0206 EndEnum
0207 Enum 59:56 XS
0208 0b0000 NI
0209 0b0001 IMP
0210 EndEnum
0211 Enum 55:52 I8MM
0212 0b0000 NI
0213 0b0001 IMP
0214 EndEnum
0215 Enum 51:48 DGH
0216 0b0000 NI
0217 0b0001 IMP
0218 EndEnum
0219 Enum 47:44 BF16
0220 0b0000 NI
0221 0b0001 IMP
0222 0b0010 EBF16
0223 EndEnum
0224 Enum 43:40 SPECRES
0225 0b0000 NI
0226 0b0001 IMP
0227 EndEnum
0228 Enum 39:36 SB
0229 0b0000 NI
0230 0b0001 IMP
0231 EndEnum
0232 Enum 35:32 FRINTTS
0233 0b0000 NI
0234 0b0001 IMP
0235 EndEnum
0236 Enum 31:28 GPI
0237 0b0000 NI
0238 0b0001 IMP
0239 EndEnum
0240 Enum 27:24 GPA
0241 0b0000 NI
0242 0b0001 IMP
0243 EndEnum
0244 Enum 23:20 LRCPC
0245 0b0000 NI
0246 0b0001 IMP
0247 0b0010 LRCPC2
0248 EndEnum
0249 Enum 19:16 FCMA
0250 0b0000 NI
0251 0b0001 IMP
0252 EndEnum
0253 Enum 15:12 JSCVT
0254 0b0000 NI
0255 0b0001 IMP
0256 EndEnum
0257 Enum 11:8 API
0258 0b0000 NI
0259 0b0001 PAuth
0260 0b0010 EPAC
0261 0b0011 PAuth2
0262 0b0100 FPAC
0263 0b0101 FPACCOMBINE
0264 EndEnum
0265 Enum 7:4 APA
0266 0b0000 NI
0267 0b0001 PAuth
0268 0b0010 EPAC
0269 0b0011 PAuth2
0270 0b0100 FPAC
0271 0b0101 FPACCOMBINE
0272 EndEnum
0273 Enum 3:0 DPB
0274 0b0000 NI
0275 0b0001 IMP
0276 0b0010 DPB2
0277 EndEnum
0278 EndSysreg
0279
0280 Sysreg ID_AA64ISAR2_EL1 3 0 0 6 2
0281 Res0 63:28
0282 Enum 27:24 PAC_frac
0283 0b0000 NI
0284 0b0001 IMP
0285 EndEnum
0286 Enum 23:20 BC
0287 0b0000 NI
0288 0b0001 IMP
0289 EndEnum
0290 Enum 19:16 MOPS
0291 0b0000 NI
0292 0b0001 IMP
0293 EndEnum
0294 Enum 15:12 APA3
0295 0b0000 NI
0296 0b0001 PAuth
0297 0b0010 EPAC
0298 0b0011 PAuth2
0299 0b0100 FPAC
0300 0b0101 FPACCOMBINE
0301 EndEnum
0302 Enum 11:8 GPA3
0303 0b0000 NI
0304 0b0001 IMP
0305 EndEnum
0306 Enum 7:4 RPRES
0307 0b0000 NI
0308 0b0001 IMP
0309 EndEnum
0310 Enum 3:0 WFxT
0311 0b0000 NI
0312 0b0010 IMP
0313 EndEnum
0314 EndSysreg
0315
0316 Sysreg SCTLR_EL1 3 0 1 0 0
0317 Field 63 TIDCP
0318 Field 62 SPINMASK
0319 Field 61 NMI
0320 Field 60 EnTP2
0321 Res0 59:58
0322 Field 57 EPAN
0323 Field 56 EnALS
0324 Field 55 EnAS0
0325 Field 54 EnASR
0326 Field 53 TME
0327 Field 52 TME0
0328 Field 51 TMT
0329 Field 50 TMT0
0330 Field 49:46 TWEDEL
0331 Field 45 TWEDEn
0332 Field 44 DSSBS
0333 Field 43 ATA
0334 Field 42 ATA0
0335 Enum 41:40 TCF
0336 0b00 NONE
0337 0b01 SYNC
0338 0b10 ASYNC
0339 0b11 ASYMM
0340 EndEnum
0341 Enum 39:38 TCF0
0342 0b00 NONE
0343 0b01 SYNC
0344 0b10 ASYNC
0345 0b11 ASYMM
0346 EndEnum
0347 Field 37 ITFSB
0348 Field 36 BT1
0349 Field 35 BT0
0350 Res0 34
0351 Field 33 MSCEn
0352 Field 32 CMOW
0353 Field 31 EnIA
0354 Field 30 EnIB
0355 Field 29 LSMAOE
0356 Field 28 nTLSMD
0357 Field 27 EnDA
0358 Field 26 UCI
0359 Field 25 EE
0360 Field 24 E0E
0361 Field 23 SPAN
0362 Field 22 EIS
0363 Field 21 IESB
0364 Field 20 TSCXT
0365 Field 19 WXN
0366 Field 18 nTWE
0367 Res0 17
0368 Field 16 nTWI
0369 Field 15 UCT
0370 Field 14 DZE
0371 Field 13 EnDB
0372 Field 12 I
0373 Field 11 EOS
0374 Field 10 EnRCTX
0375 Field 9 UMA
0376 Field 8 SED
0377 Field 7 ITD
0378 Field 6 nAA
0379 Field 5 CP15BEN
0380 Field 4 SA0
0381 Field 3 SA
0382 Field 2 C
0383 Field 1 A
0384 Field 0 M
0385 EndSysreg
0386
0387 SysregFields CPACR_ELx
0388 Res0 63:29
0389 Field 28 TTA
0390 Res0 27:26
0391 Field 25:24 SMEN
0392 Res0 23:22
0393 Field 21:20 FPEN
0394 Res0 19:18
0395 Field 17:16 ZEN
0396 Res0 15:0
0397 EndSysregFields
0398
0399 Sysreg CPACR_EL1 3 0 1 0 2
0400 Fields CPACR_ELx
0401 EndSysreg
0402
0403 Sysreg SMPRI_EL1 3 0 1 2 4
0404 Res0 63:4
0405 Field 3:0 PRIORITY
0406 EndSysreg
0407
0408 SysregFields ZCR_ELx
0409 Res0 63:9
0410 Raz 8:4
0411 Field 3:0 LEN
0412 EndSysregFields
0413
0414 Sysreg ZCR_EL1 3 0 1 2 0
0415 Fields ZCR_ELx
0416 EndSysreg
0417
0418 SysregFields SMCR_ELx
0419 Res0 63:32
0420 Field 31 FA64
0421 Res0 30:9
0422 Raz 8:4
0423 Field 3:0 LEN
0424 EndSysregFields
0425
0426 Sysreg SMCR_EL1 3 0 1 2 6
0427 Fields SMCR_ELx
0428 EndSysreg
0429
0430 Sysreg FAR_EL1 3 0 6 0 0
0431 Field 63:0 ADDR
0432 EndSysreg
0433
0434 SysregFields CONTEXTIDR_ELx
0435 Res0 63:32
0436 Field 31:0 PROCID
0437 EndSysregFields
0438
0439 Sysreg CONTEXTIDR_EL1 3 0 13 0 1
0440 Fields CONTEXTIDR_ELx
0441 EndSysreg
0442
0443 Sysreg CLIDR_EL1 3 1 0 0 1
0444 Res0 63:47
0445 Field 46:33 Ttypen
0446 Field 32:30 ICB
0447 Field 29:27 LoUU
0448 Field 26:24 LoC
0449 Field 23:21 LoUIS
0450 Field 20:18 Ctype7
0451 Field 17:15 Ctype6
0452 Field 14:12 Ctype5
0453 Field 11:9 Ctype4
0454 Field 8:6 Ctype3
0455 Field 5:3 Ctype2
0456 Field 2:0 Ctype1
0457 EndSysreg
0458
0459 Sysreg GMID_EL1 3 1 0 0 4
0460 Res0 63:4
0461 Field 3:0 BS
0462 EndSysreg
0463
0464 Sysreg SMIDR_EL1 3 1 0 0 6
0465 Res0 63:32
0466 Field 31:24 IMPLEMENTER
0467 Field 23:16 REVISION
0468 Field 15 SMPS
0469 Res0 14:12
0470 Field 11:0 AFFINITY
0471 EndSysreg
0472
0473 Sysreg CSSELR_EL1 3 2 0 0 0
0474 Res0 63:5
0475 Field 4 TnD
0476 Field 3:1 Level
0477 Field 0 InD
0478 EndSysreg
0479
0480 Sysreg CTR_EL0 3 3 0 0 1
0481 Res0 63:38
0482 Field 37:32 TminLine
0483 Res1 31
0484 Res0 30
0485 Field 29 DIC
0486 Field 28 IDC
0487 Field 27:24 CWG
0488 Field 23:20 ERG
0489 Field 19:16 DminLine
0490 Enum 15:14 L1Ip
0491 0b00 VPIPT
0492 # This is named as AIVIVT in the ARM but documented as reserved
0493 0b01 RESERVED
0494 0b10 VIPT
0495 0b11 PIPT
0496 EndEnum
0497 Res0 13:4
0498 Field 3:0 IminLine
0499 EndSysreg
0500
0501 Sysreg DCZID_EL0 3 3 0 0 7
0502 Res0 63:5
0503 Field 4 DZP
0504 Field 3:0 BS
0505 EndSysreg
0506
0507 Sysreg SVCR 3 3 4 2 2
0508 Res0 63:2
0509 Field 1 ZA
0510 Field 0 SM
0511 EndSysreg
0512
0513 Sysreg ZCR_EL2 3 4 1 2 0
0514 Fields ZCR_ELx
0515 EndSysreg
0516
0517 Sysreg SMPRIMAP_EL2 3 4 1 2 5
0518 Field 63:60 P15
0519 Field 59:56 P14
0520 Field 55:52 P13
0521 Field 51:48 P12
0522 Field 47:44 P11
0523 Field 43:40 P10
0524 Field 39:36 F9
0525 Field 35:32 P8
0526 Field 31:28 P7
0527 Field 27:24 P6
0528 Field 23:20 P5
0529 Field 19:16 P4
0530 Field 15:12 P3
0531 Field 11:8 P2
0532 Field 7:4 P1
0533 Field 3:0 P0
0534 EndSysreg
0535
0536 Sysreg SMCR_EL2 3 4 1 2 6
0537 Fields SMCR_ELx
0538 EndSysreg
0539
0540 Sysreg DACR32_EL2 3 4 3 0 0
0541 Res0 63:32
0542 Field 31:30 D15
0543 Field 29:28 D14
0544 Field 27:26 D13
0545 Field 25:24 D12
0546 Field 23:22 D11
0547 Field 21:20 D10
0548 Field 19:18 D9
0549 Field 17:16 D8
0550 Field 15:14 D7
0551 Field 13:12 D6
0552 Field 11:10 D5
0553 Field 9:8 D4
0554 Field 7:6 D3
0555 Field 5:4 D2
0556 Field 3:2 D1
0557 Field 1:0 D0
0558 EndSysreg
0559
0560 Sysreg FAR_EL2 3 4 6 0 0
0561 Field 63:0 ADDR
0562 EndSysreg
0563
0564 Sysreg CONTEXTIDR_EL2 3 4 13 0 1
0565 Fields CONTEXTIDR_ELx
0566 EndSysreg
0567
0568 Sysreg CPACR_EL12 3 5 1 0 2
0569 Fields CPACR_ELx
0570 EndSysreg
0571
0572 Sysreg ZCR_EL12 3 5 1 2 0
0573 Fields ZCR_ELx
0574 EndSysreg
0575
0576 Sysreg SMCR_EL12 3 5 1 2 6
0577 Fields SMCR_ELx
0578 EndSysreg
0579
0580 Sysreg FAR_EL12 3 5 6 0 0
0581 Field 63:0 ADDR
0582 EndSysreg
0583
0584 Sysreg CONTEXTIDR_EL12 3 5 13 0 1
0585 Fields CONTEXTIDR_ELx
0586 EndSysreg
0587
0588 SysregFields TTBRx_EL1
0589 Field 63:48 ASID
0590 Field 47:1 BADDR
0591 Field 0 CnP
0592 EndSysregFields
0593
0594 Sysreg TTBR0_EL1 3 0 2 0 0
0595 Fields TTBRx_EL1
0596 EndSysreg
0597
0598 Sysreg TTBR1_EL1 3 0 2 0 1
0599 Fields TTBRx_EL1
0600 EndSysreg
0601
0602 Sysreg LORSA_EL1 3 0 10 4 0
0603 Res0 63:52
0604 Field 51:16 SA
0605 Res0 15:1
0606 Field 0 Valid
0607 EndSysreg
0608
0609 Sysreg LOREA_EL1 3 0 10 4 1
0610 Res0 63:52
0611 Field 51:48 EA_51_48
0612 Field 47:16 EA_47_16
0613 Res0 15:0
0614 EndSysreg
0615
0616 Sysreg LORN_EL1 3 0 10 4 2
0617 Res0 63:8
0618 Field 7:0 Num
0619 EndSysreg
0620
0621 Sysreg LORC_EL1 3 0 10 4 3
0622 Res0 63:10
0623 Field 9:2 DS
0624 Res0 1
0625 Field 0 EN
0626 EndSysreg
0627
0628 Sysreg LORID_EL1 3 0 10 4 7
0629 Res0 63:24
0630 Field 23:16 LD
0631 Res0 15:8
0632 Field 7:0 LR
0633 EndSysreg