This patchset wires up our new Cortex-A57 emulation into the "virt" machine model. Rather than the somewhat hacky approach in the previous system emulation patchsets, I've decided that our best approach is to have the board model create the GIC itself. This essentially corresponds to modelling a board with a standalone GIC -- you can see this in some real hardware which uses a GIC-400. I think this makes more sense than either borrowing the a15mpcore_priv device, or creating an a57mpcore_priv device (since the A57 does not actually have a built-in GICv2). To handle hosts with 64K pages in KVM mode, we need to amke sure our GIC puts its GICC and GICD at 64K boundaries (so that the host kernel can map a 64K host page with the host GICV in as the guest GICC). For consistency, we make the 'virt' machine's GIC the same for all supported CPUs; 32 bit CPUs don't need the 64K spacing, but they don't object to it either, and it's simpler to use the same memory map for everything rather than fiddle with it based on CPU features. Peter Maydell (3): hw/arm/virt: Create the GIC ourselves rather than (ab)using a15mpcore_priv hw/arm/virt: Put GIC register banks on 64K boundaries hw/arm/virt: Add support for Cortex-A57 hw/arm/virt.c | 93 +++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 32 deletions(-) -- 1.9.2 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm