Hello,
This patch series adds support for ARMv7 processors (Cortex-A15) to kvm
tool. The majority of the series consists of small changes in
preparation for ARM support, which is added by the final patch. I can
try to split this up further, but given that there is no current support
for ARM, the sub-patches wouldn't be especially meaningful.
To boot a guest, you will need:
- A Cortex-A15 platform with a kvm-capable bootloader
- The latest kvm-arm patches:
git://github.com/virtualopensystems/linux-kvm-arm.git kvm-arm-master
- A guest kernel configured for our virtual target:
git://git.kernel.org/pub/scm/linux/kernel/git/will/kvmtool.git kvm/mach-virt
I'm also working on an ARMv8 (AArch64) port which fits neatly into the
code presented here.
All feedback welcome,
Will
Will Deacon (16):
kvm tools: include arch uapi/asm directories in include path
kvm tools: only enable LTO if supported by GCC
kvm tools: avoid linking dynamically against libbfd
kvm tools: specify compiler by name when overriding make default
kvm tools: don't bother including linux/compiler.h
kvm tools: don't pass -Wcast-align to the compiler
kvm tools: die if init_list__init returns failure
kvm tools: add generic device registration mechanism
kvm tools: make _FDT macro usable by other architectures
kvm tools: virtio-mmio: use subsys_id instead of pci device ID
kvm tools: virtio: add dummy set_size_vq implementations
kvm tools: allow arch to specify default virtio transport
kvm tools: keep track of registered memory banks in struct kvm
kvm tools: teach guest_flat_to_host about memory banks starting above
0
kvm tools: provide a mechanism for translating host to guest
addresses
kvm tools: add support for ARMv7 processors
tools/kvm/Makefile | 38 +++-
tools/kvm/arm/aarch32/cortex-a15.c | 98 ++++++++++
tools/kvm/arm/aarch32/include/kvm/barrier.h | 10 +
tools/kvm/arm/aarch32/include/kvm/kvm-arch.h | 28 +++
tools/kvm/arm/aarch32/kvm-cpu.c | 111 +++++++++++
tools/kvm/arm/aarch32/smp-pen.S | 14 ++
tools/kvm/arm/fdt.c | 269 ++++++++++++++++++++++++++
tools/kvm/arm/gic.c | 86 ++++++++
tools/kvm/arm/include/arm-common/gic.h | 29 +++
tools/kvm/arm/include/arm-common/kvm-arch.h | 31 +++
tools/kvm/arm/include/arm-common/smp.h | 7 +
tools/kvm/arm/include/kvm/kvm-cpu-arch.h | 47 +++++
tools/kvm/arm/ioport.c | 5 +
tools/kvm/arm/irq.c | 25 +++
tools/kvm/arm/kvm-cpu.c | 112 +++++++++++
tools/kvm/arm/kvm.c | 69 +++++++
tools/kvm/arm/smp.c | 13 ++
tools/kvm/builtin-run.c | 3 +-
tools/kvm/devices.c | 24 +++
tools/kvm/hw/pci-shmem.c | 8 +-
tools/kvm/hw/vesa.c | 8 +-
tools/kvm/include/kvm/devices.h | 21 ++
tools/kvm/include/kvm/fdt.h | 26 +++
tools/kvm/include/kvm/kvm.h | 16 +-
tools/kvm/include/kvm/pci.h | 2 -
tools/kvm/include/kvm/virtio-mmio.h | 1 +
tools/kvm/include/kvm/virtio-pci.h | 2 +
tools/kvm/include/linux/stddef.h | 6 -
tools/kvm/kvm.c | 55 +++++-
tools/kvm/pci.c | 40 ++---
tools/kvm/powerpc/include/kvm/kvm-arch.h | 13 +-
tools/kvm/powerpc/irq.c | 3 +-
tools/kvm/powerpc/kvm.c | 2 +-
tools/kvm/powerpc/spapr_pci.c | 4 +-
tools/kvm/virtio/9p.c | 10 +-
tools/kvm/virtio/balloon.c | 3 +-
tools/kvm/virtio/blk.c | 3 +-
tools/kvm/virtio/console.c | 10 +-
tools/kvm/virtio/mmio.c | 9 +-
tools/kvm/virtio/pci.c | 7 +-
tools/kvm/virtio/rng.c | 10 +-
tools/kvm/virtio/scsi.c | 3 +-
tools/kvm/x86/include/kvm/kvm-arch.h | 11 +-
tools/kvm/x86/kvm.c | 7 +
44 files changed, 1214 insertions(+), 85 deletions(-)
create mode 100644 tools/kvm/arm/aarch32/cortex-a15.c
create mode 100644 tools/kvm/arm/aarch32/include/kvm/barrier.h
create mode 100644 tools/kvm/arm/aarch32/include/kvm/kvm-arch.h
create mode 100644 tools/kvm/arm/aarch32/kvm-cpu.c
create mode 100644 tools/kvm/arm/aarch32/smp-pen.S
create mode 100644 tools/kvm/arm/fdt.c
create mode 100644 tools/kvm/arm/gic.c
create mode 100644 tools/kvm/arm/include/arm-common/gic.h
create mode 100644 tools/kvm/arm/include/arm-common/kvm-arch.h
create mode 100644 tools/kvm/arm/include/arm-common/smp.h
create mode 100644 tools/kvm/arm/include/kvm/kvm-cpu-arch.h
create mode 100644 tools/kvm/arm/ioport.c
create mode 100644 tools/kvm/arm/irq.c
create mode 100644 tools/kvm/arm/kvm-cpu.c
create mode 100644 tools/kvm/arm/kvm.c
create mode 100644 tools/kvm/arm/smp.c
create mode 100644 tools/kvm/devices.c
create mode 100644 tools/kvm/include/kvm/devices.h
create mode 100644 tools/kvm/include/kvm/fdt.h
--
1.7.4.1
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html