#
0063d50c |
| 25-Apr-2017 |
Andre Przywara <andre.przywara@arm.com> |
arm: use static DT phandle for the GIC
As KVM supports only onc (v)GIC per guest and it's hard to imagine that we will ever need more than that, lets simplify the FDT generation by not passing that
arm: use static DT phandle for the GIC
As KVM supports only onc (v)GIC per guest and it's hard to imagine that we will ever need more than that, lets simplify the FDT generation by not passing that single, constant phandle around. Let's just reference that one global symbol from enum phandles instead.
Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
e300a5ee |
| 03-Apr-2016 |
Michael Ellerman <mpe@ellerman.id.au> |
Add basic infrastructure to run tasks on vCPUs
This patch adds kvm_cpu__run_on_all_cpus() to run a task on each vCPU. This infrastructure uses signals to signal the vCPU to allow a task to be added
Add basic infrastructure to run tasks on vCPUs
This patch adds kvm_cpu__run_on_all_cpus() to run a task on each vCPU. This infrastructure uses signals to signal the vCPU to allow a task to be added to each vCPU's task. The vCPU executes any pending tasks in the cpu run loop
Signed-off-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
ce6ae122 |
| 03-Jul-2015 |
Andre Przywara <andre.przywara@arm.com> |
arm: simplify MMIO dispatching
Currently we separate any incoming MMIO request into one of the ARM memory map regions and take care to spare the GIC. It turns out that this is unnecessary, as we onl
arm: simplify MMIO dispatching
Currently we separate any incoming MMIO request into one of the ARM memory map regions and take care to spare the GIC. It turns out that this is unnecessary, as we only have one special region (the IO port area in the first 64 KByte). The MMIO rbtree takes care about unhandled MMIO ranges, so we can simply drop all the special range checking (except that for the IO range) in kvm_cpu__emulate_mmio(). As the GIC is handled in the kernel, a GIC MMIO access should never reach userland (and we don't know what to do with it anyway). This lets us delete some more code and simplifies future extensions (like expanding the GIC regions). To be in line with the other architectures, move the now simpler code into a header file.
Signed-off-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
85bd726a |
| 06-Oct-2014 |
Anup Patel <anup.patel@linaro.org> |
kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu
Instead, of trying out each and every target type we should use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target type
kvmtool: ARM: Use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target cpu
Instead, of trying out each and every target type we should use KVM_ARM_PREFERRED_TARGET vm ioctl to determine target type for KVM ARM/ARM64.
If KVM_ARM_PREFERRED_TARGET vm ioctl fails then we fallback to old method of trying all known target types.
If KVM_ARM_PREFERRED_TARGET vm ioctl succeeds but the returned target type is not known to KVMTOOL then we forcefully init VCPU with target type returned by KVM_ARM_PREFERRED_TARGET vm ioctl.
Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org> Signed-off-by: Anup Patel <anup.patel@linaro.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
show more ...
|
#
4123ca55 |
| 27-May-2014 |
Marc Zyngier <marc.zyngier@arm.com> |
kvmtool: virtio: pass trapped vcpu to IO accessors
The recent introduction of bi-endianness on arm/arm64 had the odd effect of breaking virtio-pci support on these platforms, as the device endian fi
kvmtool: virtio: pass trapped vcpu to IO accessors
The recent introduction of bi-endianness on arm/arm64 had the odd effect of breaking virtio-pci support on these platforms, as the device endian field defaults to being VIRTIO_ENDIAN_HOST, which is the wrong thing to have on a bi-endian capable architecture.
The fix is to check for the endianness on the ioport path the same way we do it for mmio, which implies passing the vcpu all the way down. Patch is a bit ugly, but aligns MMIO and ioport nicely.
Tested on arm64 and x86.
Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
9b735910 |
| 08-May-2014 |
Marc Zyngier <marc.zyngier@arm.com> |
kvmtool: pass trapped vcpu to MMIO accessors
In order to be able to find out about the endianness of a virtual CPU, it is necessary to pass a pointer to the kvm_cpu structure down to the MMIO access
kvmtool: pass trapped vcpu to MMIO accessors
In order to be able to find out about the endianness of a virtual CPU, it is necessary to pass a pointer to the kvm_cpu structure down to the MMIO accessors.
This patch just pushes such pointer as far as required for the MMIO accessors to have a play with the vcpu.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
d06bc640 |
| 06-Jan-2014 |
Marc Zyngier <Marc.Zyngier@arm.com> |
kvm tools: arm: emit the MPIDR in DT instead of cpu_id
kvmtools uses the virtual CPU number to emit the DT CPU nodes. While this is correct for a flat topology, it fails on anything else, as the gue
kvm tools: arm: emit the MPIDR in DT instead of cpu_id
kvmtools uses the virtual CPU number to emit the DT CPU nodes. While this is correct for a flat topology, it fails on anything else, as the guest expects to find the MPIDR there.
The fix is to ask the kernel for each vcpu MPIDR, and emit this instead.
Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
9b47146b |
| 11-Apr-2013 |
Marc Zyngier <Marc.Zyngier@arm.com> |
kvm tools: arm: add CPU compatible string to target structure
Instead of hardcoding the CPU compatible string, store it in the target descriptor. This allows similar CPUs to be managed by the same b
kvm tools: arm: add CPU compatible string to target structure
Instead of hardcoding the CPU compatible string, store it in the target descriptor. This allows similar CPUs to be managed by the same backend, and yet have different compatible properties.
Also remove a check for a condition that can never occur in both A15 and A57 backends.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
61076240 |
| 07-Jan-2013 |
Will Deacon <will.deacon@arm.com> |
kvm tools: arm: add support for PSCI firmware in place of spin-tables
ARM has recently published a document describing a firmware interface for CPU power management, which can be used for booting se
kvm tools: arm: add support for PSCI firmware in place of spin-tables
ARM has recently published a document describing a firmware interface for CPU power management, which can be used for booting secondary cores on an SMP platform, amongst other things. As part of the mach-virt upstreaming for the kernel (that is, the virtual platform targetted by kvmtool), it was suggested that we use this interface instead of the current spin-table based approach.
This patch implements PSCI support in kvmtool for ARM, removing a fair amount of code in the process.
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
92d534e0 |
| 05-Dec-2012 |
Will Deacon <will.deacon@arm.com> |
kvm tools: arm: fixup pre-processor guards for kvm-cpu-arch.h
Cosmetic patch to correct the pre-processor guards for arm in kvm-cpu-arch.h. It's not something to lose sleep over but I find it incred
kvm tools: arm: fixup pre-processor guards for kvm-cpu-arch.h
Cosmetic patch to correct the pre-processor guards for arm in kvm-cpu-arch.h. It's not something to lose sleep over but I find it incredibly irritating!
Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|
#
7c0e8b0c |
| 23-Nov-2012 |
Will Deacon <will.deacon@arm.com> |
kvm tools: add support for ARMv7 processors
This patch adds initial support for ARMv7 processors (more specifically, Cortex-A15) to kvmtool.
Everything is driven by FDT, including dynamic generatio
kvm tools: add support for ARMv7 processors
This patch adds initial support for ARMv7 processors (more specifically, Cortex-A15) to kvmtool.
Everything is driven by FDT, including dynamic generation of virtio nodes for MMIO devices (PCI is not used due to lack of a suitable host-bridge).
The virtual timers and virtual interrupt controller (VGIC) are provided by the kernel and require very little in terms of userspace code.
Tested-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
show more ...
|