[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/11] AARCH64 support on machvirt machine model
From: |
Mian M. Hamayun |
Subject: |
[Qemu-devel] [PATCH v3 00/11] AARCH64 support on machvirt machine model using KVM |
Date: |
Fri, 27 Sep 2013 12:10:03 +0200 |
From: "Mian M. Hamayun" <address@hidden>
This is the v3 of patch series that implements KVM support in QEMU for the ARMv8
Cortex A57 CPU. It depends on the recently mainlined AArch64 preparation patch
series and machvirt patches version v7, and uses the already available KVM
in-kernel GIC support.
This implementation supports both 64-bit and 32-bit guests on AARCH64.
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 for both 64 and 32-bit guests, 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-v3"
branch of the following github repository.
https://github.com/virtualopensystems/qemu/tree/kvm-aarch64-v3
Summary of Changes:
Changes v2 -> v3
* Based on AArch64 Preparation Patchset (mainlined) and machvirt patch version
v7
* 32 and 64-bit KVM hooks have been separated into kvm_32.c and kvm_64.c,
whereas
common code resides in kvm.c
* SMP support is now implemented using PSCI method instead of the boot
injection
mechanism, as implemented in the previous versions
* 32-bit SMP guest support is now available
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
John Rigby (2):
ARM: arm64 kvm headers from kernel arm64-kvm tree
AARCH64: add a57core
Mian M. Hamayun (9):
AARCH64: Add A57 CPU to default AArch64 configuration and enable KVM
AARCH64: Separate 32-bit specific code from common KVM hooks
AARCH64: Add AARCH64 CPU initialization, get and put registers support
target-arm: Parameterize the bootloader selection and setup mechanism
AARCH64: Add boot support for aarch64 processor
AARCH64: Enable SMP support for aarch64 processors using PSCI method
AARCH64: Enable configure support for 32-bit guests on AARCH64
AARCH64: Add flags and boot parameters for 32-bit guests on AARCH64
AARCH64: Add 32-bit mode selection parameter
configure | 3 +-
default-configs/aarch64-softmmu.mak | 1 +
hw/arm/boot.c | 147 ++++++++++++--
hw/arm/virt.c | 8 +
hw/cpu/Makefile.objs | 1 +
hw/cpu/a57mpcore.c | 122 ++++++++++++
linux-headers/asm-arm64/kvm.h | 168 ++++++++++++++++
linux-headers/asm-arm64/kvm_para.h | 1 +
linux-headers/linux/kvm.h | 1 +
qemu-options.hx | 8 +
target-arm/Makefile.objs | 5 +
target-arm/cpu.c | 18 +-
target-arm/kvm.c | 363 ----------------------------------
target-arm/kvm_32.c | 382 ++++++++++++++++++++++++++++++++++++
target-arm/kvm_64.c | 146 ++++++++++++++
vl.c | 4 +
16 files changed, 997 insertions(+), 381 deletions(-)
create mode 100644 hw/cpu/a57mpcore.c
create mode 100644 linux-headers/asm-arm64/kvm.h
create mode 100644 linux-headers/asm-arm64/kvm_para.h
create mode 100644 target-arm/kvm_32.c
create mode 100644 target-arm/kvm_64.c
--
1.8.1.2
- [Qemu-devel] [PATCH v3 00/11] AARCH64 support on machvirt machine model using KVM,
Mian M. Hamayun <=
[Qemu-devel] [PATCH v3 03/11] AARCH64: Add A57 CPU to default AArch64 configuration and enable KVM, Mian M. Hamayun, 2013/09/27
[Qemu-devel] [PATCH v3 04/11] AARCH64: Separate 32-bit specific code from common KVM hooks, Mian M. Hamayun, 2013/09/27
[Qemu-devel] [PATCH v3 05/11] AARCH64: Add AARCH64 CPU initialization, get and put registers support, Mian M. Hamayun, 2013/09/27