Skip to content

Commit f68df3a

Browse files
Marc Zyngieroupton
authored andcommitted
KVM: arm64: Document registers exposed via KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS
We never documented which GICv3 registers are available for save/restore via the KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS interface. Let's take the opportunity of adding the EL2 registers to document the whole thing in one go. Signed-off-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ oliver: fix trailing whitespace ] Signed-off-by: Oliver Upton <[email protected]>
1 parent 3a90b6f commit f68df3a

File tree

1 file changed

+58
-5
lines changed

1 file changed

+58
-5
lines changed

Documentation/virt/kvm/devices/arm-vgic-v3.rst

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -202,16 +202,69 @@ Groups:
202202
KVM_DEV_ARM_VGIC_GRP_CPU_SYSREGS accesses the CPU interface registers for the
203203
CPU specified by the mpidr field.
204204

205-
CPU interface registers access is not implemented for AArch32 mode.
206-
Error -ENXIO is returned when accessed in AArch32 mode.
205+
The available registers are:
206+
207+
=============== ====================================================
208+
ICC_PMR_EL1
209+
ICC_BPR0_EL1
210+
ICC_AP0R0_EL1
211+
ICC_AP0R1_EL1 when the host implements at least 6 bits of priority
212+
ICC_AP0R2_EL1 when the host implements 7 bits of priority
213+
ICC_AP0R3_EL1 when the host implements 7 bits of priority
214+
ICC_AP1R0_EL1
215+
ICC_AP1R1_EL1 when the host implements at least 6 bits of priority
216+
ICC_AP1R2_EL1 when the host implements 7 bits of priority
217+
ICC_AP1R3_EL1 when the host implements 7 bits of priority
218+
ICC_BPR1_EL1
219+
ICC_CTLR_EL1
220+
ICC_SRE_EL1
221+
ICC_IGRPEN0_EL1
222+
ICC_IGRPEN1_EL1
223+
=============== ====================================================
224+
225+
When EL2 is available for the guest, these registers are also available:
226+
227+
============= ====================================================
228+
ICH_AP0R0_EL2
229+
ICH_AP0R1_EL2 when the host implements at least 6 bits of priority
230+
ICH_AP0R2_EL2 when the host implements 7 bits of priority
231+
ICH_AP0R3_EL2 when the host implements 7 bits of priority
232+
ICH_AP1R0_EL2
233+
ICH_AP1R1_EL2 when the host implements at least 6 bits of priority
234+
ICH_AP1R2_EL2 when the host implements 7 bits of priority
235+
ICH_AP1R3_EL2 when the host implements 7 bits of priority
236+
ICH_HCR_EL2
237+
ICC_SRE_EL2
238+
ICH_VTR_EL2
239+
ICH_VMCR_EL2
240+
ICH_LR0_EL2
241+
ICH_LR1_EL2
242+
ICH_LR2_EL2
243+
ICH_LR3_EL2
244+
ICH_LR4_EL2
245+
ICH_LR5_EL2
246+
ICH_LR6_EL2
247+
ICH_LR7_EL2
248+
ICH_LR8_EL2
249+
ICH_LR9_EL2
250+
ICH_LR10_EL2
251+
ICH_LR11_EL2
252+
ICH_LR12_EL2
253+
ICH_LR13_EL2
254+
ICH_LR14_EL2
255+
ICH_LR15_EL2
256+
============= ====================================================
257+
258+
CPU interface registers are only described using the AArch64
259+
encoding.
207260

208261
Errors:
209262

210-
======= =====================================================
211-
-ENXIO Getting or setting this register is not yet supported
263+
======= =================================================
264+
-ENXIO Getting or setting this register is not supported
212265
-EBUSY VCPU is running
213266
-EINVAL Invalid mpidr or register value supplied
214-
======= =====================================================
267+
======= =================================================
215268

216269

217270
KVM_DEV_ARM_VGIC_GRP_NR_IRQS

0 commit comments

Comments
 (0)