Commit 2808a833 authored by Sascha Bischoff's avatar Sascha Bischoff Committed by Marc Zyngier
Browse files

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: default avatarSascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: default avatarJonathan Cameron <jonathan.cameron@huawei.com>
Link: https://patch.msgid.link/20260319154937.3619520-7-sascha.bischoff@arm.com


Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 663594aa
Loading
Loading
Loading
Loading
+480 −0
Original line number Diff line number Diff line
@@ -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