History | View | Annotate | Download (9.4 kB)
target-arm: Add minimal KVM AArch64 support
Add the bare minimum set of functions needed for control of anAArch64 KVM vcpu: * CPU initialization * minimal get/put register functions which only handle the basic state of the CPU
Signed-off-by: Mian M. Hamayun <m.hamayun@virtualopensystems.com>...
target-arm/kvm: Split 32 bit only code into its own file
Split ARM KVM support code which is 32 bit specific out into itsown file, which we only compile on 32 bit hosts. This will giveus a place to add the 64 bit support code without adding lots ofifdefs to kvm.c....
target-arm: Don't hardcode KVM target CPU to be A15
Instead of assuming that a KVM target CPU must always be aCortex-A15 and hardcoding this in kvm_arch_init_vcpu(),store the KVM_ARM_TARGET_* value in the ARMCPU class,and use that.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>...
target-arm: Provide '-cpu host' when running KVM
Implement '-cpu host' for ARM when we're using KVM, broadlyin line with other KVM-supporting architectures.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>...
target-arm: Allow secondary KVM CPUs to be booted via PSCI
New ARM boards are generally expected to boot their secondary CPUsvia the PSCI interface, rather than ad-hoc "loop around in holdingpen code" as hw/arm/boot.c implements. In particular this isnecessary for mach-virt kernels. For KVM we achieve this by creating...
target-arm: Provide mechanism for getting KVM constants even if not CONFIG_KVM
There are a number of places where it would be convenient for ARMcode to have working definitions of KVM constants even in codewhich is compiled with CONFIG_KVM not set. In this situation we...
target-arm: fix sorting issue of KVM cpreg list
The compare_u64 function was not sorting the KVM cpreg_list in theright way due to the wrong returned value. Since we are comparingtwo 64bit values we can't simply return their difference if thereturned type is int....
memory: add ref/unref calls
Add ref/unref calls at the following places:
- places where memory regions are stashed by a listener and used outside the BQL (including in Xen or KVM).
- memory_region_find callsites
- creation of aliases and containers (only the aliased/contained...
target-arm: Convert TCG to using (index,value) list for cp migration
Convert the TCG ARM target to using an (index,value) list for migratingcoprocessors. The primary benefit of the (index,value) list is forpassing state between KVM and QEMU, but it works for TCG-to-TCG...
target-arm: Initialize cpreg list from KVM when using KVM
When using KVM, use the kernel's initial state to set up thecpreg list, and sync to and from the kernel when doingmigration.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target-arm: Reinitialize all KVM VCPU registers on reset
Since the ARM KVM API doesn't include a "reset this VCPU" ioctl, we have to capture the initial values of everyregister it knows about so that we can reset the VCPUby feeding those values back again....
target-arm: Use tuple list to sync cp regs with KVM
Use the tuple list of cp registers for syncing KVM state to QEMU,rather than only syncing a very minimal set by hand.
KVM: ARM: Add dummy kvm_arch_init_irq_routing()
The common KVM code insists on calling kvm_arch_init_irq_routing()as soon as it sees kernel header support for it (regardless of whetherQEMU supports it). Provide a dummy function to satisfy this.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>...
target-arm: Fix incorrect check of kvm_vcpu_ioctl return value
kvm_vcpu_ioctl() returns ETHING on error, not ETHING - correctan incorrect check in kvm_arch_init_vcpu(). This would not havehad any significant ill-effects -- we would just have propagated...
arm: fix location of some include files
The recent rearrangement of include files had some minor errors: devices.h is not ARM specific and should not be in arm/ arm.h should be in arm/
Move these two headers to correct this.
hw: move headers to include/
Many of these should be cleaned up with proper qdev-/QOM-ification.Right now there are many catch-all headers in include/hw/ARCH dependingon cpu.h, and this makes it necessary to compile these files per-target.However, fixing this does not belong in these patches....
target-arm: Use MemoryListener to identify GIC base address for KVM
When using an in-kernel GIC with KVM, we need to tell the kernel wherethe GIC's memory mapped registers live. Do this by registering aMemoryListener which tracks where the board model maps the A15's...
ARM KVM: save and load VFP registers from kernel
Add support for saving and restoring VFP register state from thekernel. This includes a check that the KVM-created CPU has fullVFP support (as the TCG Cortex-A15 model always does), since forthe moment ARM QEMU doesn't have any way to tweak optional features...
ARM: KVM: Add support for KVM on ARM architecture
Add basic support for KVM on ARM architecture.
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>[PMM: Minor tweaks and code cleanup, switch to ONE_REG]Signed-off-by: Peter Maydell <peter.maydell@linaro.org>...