From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47609) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7pUA-0003jF-78 for qemu-devel@nongnu.org; Fri, 09 Aug 2013 12:24:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V7pU7-00045R-BU for qemu-devel@nongnu.org; Fri, 09 Aug 2013 12:24:18 -0400 Received: from 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.d.1.0.0.b.8.0.1.0.0.2.ip6.arpa ([2001:8b0:1d0::1]:59180 helo=mnementh.archaic.org.uk) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V7pU7-00045M-39 for qemu-devel@nongnu.org; Fri, 09 Aug 2013 12:24:15 -0400 From: Peter Maydell Date: Fri, 9 Aug 2013 17:23:17 +0100 Message-Id: <1376065399-26785-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH v5 0/2] hw/arm: add 'virt' platform List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Anup Patel , kvmarm@lists.cs.columbia.edu, "Mian M. Hamayun" , patches@linaro.org This patch series adds a 'virt' platform which uses the kernel's mach-virt (fully device-tree driven) support to create a simple minimalist platform intended for use for KVM VM guests. It's based on John Rigby's patches, but I've overhauled it a lot: * renamed user-facing machine to just "virt" * removed the A9 support (it can't work since the A9 has no generic timers) * added virtio-mmio transports instead of random set of 'soc' devices * instead of updating io_base as we step through adding devices, define a memory map with an array (similar to vexpress) * folded in some minor fixes from John's aarch64-support patch * rather than explicitly doing endian-swapping on FDT cells, use fdt APIs that let us just pass in host-endian values and let the fdt layer take care of the swapping * miscellaneous minor code cleanups and style fixes If you want to test this with TCG QEMU you'll also need the generic-timers implementation patches I posted recently. A branch with generic-timers plus these patches is here: https://git.linaro.org/gitweb?p=people/pmaydell/qemu-arm.git;a=shortlog;h=refs/heads/mach-virt (The kernel in pure mach-virt mode requires generic timers; it can't deal with getting its clock source from an sp804 timer specified by the device tree. This might be fixed in a future kernel, but dropping all the soc-device support from mach-virt makes it simpler anyway.) An obvious thing this machine does not provide is a serial port. I would rather just use virtio-console (and we should implement the 'emergency console/earlyprintk' bit of the virtio spec). Changes v4->v5: * removed outdated TODO remarks from commit messages * adjusted the memory map as per Anup's review comments John Rigby (2): hw/arm/boot: Allow boards to provide an fdt blob hw/arm: Add 'virt' platform hw/arm/Makefile.objs | 2 +- hw/arm/boot.c | 32 +++-- hw/arm/virt.c | 363 ++++++++++++++++++++++++++++++++++++++++++++++++++ include/hw/arm/arm.h | 7 + 4 files changed, 391 insertions(+), 13 deletions(-) create mode 100644 hw/arm/virt.c -- 1.7.9.5