From patchwork Thu Jan 30 16:11:02 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Campbell X-Patchwork-Id: 3558041 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 9C0CB9F382 for ; Thu, 30 Jan 2014 16:12:10 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id BCFD7201BB for ; Thu, 30 Jan 2014 16:12:05 +0000 (UTC) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D929520181 for ; Thu, 30 Jan 2014 16:12:00 +0000 (UTC) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W8uDS-0008TO-Q4; Thu, 30 Jan 2014 16:11:46 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1W8uDM-0003st-AF; Thu, 30 Jan 2014 16:11:40 +0000 Received: from smtp.citrix.com ([66.165.176.89]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1W8uDI-0003r3-QJ for linux-arm-kernel@lists.infradead.org; Thu, 30 Jan 2014 16:11:38 +0000 X-IronPort-AV: E=Sophos;i="4.95,750,1384300800"; d="scan'208";a="98154827" Received: from accessns.citrite.net (HELO FTLPEX01CL01.citrite.net) ([10.9.154.239]) by FTLPIPO01.CITRIX.COM with ESMTP; 30 Jan 2014 16:11:03 +0000 Received: from norwich.cam.xci-test.com (10.80.248.129) by smtprelay.citrix.com (10.13.107.78) with Microsoft SMTP Server id 14.2.342.4; Thu, 30 Jan 2014 11:11:03 -0500 Received: from cosworth.uk.xensource.com ([10.80.16.52] helo=cosworth.uk.xensource.com.) by norwich.cam.xci-test.com with esmtp (Exim 4.72) (envelope-from ) id 1W8uCk-0001TB-N8; Thu, 30 Jan 2014 16:11:02 +0000 From: Ian Campbell To: Subject: [PATCH] arm: document "mach-virt" platform. Date: Thu, 30 Jan 2014 16:11:02 +0000 Message-ID: <1391098262-15944-1-git-send-email-ian.campbell@citrix.com> X-Mailer: git-send-email 1.7.10.4 MIME-Version: 1.0 X-DLP: MIA2 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140130_111137_020735_4348802F X-CRM114-Status: GOOD ( 15.51 ) X-Spam-Score: -7.3 (-------) Cc: Mark Rutland , devicetree@vger.kernel.org, Ian Campbell , Pawel Moll , Stefano Stabellini , Marc Zyngier , Will Deacon , Rob Herring , Arnd Bergmann , Kumar Gala , Olof Johansson , linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP mach-virt has existed for a while but it is not written down what it actually consists of. Although it seems a bit unusual to document a binding for an entire platform since mach-virt is entirely virtual it is helpful to have something to refer to in the absence of a single concrete implementation. I've done my best to capture the requirements based on the git log and my memory/understanding. While here remove the xenvm dts example, the Xen tools will now build a suitable mach-virt compatible dts when launching the guest. Signed-off-by: Ian Campbell Cc: Rob Herring Cc: Pawel Moll Cc: Mark Rutland Cc: Kumar Gala Cc: Olof Johansson Cc: Arnd Bergmann Cc: Marc Zyngier Cc: Will Deacon Cc: Stefano Stabellini Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org --- I'm not sure which tree this sort of thing should go though, sorry for the huge Cc. --- .../devicetree/bindings/arm/mach-virt.txt | 32 ++++++++ arch/arm/boot/dts/xenvm-4.2.dts | 81 -------------------- 2 files changed, 32 insertions(+), 81 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/mach-virt.txt delete mode 100644 arch/arm/boot/dts/xenvm-4.2.dts diff --git a/Documentation/devicetree/bindings/arm/mach-virt.txt b/Documentation/devicetree/bindings/arm/mach-virt.txt new file mode 100644 index 0000000..562bcda --- /dev/null +++ b/Documentation/devicetree/bindings/arm/mach-virt.txt @@ -0,0 +1,32 @@ +* Mach-virt "Dummy Virtual Machine" platform + +"mach-virt" is the smallest, dumbest platform possible, to be used as +a guest for Xen, KVM and other hypervisors. It has no +properties/functionality of its own and is driven entirely by device +tree. + +This document defines the requirements for such a platform. + +* Required properties: + +- compatible: should be one of: + "linux,dummy-virt" + "xen,xenvm" + +In addition to the standard nodes (chosen, cpus, memory etc) the +platform is required to provide certain other basic functionality +which must be described in the device tree: + + The platform must provide an ARM Generic Interrupt Controller + (GIC), defined in Documentation/devicetree/bindings/arm/gic.txt. + + The platform must provide ARM architected timer, defined in + Documentation/devicetree/bindings/arm/arch_timer.txt. + + If the platform is SMP then it must provide the Power State + Coordination Interface (PSCI) described in + Documentation/devicetree/bindings/arm/psci.txt. + +The platform may also provide hypervisor specific functionality +(e.g. PV I/O), if it does so then this functionality must be +discoverable (directly or indirectly) via device tree. diff --git a/arch/arm/boot/dts/xenvm-4.2.dts b/arch/arm/boot/dts/xenvm-4.2.dts deleted file mode 100644 index 3369151..0000000 --- a/arch/arm/boot/dts/xenvm-4.2.dts +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Xen Virtual Machine for unprivileged guests - * - * Based on ARM Ltd. Versatile Express CoreTile Express (single CPU) - * Cortex-A15 MPCore (V2P-CA15) - * - */ - -/dts-v1/; - -/ { - model = "XENVM-4.2"; - compatible = "xen,xenvm-4.2", "xen,xenvm"; - interrupt-parent = <&gic>; - #address-cells = <2>; - #size-cells = <2>; - - chosen { - /* this field is going to be adjusted by the hypervisor */ - bootargs = "console=hvc0 root=/dev/xvda"; - }; - - cpus { - #address-cells = <1>; - #size-cells = <0>; - - cpu@0 { - device_type = "cpu"; - compatible = "arm,cortex-a15"; - reg = <0>; - }; - - cpu@1 { - device_type = "cpu"; - compatible = "arm,cortex-a15"; - reg = <1>; - }; - }; - - psci { - compatible = "arm,psci"; - method = "hvc"; - cpu_off = <1>; - cpu_on = <2>; - }; - - memory@80000000 { - device_type = "memory"; - /* this field is going to be adjusted by the hypervisor */ - reg = <0 0x80000000 0 0x08000000>; - }; - - gic: interrupt-controller@2c001000 { - compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic"; - #interrupt-cells = <3>; - #address-cells = <0>; - interrupt-controller; - reg = <0 0x2c001000 0 0x1000>, - <0 0x2c002000 0 0x100>; - }; - - timer { - compatible = "arm,armv7-timer"; - interrupts = <1 13 0xf08>, - <1 14 0xf08>, - <1 11 0xf08>, - <1 10 0xf08>; - }; - - hypervisor { - compatible = "xen,xen-4.2", "xen,xen"; - /* this field is going to be adjusted by the hypervisor */ - reg = <0 0xb0000000 0 0x20000>; - /* this field is going to be adjusted by the hypervisor */ - interrupts = <1 15 0xf08>; - }; - - motherboard { - arm,v2m-memory-map = "rs1"; - }; -};