On Wed, Oct 3, 2012 at 6:02 AM, Will Deacon <will.deacon@xxxxxxx> wrote: > On Tue, Oct 02, 2012 at 08:45:54PM +0100, Peter Maydell wrote: >> On 2 October 2012 20:28, Will Deacon <will.deacon@xxxxxxx> wrote: >> > On Tue, Oct 02, 2012 at 07:31:43PM +0100, Peter Maydell wrote: >> >> We probably want to be passing in the "base of the cpu-internal >> >> peripherals", rather than "base of the GIC" specifically. For the >> >> A15 these are the same thing, but that's not inherent [compare the >> >> A9 which has more devices at fixed offsets from a configurable >> >> base address]. >> > >> > If you do that, userspace will need a way to probe the emulated CPU so >> > that is knows exactly which set of peripherals there are and which ones it >> > needs to emulate. This feels pretty nasty, given that the vgic is handled >> > more or less completely by the kernel-side of things. >> >> Userspace knows what the emulated CPU is because it tells the >> kernel which CPU to provide -- the kernel can say "yes" or "no" but >> it can't provide a different CPU to the one we ask for, or >> one with bits mising... > > Aha, ok, I didn't realise that's how it works. Does userspace just pass the > CPUID or is there an identifier provided by kvm? > > /me jumps back into the code. > Userspace provides an identifier (0 for Cortex-A15). This changed in the last patch series, so as to only have one (public and internal) identifier used to index into the array of core-specific coprocessor handlings. -- 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