]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64/sysreg: Add remaining GICv5 ICC_ & ICH_ sysregs for KVM support
authorSascha Bischoff <Sascha.Bischoff@arm.com>
Thu, 19 Mar 2026 15:51:16 +0000 (15:51 +0000)
committerMarc Zyngier <maz@kernel.org>
Thu, 19 Mar 2026 18:21:27 +0000 (18:21 +0000)
Add the GICv5 system registers required to support native GICv5 guests
with KVM. Many of the GICv5 sysregs have already been added as part of
the host GICv5 driver, keeping this set relatively small. The
registers added in this change complete the set by adding those
required by KVM either directly (ICH_) or indirectly (FGTs for the
ICC_ sysregs).

The following system registers and their fields are added:

ICC_APR_EL1
ICC_HPPIR_EL1
ICC_IAFFIDR_EL1
ICH_APR_EL2
ICH_CONTEXTR_EL2
ICH_PPI_ACTIVER<n>_EL2
ICH_PPI_DVI<n>_EL2
ICH_PPI_ENABLER<n>_EL2
ICH_PPI_PENDR<n>_EL2
ICH_PPI_PRIORITYR<n>_EL2

Signed-off-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
Link: https://patch.msgid.link/20260319154937.3619520-7-sascha.bischoff@arm.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/tools/sysreg

index 9d1c2110805716858a7512142557f90781f7a35a..51dcca5b2fa6e0548e80019383c004dd2eacde31 100644 (file)
@@ -3243,6 +3243,14 @@ UnsignedEnum     3:0     ID_BITS
 EndEnum
 EndSysreg
 
+Sysreg ICC_HPPIR_EL1   3       0       12      10      3
+Res0   63:33
+Field  32      HPPIV
+Field  31:29   TYPE
+Res0   28:24
+Field  23:0    ID
+EndSysreg
+
 Sysreg ICC_ICSR_EL1    3       0       12      10      4
 Res0   63:48
 Field  47:32   IAFFID
@@ -3257,6 +3265,11 @@ Field    1       Enabled
 Field  0       F
 EndSysreg
 
+Sysreg ICC_IAFFIDR_EL1 3       0       12      10      5
+Res0   63:16
+Field  15:0    IAFFID
+EndSysreg
+
 SysregFields   ICC_PPI_ENABLERx_EL1
 Field  63      EN63
 Field  62      EN62
@@ -3663,6 +3676,42 @@ Res0     14:12
 Field  11:0    AFFINITY
 EndSysreg
 
+Sysreg ICC_APR_EL1     3       1       12      0       0
+Res0   63:32
+Field  31      P31
+Field  30      P30
+Field  29      P29
+Field  28      P28
+Field  27      P27
+Field  26      P26
+Field  25      P25
+Field  24      P24
+Field  23      P23
+Field  22      P22
+Field  21      P21
+Field  20      P20
+Field  19      P19
+Field  18      P18
+Field  17      P17
+Field  16      P16
+Field  15      P15
+Field  14      P14
+Field  13      P13
+Field  12      P12
+Field  11      P11
+Field  10      P10
+Field  9       P9
+Field  8       P8
+Field  7       P7
+Field  6       P6
+Field  5       P5
+Field  4       P4
+Field  3       P3
+Field  2       P2
+Field  1       P1
+Field  0       P0
+EndSysreg
+
 Sysreg ICC_CR0_EL1     3       1       12      0       1
 Res0   63:39
 Field  38      PID
@@ -4687,6 +4736,42 @@ Field    31:16   PhyPARTID29
 Field  15:0    PhyPARTID28
 EndSysreg
 
+Sysreg ICH_APR_EL2     3       4       12      8       4
+Res0   63:32
+Field  31      P31
+Field  30      P30
+Field  29      P29
+Field  28      P28
+Field  27      P27
+Field  26      P26
+Field  25      P25
+Field  24      P24
+Field  23      P23
+Field  22      P22
+Field  21      P21
+Field  20      P20
+Field  19      P19
+Field  18      P18
+Field  17      P17
+Field  16      P16
+Field  15      P15
+Field  14      P14
+Field  13      P13
+Field  12      P12
+Field  11      P11
+Field  10      P10
+Field  9       P9
+Field  8       P8
+Field  7       P7
+Field  6       P6
+Field  5       P5
+Field  4       P4
+Field  3       P3
+Field  2       P2
+Field  1       P1
+Field  0       P0
+EndSysreg
+
 Sysreg ICH_HFGRTR_EL2  3       4       12      9       4
 Res0   63:21
 Field  20      ICC_PPI_ACTIVERn_EL1
@@ -4735,6 +4820,306 @@ Field   1       GICCDDIS
 Field  0       GICCDEN
 EndSysreg
 
+SysregFields   ICH_PPI_DVIRx_EL2
+Field  63      DVI63
+Field  62      DVI62
+Field  61      DVI61
+Field  60      DVI60
+Field  59      DVI59
+Field  58      DVI58
+Field  57      DVI57
+Field  56      DVI56
+Field  55      DVI55
+Field  54      DVI54
+Field  53      DVI53
+Field  52      DVI52
+Field  51      DVI51
+Field  50      DVI50
+Field  49      DVI49
+Field  48      DVI48
+Field  47      DVI47
+Field  46      DVI46
+Field  45      DVI45
+Field  44      DVI44
+Field  43      DVI43
+Field  42      DVI42
+Field  41      DVI41
+Field  40      DVI40
+Field  39      DVI39
+Field  38      DVI38
+Field  37      DVI37
+Field  36      DVI36
+Field  35      DVI35
+Field  34      DVI34
+Field  33      DVI33
+Field  32      DVI32
+Field  31      DVI31
+Field  30      DVI30
+Field  29      DVI29
+Field  28      DVI28
+Field  27      DVI27
+Field  26      DVI26
+Field  25      DVI25
+Field  24      DVI24
+Field  23      DVI23
+Field  22      DVI22
+Field  21      DVI21
+Field  20      DVI20
+Field  19      DVI19
+Field  18      DVI18
+Field  17      DVI17
+Field  16      DVI16
+Field  15      DVI15
+Field  14      DVI14
+Field  13      DVI13
+Field  12      DVI12
+Field  11      DVI11
+Field  10      DVI10
+Field  9       DVI9
+Field  8       DVI8
+Field  7       DVI7
+Field  6       DVI6
+Field  5       DVI5
+Field  4       DVI4
+Field  3       DVI3
+Field  2       DVI2
+Field  1       DVI1
+Field  0       DVI0
+EndSysregFields
+
+Sysreg ICH_PPI_DVIR0_EL2       3       4       12      10      0
+Fields ICH_PPI_DVIx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_DVIR1_EL2       3       4       12      10      1
+Fields ICH_PPI_DVIx_EL2
+EndSysreg
+
+SysregFields   ICH_PPI_ENABLERx_EL2
+Field  63      EN63
+Field  62      EN62
+Field  61      EN61
+Field  60      EN60
+Field  59      EN59
+Field  58      EN58
+Field  57      EN57
+Field  56      EN56
+Field  55      EN55
+Field  54      EN54
+Field  53      EN53
+Field  52      EN52
+Field  51      EN51
+Field  50      EN50
+Field  49      EN49
+Field  48      EN48
+Field  47      EN47
+Field  46      EN46
+Field  45      EN45
+Field  44      EN44
+Field  43      EN43
+Field  42      EN42
+Field  41      EN41
+Field  40      EN40
+Field  39      EN39
+Field  38      EN38
+Field  37      EN37
+Field  36      EN36
+Field  35      EN35
+Field  34      EN34
+Field  33      EN33
+Field  32      EN32
+Field  31      EN31
+Field  30      EN30
+Field  29      EN29
+Field  28      EN28
+Field  27      EN27
+Field  26      EN26
+Field  25      EN25
+Field  24      EN24
+Field  23      EN23
+Field  22      EN22
+Field  21      EN21
+Field  20      EN20
+Field  19      EN19
+Field  18      EN18
+Field  17      EN17
+Field  16      EN16
+Field  15      EN15
+Field  14      EN14
+Field  13      EN13
+Field  12      EN12
+Field  11      EN11
+Field  10      EN10
+Field  9       EN9
+Field  8       EN8
+Field  7       EN7
+Field  6       EN6
+Field  5       EN5
+Field  4       EN4
+Field  3       EN3
+Field  2       EN2
+Field  1       EN1
+Field  0       EN0
+EndSysregFields
+
+Sysreg ICH_PPI_ENABLER0_EL2    3       4       12      10      2
+Fields ICH_PPI_ENABLERx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_ENABLER1_EL2    3       4       12      10      3
+Fields ICH_PPI_ENABLERx_EL2
+EndSysreg
+
+SysregFields   ICH_PPI_PENDRx_EL2
+Field  63      PEND63
+Field  62      PEND62
+Field  61      PEND61
+Field  60      PEND60
+Field  59      PEND59
+Field  58      PEND58
+Field  57      PEND57
+Field  56      PEND56
+Field  55      PEND55
+Field  54      PEND54
+Field  53      PEND53
+Field  52      PEND52
+Field  51      PEND51
+Field  50      PEND50
+Field  49      PEND49
+Field  48      PEND48
+Field  47      PEND47
+Field  46      PEND46
+Field  45      PEND45
+Field  44      PEND44
+Field  43      PEND43
+Field  42      PEND42
+Field  41      PEND41
+Field  40      PEND40
+Field  39      PEND39
+Field  38      PEND38
+Field  37      PEND37
+Field  36      PEND36
+Field  35      PEND35
+Field  34      PEND34
+Field  33      PEND33
+Field  32      PEND32
+Field  31      PEND31
+Field  30      PEND30
+Field  29      PEND29
+Field  28      PEND28
+Field  27      PEND27
+Field  26      PEND26
+Field  25      PEND25
+Field  24      PEND24
+Field  23      PEND23
+Field  22      PEND22
+Field  21      PEND21
+Field  20      PEND20
+Field  19      PEND19
+Field  18      PEND18
+Field  17      PEND17
+Field  16      PEND16
+Field  15      PEND15
+Field  14      PEND14
+Field  13      PEND13
+Field  12      PEND12
+Field  11      PEND11
+Field  10      PEND10
+Field  9       PEND9
+Field  8       PEND8
+Field  7       PEND7
+Field  6       PEND6
+Field  5       PEND5
+Field  4       PEND4
+Field  3       PEND3
+Field  2       PEND2
+Field  1       PEND1
+Field  0       PEND0
+EndSysregFields
+
+Sysreg ICH_PPI_PENDR0_EL2      3       4       12      10      4
+Fields ICH_PPI_PENDRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PENDR1_EL2      3       4       12      10      5
+Fields ICH_PPI_PENDRx_EL2
+EndSysreg
+
+SysregFields   ICH_PPI_ACTIVERx_EL2
+Field  63      ACTIVE63
+Field  62      ACTIVE62
+Field  61      ACTIVE61
+Field  60      ACTIVE60
+Field  59      ACTIVE59
+Field  58      ACTIVE58
+Field  57      ACTIVE57
+Field  56      ACTIVE56
+Field  55      ACTIVE55
+Field  54      ACTIVE54
+Field  53      ACTIVE53
+Field  52      ACTIVE52
+Field  51      ACTIVE51
+Field  50      ACTIVE50
+Field  49      ACTIVE49
+Field  48      ACTIVE48
+Field  47      ACTIVE47
+Field  46      ACTIVE46
+Field  45      ACTIVE45
+Field  44      ACTIVE44
+Field  43      ACTIVE43
+Field  42      ACTIVE42
+Field  41      ACTIVE41
+Field  40      ACTIVE40
+Field  39      ACTIVE39
+Field  38      ACTIVE38
+Field  37      ACTIVE37
+Field  36      ACTIVE36
+Field  35      ACTIVE35
+Field  34      ACTIVE34
+Field  33      ACTIVE33
+Field  32      ACTIVE32
+Field  31      ACTIVE31
+Field  30      ACTIVE30
+Field  29      ACTIVE29
+Field  28      ACTIVE28
+Field  27      ACTIVE27
+Field  26      ACTIVE26
+Field  25      ACTIVE25
+Field  24      ACTIVE24
+Field  23      ACTIVE23
+Field  22      ACTIVE22
+Field  21      ACTIVE21
+Field  20      ACTIVE20
+Field  19      ACTIVE19
+Field  18      ACTIVE18
+Field  17      ACTIVE17
+Field  16      ACTIVE16
+Field  15      ACTIVE15
+Field  14      ACTIVE14
+Field  13      ACTIVE13
+Field  12      ACTIVE12
+Field  11      ACTIVE11
+Field  10      ACTIVE10
+Field  9       ACTIVE9
+Field  8       ACTIVE8
+Field  7       ACTIVE7
+Field  6       ACTIVE6
+Field  5       ACTIVE5
+Field  4       ACTIVE4
+Field  3       ACTIVE3
+Field  2       ACTIVE2
+Field  1       ACTIVE1
+Field  0       ACTIVE0
+EndSysregFields
+
+Sysreg ICH_PPI_ACTIVER0_EL2    3       4       12      10      6
+Fields ICH_PPI_ACTIVERx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_ACTIVER1_EL2    3       4       12      10      7
+Fields ICH_PPI_ACTIVERx_EL2
+EndSysreg
+
 Sysreg ICH_HCR_EL2     3       4       12      11      0
 Res0   63:32
 Field  31:27   EOIcount
@@ -4789,6 +5174,18 @@ Field    1       V3
 Field  0       En
 EndSysreg
 
+Sysreg ICH_CONTEXTR_EL2        3       4       12      11      6
+Field  63      V
+Field  62      F
+Field  61      IRICHPPIDIS
+Field  60      DB
+Field  59:55   DBPM
+Res0   54:48
+Field  47:32   VPE
+Res0   31:16
+Field  15:0    VM
+EndSysreg
+
 Sysreg ICH_VMCR_EL2    3       4       12      11      7
 Prefix FEAT_GCIE
 Res0   63:32
@@ -4810,6 +5207,89 @@ Field    1       VENG1
 Field  0       VENG0
 EndSysreg
 
+SysregFields   ICH_PPI_PRIORITYRx_EL2
+Res0   63:61
+Field  60:56   Priority7
+Res0   55:53
+Field  52:48   Priority6
+Res0   47:45
+Field  44:40   Priority5
+Res0   39:37
+Field  36:32   Priority4
+Res0   31:29
+Field  28:24   Priority3
+Res0   23:21
+Field  20:16   Priority2
+Res0   15:13
+Field  12:8    Priority1
+Res0   7:5
+Field  4:0     Priority0
+EndSysregFields
+
+Sysreg ICH_PPI_PRIORITYR0_EL2  3       4       12      14      0
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR1_EL2  3       4       12      14      1
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR2_EL2  3       4       12      14      2
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR3_EL2  3       4       12      14      3
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR4_EL2  3       4       12      14      4
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR5_EL2  3       4       12      14      5
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR6_EL2  3       4       12      14      6
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR7_EL2  3       4       12      14      7
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR8_EL2  3       4       12      15      0
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR9_EL2  3       4       12      15      1
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR10_EL2 3       4       12      15      2
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR11_EL2 3       4       12      15      3
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR12_EL2 3       4       12      15      4
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR13_EL2 3       4       12      15      5
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR14_EL2 3       4       12      15      6
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
+Sysreg ICH_PPI_PRIORITYR15_EL2 3       4       12      15      7
+Fields ICH_PPI_PRIORITYRx_EL2
+EndSysreg
+
 Sysreg CONTEXTIDR_EL2  3       4       13      0       1
 Fields CONTEXTIDR_ELx
 EndSysreg