From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33814) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7jJy-0001tz-Ov for qemu-devel@nongnu.org; Wed, 24 Jun 2015 07:58:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z7jJt-0000EX-Mx for qemu-devel@nongnu.org; Wed, 24 Jun 2015 07:58:26 -0400 Received: from mailout4.w1.samsung.com ([210.118.77.14]:8447) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z7jJt-0000Db-I7 for qemu-devel@nongnu.org; Wed, 24 Jun 2015 07:58:21 -0400 Received: from eucpsbgm1.samsung.com (unknown [203.254.199.244]) by mailout4.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NQG000JD6L5OIB0@mailout4.w1.samsung.com> for qemu-devel@nongnu.org; Wed, 24 Jun 2015 12:58:17 +0100 (BST) From: Pavel Fedin Date: Wed, 24 Jun 2015 14:58:07 +0300 Message-id: Subject: [Qemu-devel] [PATCH 0/2] Remove CP15 timer from the device tree if KVM is used without in-kernel irqchip List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Peter Crosthwaite , Pavel Fedin , Alexander Graf 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(+) -- 1.9.5.msysgit.0