On 7 December 2015 at 12:29, Pavel Fedin <p.fedin@xxxxxxxxxxx> wrote: > From: Christoffer Dall <christoffer.dall@xxxxxxxxxx> > > Factor out the GICv3-specific documentation into a separate > documentation file. Add description for how to access distributor, > redistributor, and CPU interface registers for GICv3 in this new file. > + KVM_DEV_ARM_VGIC_GRP_DIST_REGS > + KVM_DEV_ARM_VGIC_GRP_REDIST_REGS > + Attributes: > + The attr field of kvm_device_attr encodes two values: > + bits: | 63 .... 32 | 31 .... 0 | > + values: | mpidr | offset | > + > + All distributor regs are (rw, 64-bit). > + > + KVM_DEV_ARM_VGIC_GRP_DIST_REGS accesses the main distributor registers. > + KVM_DEV_ARM_VGIC_GRP_REDIST_REGS accesses the redistributor of the CPU > + specified by the mpidr. > + > + The offset is relative to the "[Re]Distributor base address" as defined > + in the GICv3/4 specs. Getting or setting such a register has the same > + effect as reading or writing the register on real hardware, and the mpidr > + field is used to specify which redistributor is accessed. The mpidr is > + ignored for the distributor. I've just noticed an awkward wrinkle here. The (optional) registers GICR_STATUSR and GICD_STATUSR are both architecturally "write-1-to-clear", with no mechanism in the hardware to write 1 bits back into them. So if we want to support migrating these state fields, the behaviour of the userspace accessor has to be something different from the effect of writing the register on real hardware (eg "writes actually write the specified value")... thanks -- PMM -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html