From: "Mian M. Hamayun" <m.hama...@virtualopensystems.com> This is the v2 of patch series that implements KVM support in QEMU for the ARMv8 Cortex A57 CPU. It depends on the previously submitted AArch64 preparation patch series v5 and machvirt patches, and uses the already available KVM in-kernel GIC support. Current implementation for 64-bit guests only, and 32-bit guest support will be introduced in near future.
As a reference, KVM Tool and the AArch64 bootwrapper were used, as well as public documentation from ARM. The following work has been tested with SMP capabilities, under ARMv8 Fast and Foundation Models (Open Embedded userspace with an emulated MMC). The v1 of this patch series related to AArch64 CPU model for Versatile Express was sponsored by Huawei, and developed in collaboration between Huawei Technologies Duesseldorf GmbH - European Research Center Munich (ERC) and Virtual Open Systems. A working tree of this implementation is available on the "kvm-aarch64-v2" branch of the following github repository. https://github.com/virtualopensystems/qemu/tree/kvm-aarch64-v2 Summary of Changes: Changes v1 -> v2 * Based on AArch64 Preparation Patchset V5 and machvirt patches. * Implemented for Machvirt Machine Model. * Architecture-specific CPU initialization code improved. Removed hardcoding from register set/get loops and introduced CPU target type array to find appropriate ARMv8 CPU type supported by KVM. * Disable the PSCI method in case of AArch64 and use the spin-table method instead for booting secondary CPUs. * 32-bit guest support still missing v1 * Based on AArch64 Preparation Patchset V4 * Implemented for Versatile Express Machine Model * Support for SMP using bootcode injection * No 32-bit guest support Alexander Spyridakis (1): AARCH64: Add SMP support for aarch64 processors Mian M. Hamayun (6): AARCH64: Add A57 CPU to default AArch64 configuration and enable KVM Add the additional parent parameter to memory region init calls AARCH64: Add aarch64 CPU initialization, get and put registers support AARCH64: Add boot support for aarch64 processor AARCH64: Disable the non-aarch64 specific reset code AARCH64: Use the spin-table method for booting secondary processors in machvirt configure | 2 +- default-configs/aarch64-softmmu.mak | 3 +- hw/arm/boot.c | 62 +++++++++++++++-- hw/arm/virt.c | 16 ++++- hw/cpu/a57mpcore.c | 2 +- linux-headers/linux/kvm.h | 1 + target-arm/kvm.c | 127 +++++++++++++++++++++++++++++++++++ 7 files changed, 201 insertions(+), 12 deletions(-) -- 1.7.9.5