Message ID | 20181122030914.16274-1-kys@linuxonhyperv.com (mailing list archive) |
---|---|
Headers | show
Return-Path: <linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org> Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9878514DE for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 22 Nov 2018 03:11:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 83E032C4C9 for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 22 Nov 2018 03:11:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 76B4F2C782; Thu, 22 Nov 2018 03:11:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1294B2C4C9 for <patchwork-linux-arm@patchwork.kernel.org>; Thu, 22 Nov 2018 03:11:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:Reply-To:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date: Subject:To:From:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=pnRCEibiebG6Cdqahus28ivwCUHlfjre8YWfB4unTn8=; b=A35LdY7nRSlvlK wE+GrloNBrInI+S8zEb3EPS55TT3RAevOKt5szxqv+5lCOeW1LZUX7v2Ax+kR0zvfDcPyWmQI5bkQ b7/b6NWfxx3JWWyPUVCsoj7mSDm+fOUbfAMSNeWxwQR3VQW+PKk2Cli8IhOZV/8k+sjVZxfeIGlSY AKwoqymI0pN2UroICA9RFf1X2WppS4ryve/6ihbBdp4zvyRXi5OqAME3N1IbGEeMO62j7UakKuROP UxolP1GdPsLZe5o5qqVB2u3hJwCljF0iEzRifxMftCHxRdgAGtwNwZ/SzcoHQPodJSjF07TXi0gLu OoXYIHMXlOLYR8e0QDhA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gPfOd-0005V8-Tw; Thu, 22 Nov 2018 03:11:15 +0000 Received: from a2nlsmtp01-05.prod.iad2.secureserver.net ([198.71.225.49]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gPfOX-0005Kz-Rs for linux-arm-kernel@lists.infradead.org; Thu, 22 Nov 2018 03:11:14 +0000 Received: from linuxonhyperv2.linuxonhyperv.com ([107.180.71.197]) by : HOSTING RELAY : with ESMTP id PfMigqyEMse9VPfMigyvBh; Wed, 21 Nov 2018 20:09:16 -0700 x-originating-ip: 107.180.71.197 Received: from kys by linuxonhyperv2.linuxonhyperv.com with local (Exim 4.91) (envelope-from <kys@linuxonhyperv2.linuxonhyperv.com>) id 1gPfMi-0004FB-5J; Wed, 21 Nov 2018 20:09:16 -0700 From: kys@linuxonhyperv.com To: will.deacon@arm.com, catalin.marinas@armm.com, mark.rutland@arm.com, marc.zyngier@arm.com, linux-arm-kernel@lists.infradead.org, gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, jasowang@redhat.com, sthemmin@microsoft.com, Michael.H.Kelley@microsoft.com, vkuznets@redhat.com Subject: [PATCH 0/4] Hyper-V: Enable Linux guests on Hyper-V on ARM64 Date: Thu, 22 Nov 2018 03:09:14 +0000 Message-Id: <20181122030914.16274-1-kys@linuxonhyperv.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-CMAE-Envelope: MS4wfO4UCel2TN4PKno+wg36SaJV57cKu0LDwil6qRUUtef/Xrc6Yqd7kX9O0wJZN0YsEY9XZQDgkS4nwryBHsNwz6xnUsNtXfqaEiHDkSQV2e/tU2DoTkqB 5xPUZY6AIfiWs6kBzvuW4a/MQJu0sz5sLZZSnPispnVOeabZ181VPPeSEdnGApmoDetPSomci3piApl8g4PT1kJQZsRyri0/Xto3U6CteauxWrO3JbLVycrv BSBTS9yMRsbpUtl/kaJei7qfczLavU6qmjoYBtmJUWsIoO0iBddHvmUXOWnaFKCwwU1DmFJTGRIFTiP0yj3tXT7CEMW2gSIGV3jQzXifUn9qYqK0CoEbCbN2 +ZY48Mm3smnEbWx6JTZPWycbdCOU1XDjjzqJpkJuDQU8eXG4BCv3EFkK5i1x25CTsn6Jr38vxlp34ps5uuCbSH0kWMd0DqAM9H2OuEtT3Vc4Lt6ed6ZK/JwS bB3YIZn7eeZNHfyYKUtK2ZIxDmEVWWay5KnGlirjIkHYXtRuXC3/V2PDv7x+8dnMZrd36ZWr79pdQeSu3uY5AHdObEGjUhvJLCNT+UiIITIDyCXfigrULr/O GtZ5iomojHfGd//OVuMReuZGlIkb4fH4vwKfSior1KcyBF9U/yH/WM9X5rNyUVtLHnZ5lQBYETOO/1tGI54nOLtODeRBCtOZMqde3dZNt1fPqNzlQtD4e2mm 9ELboxxOqtA= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20181121_191109_956818_CE999F41 X-CRM114-Status: GOOD ( 13.66 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: <linux-arm-kernel.lists.infradead.org> List-Unsubscribe: <http://lists.infradead.org/mailman/options/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=unsubscribe> List-Archive: <http://lists.infradead.org/pipermail/linux-arm-kernel/> List-Post: <mailto:linux-arm-kernel@lists.infradead.org> List-Help: <mailto:linux-arm-kernel-request@lists.infradead.org?subject=help> List-Subscribe: <http://lists.infradead.org/mailman/listinfo/linux-arm-kernel>, <mailto:linux-arm-kernel-request@lists.infradead.org?subject=subscribe> Reply-To: kys@microsoft.com Cc: "K. Y. Srinivasan" <kys@microsoft.com> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" <linux-arm-kernel-bounces@lists.infradead.org> Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP |
Series |
Hyper-V: Enable Linux guests on Hyper-V on ARM64
|
expand
|
From: "K. Y. Srinivasan" <kys@microsoft.com> This series enables Linux guests running on Hyper-V on ARM64 hardware. New ARM64-specific code in arch/arm64/hyperv initializes Hyper-V, including its synthetic clocks and hypercall mechanism. Existing architecture independent drivers for Hyper-V's VMbus and synthetic devices just work when built for ARM64. Hyper-V code is built and included in the image and modules only if CONFIG_HYPERV is enabled. The four patches are organized as follows: 1) Add include files that define the Hyper-V interface as described in the Hyper-V Top Level Functional Spec (TLFS), plus additional definitions specific to Linux running on Hyper-V. 2) Add core Hyper-V support on ARM64, including hypercalls, synthetic clock initialization, and interrupt handlers. 3) Update the existing VMbus driver to generalize interrupt management across x86/x64 and ARM64. 4) Make CONFIG_HYPERV selectable on ARM64 in addition to x86/x64. Some areas of Linux guests on Hyper-V on ARM64 are a work- in-progress, primarily due to work still being done in Hyper-V: * Hyper-V on ARM64 currently runs with a 4 Kbyte page size, and only supports guests with a 4 Kbyte page size. Because Hyper-V uses shared pages to communicate between the guest and the hypervisor, there are open design decisions on the page size to use when the guest is using 16K/64K pages. Once those issues are resolved and Hyper-V fully supports 16K/64K guest pages, changes may be needed in the Linux drivers for Hyper-V synthetic devices. * Hyper-V on ARM64 does not currently support mapping PCI devices into the guest address space. The Hyper-V PCI driver at drivers/pci/host/pci-hyperv.c has x86/x64-specific code and is not being built for ARM64. In a few cases, terminology from the x86/x64 world has been carried over into the ARM64 code ("MSR", "TSC"). Hyper-V still uses the x86/x64 terminology and has not replaced it with something more generic, so the code uses the Hyper-V terminology. This will be fixed when Hyper-V updates the usage in the TLFS. Michael Kelley (4): arm64: hyperv: Add core Hyper-V include files arm64: hyperv: Add support for Hyper-V as a hypervisor Drivers: hv: vmbus: Add hooks for per-CPU IRQ Drivers: hv: Enable CONFIG_HYPERV on ARM64 MAINTAINERS | 4 + arch/arm64/Makefile | 1 + arch/arm64/hyperv/Makefile | 2 + arch/arm64/hyperv/hv_hvc.S | 54 ++++ arch/arm64/hyperv/hv_init.c | 441 +++++++++++++++++++++++++++ arch/arm64/hyperv/mshyperv.c | 178 +++++++++++ arch/arm64/include/asm/hyperv-tlfs.h | 338 ++++++++++++++++++++ arch/arm64/include/asm/mshyperv.h | 116 +++++++ arch/x86/include/asm/mshyperv.h | 4 + drivers/hv/Kconfig | 3 +- drivers/hv/hv.c | 2 + include/asm-generic/mshyperv.h | 240 +++++++++++++++ 12 files changed, 1382 insertions(+), 1 deletion(-) create mode 100644 arch/arm64/hyperv/Makefile create mode 100644 arch/arm64/hyperv/hv_hvc.S create mode 100644 arch/arm64/hyperv/hv_init.c create mode 100644 arch/arm64/hyperv/mshyperv.c create mode 100644 arch/arm64/include/asm/hyperv-tlfs.h create mode 100644 arch/arm64/include/asm/mshyperv.h create mode 100644 include/asm-generic/mshyperv.h