arm64/sysreg: Add remaining GICv5 ICC_ & ICH_ sysregs for KVM support

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>
This commit is contained in:
Sascha Bischoff 2026-03-19 15:51:16 +00:00 committed by Marc Zyngier
parent 663594aafb
commit 2808a83370

View 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