Skip to content

Remove CP15 timer from the device tree if KVM is used without in-kernel irqchip

Pavel Fedin qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 7 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2Introduce qemu_fdt_remove_compatible()device_tree.c include/sysemu/device_tree.h+20 -00 replies
2/2Remove CP15 timer from the device tree if KVM is used without in-kernel irqchiphw/arm/boot.c+5 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH 0/2] Remove CP15 timer from the device tree if KVM is used without in-kernel irqchip

Certain machines do not have working vGIC hardware. Linux kernel (at least up to v4) has configuration options which would still allow to use KVM, but GIC and timer have to be emulated in userspace. Unfortunately, ARM CPUs do not have an option to trap access to CP15 virtual timer registers. Consequently, timer operations cannot be trapped and emulated.

The only possibility to work around is to use another timer hardware which is memory-mapped and can be emulated by qemu. In order to make guest kernel ignoring CP15 timer, we remove it from machine's device tree.

Of course this works only with machine models which actually have these timers (like vexpress).

Pavel Fedin (2):
Introduce qemu_fdt_remove_compatible()
Remove CP15 timer from the device tree if KVM is used without
in-kernel irqchip

 device_tree.c                | 10 ++++++++++
 hw/arm/boot.c                |  5 +++++
 include/sysemu/device_tree.h | 10 ++++++++++
 3 files changed, 25 insertions(+)
Signature · 1 line
1.9.5.msysgit.0