* [PATCH v12 1/5] arm64: hyperv: Add Hyper-V hypercall and register access utilities
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
@ 2021-08-04 15:52 ` Michael Kelley
2021-08-04 15:52 ` [PATCH v12 2/5] arm64: hyperv: Add panic handler Michael Kelley
` (5 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 15:52 UTC (permalink / raw)
To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
Cc: mikelley
hyperv-tlfs.h defines Hyper-V interfaces from the Hyper-V Top Level
Functional Spec (TLFS), and #includes the architecture-independent
part of hyperv-tlfs.h in include/asm-generic. The published TLFS
is distinctly oriented to x86/x64, so the ARM64-specific
hyperv-tlfs.h includes information for ARM64 that is not yet formally
published. The TLFS is available here:
docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs
mshyperv.h defines Linux-specific structures and routines for
interacting with Hyper-V on ARM64, and #includes the architecture-
independent part of mshyperv.h in include/asm-generic.
Use these definitions to provide utility functions to make
Hyper-V hypercalls and to get and set Hyper-V provided
registers associated with a virtual processor.
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
---
MAINTAINERS | 3 +
arch/arm64/Kbuild | 1 +
arch/arm64/hyperv/Makefile | 2 +
arch/arm64/hyperv/hv_core.c | 129 +++++++++++++++++++++++++++++++++++
arch/arm64/include/asm/hyperv-tlfs.h | 69 +++++++++++++++++++
arch/arm64/include/asm/mshyperv.h | 54 +++++++++++++++
6 files changed, 258 insertions(+)
create mode 100644 arch/arm64/hyperv/Makefile
create mode 100644 arch/arm64/hyperv/hv_core.c
create mode 100644 arch/arm64/include/asm/hyperv-tlfs.h
create mode 100644 arch/arm64/include/asm/mshyperv.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 6993219..8f6f429 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8608,6 +8608,9 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
F: Documentation/ABI/stable/sysfs-bus-vmbus
F: Documentation/ABI/testing/debugfs-hyperv
F: Documentation/networking/device_drivers/ethernet/microsoft/netvsc.rst
+F: arch/arm64/hyperv
+F: arch/arm64/include/asm/hyperv-tlfs.h
+F: arch/arm64/include/asm/mshyperv.h
F: arch/x86/hyperv
F: arch/x86/include/asm/hyperv-tlfs.h
F: arch/x86/include/asm/mshyperv.h
diff --git a/arch/arm64/Kbuild b/arch/arm64/Kbuild
index 7b393cf..ea7ab4c 100644
--- a/arch/arm64/Kbuild
+++ b/arch/arm64/Kbuild
@@ -2,4 +2,5 @@
obj-y += kernel/ mm/ net/
obj-$(CONFIG_KVM) += kvm/
obj-$(CONFIG_XEN) += xen/
+obj-$(subst m,y,$(CONFIG_HYPERV)) += hyperv/
obj-$(CONFIG_CRYPTO) += crypto/
diff --git a/arch/arm64/hyperv/Makefile b/arch/arm64/hyperv/Makefile
new file mode 100644
index 0000000..1697d30
--- /dev/null
+++ b/arch/arm64/hyperv/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-y := hv_core.o
diff --git a/arch/arm64/hyperv/hv_core.c b/arch/arm64/hyperv/hv_core.c
new file mode 100644
index 0000000..4c5dc0f
--- /dev/null
+++ b/arch/arm64/hyperv/hv_core.c
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * Low level utility routines for interacting with Hyper-V.
+ *
+ * Copyright (C) 2021, Microsoft, Inc.
+ *
+ * Author : Michael Kelley <mikelley@microsoft.com>
+ */
+
+#include <linux/types.h>
+#include <linux/export.h>
+#include <linux/mm.h>
+#include <linux/hyperv.h>
+#include <linux/arm-smccc.h>
+#include <linux/module.h>
+#include <asm-generic/bug.h>
+#include <asm/hyperv-tlfs.h>
+#include <asm/mshyperv.h>
+
+/*
+ * hv_do_hypercall- Invoke the specified hypercall
+ */
+u64 hv_do_hypercall(u64 control, void *input, void *output)
+{
+ struct arm_smccc_res res;
+ u64 input_address;
+ u64 output_address;
+
+ input_address = input ? virt_to_phys(input) : 0;
+ output_address = output ? virt_to_phys(output) : 0;
+
+ arm_smccc_1_1_hvc(HV_FUNC_ID, control,
+ input_address, output_address, &res);
+ return res.a0;
+}
+EXPORT_SYMBOL_GPL(hv_do_hypercall);
+
+/*
+ * hv_do_fast_hypercall8 -- Invoke the specified hypercall
+ * with arguments in registers instead of physical memory.
+ * Avoids the overhead of virt_to_phys for simple hypercalls.
+ */
+
+u64 hv_do_fast_hypercall8(u16 code, u64 input)
+{
+ struct arm_smccc_res res;
+ u64 control;
+
+ control = (u64)code | HV_HYPERCALL_FAST_BIT;
+
+ arm_smccc_1_1_hvc(HV_FUNC_ID, control, input, &res);
+ return res.a0;
+}
+EXPORT_SYMBOL_GPL(hv_do_fast_hypercall8);
+
+/*
+ * Set a single VP register to a 64-bit value.
+ */
+void hv_set_vpreg(u32 msr, u64 value)
+{
+ struct arm_smccc_res res;
+
+ arm_smccc_1_1_hvc(HV_FUNC_ID,
+ HVCALL_SET_VP_REGISTERS | HV_HYPERCALL_FAST_BIT |
+ HV_HYPERCALL_REP_COMP_1,
+ HV_PARTITION_ID_SELF,
+ HV_VP_INDEX_SELF,
+ msr,
+ 0,
+ value,
+ 0,
+ &res);
+
+ /*
+ * Something is fundamentally broken in the hypervisor if
+ * setting a VP register fails. There's really no way to
+ * continue as a guest VM, so panic.
+ */
+ BUG_ON(!hv_result_success(res.a0));
+}
+EXPORT_SYMBOL_GPL(hv_set_vpreg);
+
+/*
+ * Get the value of a single VP register. One version
+ * returns just 64 bits and another returns the full 128 bits.
+ * The two versions are separate to avoid complicating the
+ * calling sequence for the more frequently used 64 bit version.
+ */
+
+void hv_get_vpreg_128(u32 msr, struct hv_get_vp_registers_output *result)
+{
+ struct arm_smccc_1_2_regs args;
+ struct arm_smccc_1_2_regs res;
+
+ args.a0 = HV_FUNC_ID;
+ args.a1 = HVCALL_GET_VP_REGISTERS | HV_HYPERCALL_FAST_BIT |
+ HV_HYPERCALL_REP_COMP_1;
+ args.a2 = HV_PARTITION_ID_SELF;
+ args.a3 = HV_VP_INDEX_SELF;
+ args.a4 = msr;
+
+ /*
+ * Use the SMCCC 1.2 interface because the results are in registers
+ * beyond X0-X3.
+ */
+ arm_smccc_1_2_hvc(&args, &res);
+
+ /*
+ * Something is fundamentally broken in the hypervisor if
+ * getting a VP register fails. There's really no way to
+ * continue as a guest VM, so panic.
+ */
+ BUG_ON(!hv_result_success(res.a0));
+
+ result->as64.low = res.a6;
+ result->as64.high = res.a7;
+}
+EXPORT_SYMBOL_GPL(hv_get_vpreg_128);
+
+u64 hv_get_vpreg(u32 msr)
+{
+ struct hv_get_vp_registers_output output;
+
+ hv_get_vpreg_128(msr, &output);
+
+ return output.as64.low;
+}
+EXPORT_SYMBOL_GPL(hv_get_vpreg);
diff --git a/arch/arm64/include/asm/hyperv-tlfs.h b/arch/arm64/include/asm/hyperv-tlfs.h
new file mode 100644
index 0000000..4d964a7
--- /dev/null
+++ b/arch/arm64/include/asm/hyperv-tlfs.h
@@ -0,0 +1,69 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+/*
+ * This file contains definitions from the Hyper-V Hypervisor Top-Level
+ * Functional Specification (TLFS):
+ * https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs
+ *
+ * Copyright (C) 2021, Microsoft, Inc.
+ *
+ * Author : Michael Kelley <mikelley@microsoft.com>
+ */
+
+#ifndef _ASM_HYPERV_TLFS_H
+#define _ASM_HYPERV_TLFS_H
+
+#include <linux/types.h>
+
+/*
+ * All data structures defined in the TLFS that are shared between Hyper-V
+ * and a guest VM use Little Endian byte ordering. This matches the default
+ * byte ordering of Linux running on ARM64, so no special handling is required.
+ */
+
+/*
+ * These Hyper-V registers provide information equivalent to the CPUID
+ * instruction on x86/x64.
+ */
+#define HV_REGISTER_HYPERVISOR_VERSION 0x00000100 /*CPUID 0x40000002 */
+#define HV_REGISTER_FEATURES 0x00000200 /*CPUID 0x40000003 */
+#define HV_REGISTER_ENLIGHTENMENTS 0x00000201 /*CPUID 0x40000004 */
+
+/*
+ * Group C Features. See the asm-generic version of hyperv-tlfs.h
+ * for a description of Feature Groups.
+ */
+
+/* Crash MSRs available */
+#define HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE BIT(8)
+
+/* STIMER direct mode is available */
+#define HV_STIMER_DIRECT_MODE_AVAILABLE BIT(13)
+
+/*
+ * Synthetic register definitions equivalent to MSRs on x86/x64
+ */
+#define HV_REGISTER_CRASH_P0 0x00000210
+#define HV_REGISTER_CRASH_P1 0x00000211
+#define HV_REGISTER_CRASH_P2 0x00000212
+#define HV_REGISTER_CRASH_P3 0x00000213
+#define HV_REGISTER_CRASH_P4 0x00000214
+#define HV_REGISTER_CRASH_CTL 0x00000215
+
+#define HV_REGISTER_GUEST_OSID 0x00090002
+#define HV_REGISTER_VP_INDEX 0x00090003
+#define HV_REGISTER_TIME_REF_COUNT 0x00090004
+#define HV_REGISTER_REFERENCE_TSC 0x00090017
+
+#define HV_REGISTER_SINT0 0x000A0000
+#define HV_REGISTER_SCONTROL 0x000A0010
+#define HV_REGISTER_SIEFP 0x000A0012
+#define HV_REGISTER_SIMP 0x000A0013
+#define HV_REGISTER_EOM 0x000A0014
+
+#define HV_REGISTER_STIMER0_CONFIG 0x000B0000
+#define HV_REGISTER_STIMER0_COUNT 0x000B0001
+
+#include <asm-generic/hyperv-tlfs.h>
+
+#endif
diff --git a/arch/arm64/include/asm/mshyperv.h b/arch/arm64/include/asm/mshyperv.h
new file mode 100644
index 0000000..20070a8
--- /dev/null
+++ b/arch/arm64/include/asm/mshyperv.h
@@ -0,0 +1,54 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+
+/*
+ * Linux-specific definitions for managing interactions with Microsoft's
+ * Hyper-V hypervisor. The definitions in this file are specific to
+ * the ARM64 architecture. See include/asm-generic/mshyperv.h for
+ * definitions are that architecture independent.
+ *
+ * Definitions that are specified in the Hyper-V Top Level Functional
+ * Spec (TLFS) should not go in this file, but should instead go in
+ * hyperv-tlfs.h.
+ *
+ * Copyright (C) 2021, Microsoft, Inc.
+ *
+ * Author : Michael Kelley <mikelley@microsoft.com>
+ */
+
+#ifndef _ASM_MSHYPERV_H
+#define _ASM_MSHYPERV_H
+
+#include <linux/types.h>
+#include <linux/arm-smccc.h>
+#include <asm/hyperv-tlfs.h>
+
+/*
+ * Declare calls to get and set Hyper-V VP register values on ARM64, which
+ * requires a hypercall.
+ */
+
+void hv_set_vpreg(u32 reg, u64 value);
+u64 hv_get_vpreg(u32 reg);
+void hv_get_vpreg_128(u32 reg, struct hv_get_vp_registers_output *result);
+
+static inline void hv_set_register(unsigned int reg, u64 value)
+{
+ hv_set_vpreg(reg, value);
+}
+
+static inline u64 hv_get_register(unsigned int reg)
+{
+ return hv_get_vpreg(reg);
+}
+
+/* SMCCC hypercall parameters */
+#define HV_SMCCC_FUNC_NUMBER 1
+#define HV_FUNC_ID ARM_SMCCC_CALL_VAL( \
+ ARM_SMCCC_STD_CALL, \
+ ARM_SMCCC_SMC_64, \
+ ARM_SMCCC_OWNER_VENDOR_HYP, \
+ HV_SMCCC_FUNC_NUMBER)
+
+#include <asm-generic/mshyperv.h>
+
+#endif
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v12 2/5] arm64: hyperv: Add panic handler
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
2021-08-04 15:52 ` [PATCH v12 1/5] arm64: hyperv: Add Hyper-V hypercall and register access utilities Michael Kelley
@ 2021-08-04 15:52 ` Michael Kelley
2021-08-04 15:52 ` [PATCH v12 3/5] arm64: hyperv: Initialize hypervisor on boot Michael Kelley
` (4 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 15:52 UTC (permalink / raw)
To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
Cc: mikelley
Add a function to inform Hyper-V about a guest panic.
This code is built only when CONFIG_HYPERV is enabled.
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Sunil Muthuswamy <sunilmut@microsoft.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
---
arch/arm64/hyperv/hv_core.c | 52 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/arch/arm64/hyperv/hv_core.c b/arch/arm64/hyperv/hv_core.c
index 4c5dc0f..b54c347 100644
--- a/arch/arm64/hyperv/hv_core.c
+++ b/arch/arm64/hyperv/hv_core.c
@@ -127,3 +127,55 @@ u64 hv_get_vpreg(u32 msr)
return output.as64.low;
}
EXPORT_SYMBOL_GPL(hv_get_vpreg);
+
+/*
+ * hyperv_report_panic - report a panic to Hyper-V. This function uses
+ * the older version of the Hyper-V interface that admittedly doesn't
+ * pass enough information to be useful beyond just recording the
+ * occurrence of a panic. The parallel hv_kmsg_dump() uses the
+ * new interface that allows reporting 4 Kbytes of data, which is much
+ * more useful. Hyper-V on ARM64 always supports the newer interface, but
+ * we retain support for the older version because the sysadmin is allowed
+ * to disable the newer version via sysctl in case of information security
+ * concerns about the more verbose version.
+ */
+void hyperv_report_panic(struct pt_regs *regs, long err, bool in_die)
+{
+ static bool panic_reported;
+ u64 guest_id;
+
+ /* Don't report a panic to Hyper-V if we're not going to panic */
+ if (in_die && !panic_on_oops)
+ return;
+
+ /*
+ * We prefer to report panic on 'die' chain as we have proper
+ * registers to report, but if we miss it (e.g. on BUG()) we need
+ * to report it on 'panic'.
+ *
+ * Calling code in the 'die' and 'panic' paths ensures that only
+ * one CPU is running this code, so no atomicity is needed.
+ */
+ if (panic_reported)
+ return;
+ panic_reported = true;
+
+ guest_id = hv_get_vpreg(HV_REGISTER_GUEST_OSID);
+
+ /*
+ * Hyper-V provides the ability to store only 5 values.
+ * Pick the passed in error value, the guest_id, the PC,
+ * and the SP.
+ */
+ hv_set_vpreg(HV_REGISTER_CRASH_P0, err);
+ hv_set_vpreg(HV_REGISTER_CRASH_P1, guest_id);
+ hv_set_vpreg(HV_REGISTER_CRASH_P2, regs->pc);
+ hv_set_vpreg(HV_REGISTER_CRASH_P3, regs->sp);
+ hv_set_vpreg(HV_REGISTER_CRASH_P4, 0);
+
+ /*
+ * Let Hyper-V know there is crash data available
+ */
+ hv_set_vpreg(HV_REGISTER_CRASH_CTL, HV_CRASH_CTL_CRASH_NOTIFY);
+}
+EXPORT_SYMBOL_GPL(hyperv_report_panic);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v12 3/5] arm64: hyperv: Initialize hypervisor on boot
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
2021-08-04 15:52 ` [PATCH v12 1/5] arm64: hyperv: Add Hyper-V hypercall and register access utilities Michael Kelley
2021-08-04 15:52 ` [PATCH v12 2/5] arm64: hyperv: Add panic handler Michael Kelley
@ 2021-08-04 15:52 ` Michael Kelley
2021-08-04 15:52 ` [PATCH v12 4/5] arm64: efi: Export screen_info Michael Kelley
` (3 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 15:52 UTC (permalink / raw)
To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
Cc: mikelley
Add ARM64-specific code to initialize the Hyper-V
hypervisor when booting as a guest VM.
This code is built only when CONFIG_HYPERV is enabled.
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
---
arch/arm64/hyperv/Makefile | 2 +-
arch/arm64/hyperv/mshyperv.c | 87 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 88 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/hyperv/mshyperv.c
diff --git a/arch/arm64/hyperv/Makefile b/arch/arm64/hyperv/Makefile
index 1697d30..87c31c0 100644
--- a/arch/arm64/hyperv/Makefile
+++ b/arch/arm64/hyperv/Makefile
@@ -1,2 +1,2 @@
# SPDX-License-Identifier: GPL-2.0
-obj-y := hv_core.o
+obj-y := hv_core.o mshyperv.o
diff --git a/arch/arm64/hyperv/mshyperv.c b/arch/arm64/hyperv/mshyperv.c
new file mode 100644
index 0000000..bbbe351
--- /dev/null
+++ b/arch/arm64/hyperv/mshyperv.c
@@ -0,0 +1,87 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+ * Core routines for interacting with Microsoft's Hyper-V hypervisor,
+ * including hypervisor initialization.
+ *
+ * Copyright (C) 2021, Microsoft, Inc.
+ *
+ * Author : Michael Kelley <mikelley@microsoft.com>
+ */
+
+#include <linux/types.h>
+#include <linux/acpi.h>
+#include <linux/export.h>
+#include <linux/errno.h>
+#include <linux/version.h>
+#include <linux/cpuhotplug.h>
+#include <asm/mshyperv.h>
+
+static bool hyperv_initialized;
+
+static int __init hyperv_init(void)
+{
+ struct hv_get_vp_registers_output result;
+ u32 a, b, c, d;
+ u64 guest_id;
+ int ret;
+
+ /*
+ * Allow for a kernel built with CONFIG_HYPERV to be running in
+ * a non-Hyper-V environment, including on DT instead of ACPI.
+ * In such cases, do nothing and return success.
+ */
+ if (acpi_disabled)
+ return 0;
+
+ if (strncmp((char *)&acpi_gbl_FADT.hypervisor_id, "MsHyperV", 8))
+ return 0;
+
+ /* Setup the guest ID */
+ guest_id = generate_guest_id(0, LINUX_VERSION_CODE, 0);
+ hv_set_vpreg(HV_REGISTER_GUEST_OSID, guest_id);
+
+ /* Get the features and hints from Hyper-V */
+ hv_get_vpreg_128(HV_REGISTER_FEATURES, &result);
+ ms_hyperv.features = result.as32.a;
+ ms_hyperv.priv_high = result.as32.b;
+ ms_hyperv.misc_features = result.as32.c;
+
+ hv_get_vpreg_128(HV_REGISTER_ENLIGHTENMENTS, &result);
+ ms_hyperv.hints = result.as32.a;
+
+ pr_info("Hyper-V: privilege flags low 0x%x, high 0x%x, hints 0x%x, misc 0x%x\n",
+ ms_hyperv.features, ms_hyperv.priv_high, ms_hyperv.hints,
+ ms_hyperv.misc_features);
+
+ /* Get information about the Hyper-V host version */
+ hv_get_vpreg_128(HV_REGISTER_HYPERVISOR_VERSION, &result);
+ a = result.as32.a;
+ b = result.as32.b;
+ c = result.as32.c;
+ d = result.as32.d;
+ pr_info("Hyper-V: Host Build %d.%d.%d.%d-%d-%d\n",
+ b >> 16, b & 0xFFFF, a, d & 0xFFFFFF, c, d >> 24);
+
+ ret = hv_common_init();
+ if (ret)
+ return ret;
+
+ ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "arm64/hyperv_init:online",
+ hv_common_cpu_init, hv_common_cpu_die);
+ if (ret < 0) {
+ hv_common_free();
+ return ret;
+ }
+
+ hyperv_initialized = true;
+ return 0;
+}
+
+early_initcall(hyperv_init);
+
+bool hv_is_hyperv_initialized(void)
+{
+ return hyperv_initialized;
+}
+EXPORT_SYMBOL_GPL(hv_is_hyperv_initialized);
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v12 4/5] arm64: efi: Export screen_info
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
` (2 preceding siblings ...)
2021-08-04 15:52 ` [PATCH v12 3/5] arm64: hyperv: Initialize hypervisor on boot Michael Kelley
@ 2021-08-04 15:52 ` Michael Kelley
2021-08-04 15:52 ` [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64 Michael Kelley
` (2 subsequent siblings)
6 siblings, 0 replies; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 15:52 UTC (permalink / raw)
To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
Cc: mikelley
The Hyper-V frame buffer driver may be built as a module, and
it needs access to screen_info. So export screen_info.
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
---
arch/arm64/kernel/efi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/kernel/efi.c b/arch/arm64/kernel/efi.c
index fa02efb..e1be6c4 100644
--- a/arch/arm64/kernel/efi.c
+++ b/arch/arm64/kernel/efi.c
@@ -55,6 +55,7 @@ static __init pteval_t create_mapping_protection(efi_memory_desc_t *md)
/* we will fill this structure from the stub, so don't put it in .bss */
struct screen_info screen_info __section(".data");
+EXPORT_SYMBOL(screen_info);
int __init efi_create_mapping(struct mm_struct *mm, efi_memory_desc_t *md)
{
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
` (3 preceding siblings ...)
2021-08-04 15:52 ` [PATCH v12 4/5] arm64: efi: Export screen_info Michael Kelley
@ 2021-08-04 15:52 ` Michael Kelley
2021-08-04 16:10 ` Catalin Marinas
2021-08-04 16:25 ` [PATCH v12 0/5] Enable Linux guests on Hyper-V " Catalin Marinas
2021-08-04 16:58 ` Wei Liu
6 siblings, 1 reply; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 15:52 UTC (permalink / raw)
To: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
Cc: mikelley
Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
ARM64, causing the Hyper-V specific code to be built. Exclude the
Hyper-V enlightened clocks/timers code from being built for ARM64.
Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
---
drivers/hv/Kconfig | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
index 66c794d..e509d5d 100644
--- a/drivers/hv/Kconfig
+++ b/drivers/hv/Kconfig
@@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
config HYPERV
tristate "Microsoft Hyper-V client drivers"
- depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
+ depends on ACPI && ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
+ || (ARM64 && !CPU_BIG_ENDIAN))
select PARAVIRT
select X86_HV_CALLBACK_VECTOR
help
@@ -12,7 +13,7 @@ config HYPERV
system.
config HYPERV_TIMER
- def_bool HYPERV
+ def_bool HYPERV && X86
config HYPERV_UTILS
tristate "Microsoft Hyper-V Utilities driver"
--
1.8.3.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64
2021-08-04 15:52 ` [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64 Michael Kelley
@ 2021-08-04 16:10 ` Catalin Marinas
2021-08-04 16:40 ` Wei Liu
0 siblings, 1 reply; 14+ messages in thread
From: Catalin Marinas @ 2021-08-04 16:10 UTC (permalink / raw)
To: Michael Kelley
Cc: will, mark.rutland, linux-arm-kernel, linux-kernel, linux-hyperv,
linux-efi, wei.liu, kys, sthemmin, ardb
On Wed, Aug 04, 2021 at 08:52:39AM -0700, Michael Kelley wrote:
> Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
> ARM64, causing the Hyper-V specific code to be built. Exclude the
> Hyper-V enlightened clocks/timers code from being built for ARM64.
>
> Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
> Acked-by: Marc Zyngier <maz@kernel.org>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
>
> ---
> drivers/hv/Kconfig | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> index 66c794d..e509d5d 100644
> --- a/drivers/hv/Kconfig
> +++ b/drivers/hv/Kconfig
> @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
>
> config HYPERV
> tristate "Microsoft Hyper-V client drivers"
> - depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
> + depends on ACPI && ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
> + || (ARM64 && !CPU_BIG_ENDIAN))
> select PARAVIRT
> select X86_HV_CALLBACK_VECTOR
Does this need to be:
select X86_HV_CALLBACK_VECTOR if X86
I haven't checked whether it gives a warning on arm64 but that symbol
doesn't exist.
Anyway, I can fix it up locally.
As an additional patch (it can be done later, once this goes upstream) I
think we should replace the depends on with a single ARCH_HAS_HYPERV.
--
Catalin
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64
2021-08-04 16:10 ` Catalin Marinas
@ 2021-08-04 16:40 ` Wei Liu
2021-08-04 16:43 ` Michael Kelley
0 siblings, 1 reply; 14+ messages in thread
From: Wei Liu @ 2021-08-04 16:40 UTC (permalink / raw)
To: Catalin Marinas
Cc: Michael Kelley, will, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
On Wed, Aug 04, 2021 at 05:10:41PM +0100, Catalin Marinas wrote:
> On Wed, Aug 04, 2021 at 08:52:39AM -0700, Michael Kelley wrote:
> > Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
> > ARM64, causing the Hyper-V specific code to be built. Exclude the
> > Hyper-V enlightened clocks/timers code from being built for ARM64.
> >
> > Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> > Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
> > Acked-by: Marc Zyngier <maz@kernel.org>
> > Acked-by: Mark Rutland <mark.rutland@arm.com>
> >
> > ---
> > drivers/hv/Kconfig | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> > index 66c794d..e509d5d 100644
> > --- a/drivers/hv/Kconfig
> > +++ b/drivers/hv/Kconfig
> > @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
> >
> > config HYPERV
> > tristate "Microsoft Hyper-V client drivers"
> > - depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
> > + depends on ACPI && ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
> > + || (ARM64 && !CPU_BIG_ENDIAN))
> > select PARAVIRT
> > select X86_HV_CALLBACK_VECTOR
>
> Does this need to be:
>
> select X86_HV_CALLBACK_VECTOR if X86
>
> I haven't checked whether it gives a warning on arm64 but that symbol
> doesn't exist.
>
> Anyway, I can fix it up locally.
I can fix it up while I queue these patches.
Wei.
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64
2021-08-04 16:40 ` Wei Liu
@ 2021-08-04 16:43 ` Michael Kelley
0 siblings, 0 replies; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 16:43 UTC (permalink / raw)
To: Wei Liu, Catalin Marinas
Cc: will, Mark Rutland, linux-arm-kernel, linux-kernel, linux-hyperv,
linux-efi, KY Srinivasan, Stephen Hemminger, ardb
From: Wei Liu <wei.liu@kernel.org> Sent: Wednesday, August 4, 2021 9:40 AM
>
> On Wed, Aug 04, 2021 at 05:10:41PM +0100, Catalin Marinas wrote:
> > On Wed, Aug 04, 2021 at 08:52:39AM -0700, Michael Kelley wrote:
> > > Update drivers/hv/Kconfig so CONFIG_HYPERV can be selected on
> > > ARM64, causing the Hyper-V specific code to be built. Exclude the
> > > Hyper-V enlightened clocks/timers code from being built for ARM64.
> > >
> > > Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> > > Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
> > > Acked-by: Marc Zyngier <maz@kernel.org>
> > > Acked-by: Mark Rutland <mark.rutland@arm.com>
> > >
> > > ---
> > > drivers/hv/Kconfig | 5 +++--
> > > 1 file changed, 3 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/hv/Kconfig b/drivers/hv/Kconfig
> > > index 66c794d..e509d5d 100644
> > > --- a/drivers/hv/Kconfig
> > > +++ b/drivers/hv/Kconfig
> > > @@ -4,7 +4,8 @@ menu "Microsoft Hyper-V guest support"
> > >
> > > config HYPERV
> > > tristate "Microsoft Hyper-V client drivers"
> > > - depends on X86 && ACPI && X86_LOCAL_APIC && HYPERVISOR_GUEST
> > > + depends on ACPI && ((X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
> > > + || (ARM64 && !CPU_BIG_ENDIAN))
> > > select PARAVIRT
> > > select X86_HV_CALLBACK_VECTOR
> >
> > Does this need to be:
> >
> > select X86_HV_CALLBACK_VECTOR if X86
> >
> > I haven't checked whether it gives a warning on arm64 but that symbol
> > doesn't exist.
The symbol is only referenced in code under arch/x86, so there's
no warning when building for arm64. But yes, it would be good
hygiene to add the "if X86".
Michael
> >
> > Anyway, I can fix it up locally.
>
> I can fix it up while I queue these patches.
>
> Wei.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
` (4 preceding siblings ...)
2021-08-04 15:52 ` [PATCH v12 5/5] Drivers: hv: Enable Hyper-V code to be built on ARM64 Michael Kelley
@ 2021-08-04 16:25 ` Catalin Marinas
2021-08-04 16:37 ` Wei Liu
2021-08-04 16:39 ` Michael Kelley
2021-08-04 16:58 ` Wei Liu
6 siblings, 2 replies; 14+ messages in thread
From: Catalin Marinas @ 2021-08-04 16:25 UTC (permalink / raw)
To: Michael Kelley
Cc: will, mark.rutland, linux-arm-kernel, linux-kernel, linux-hyperv,
linux-efi, wei.liu, kys, sthemmin, ardb
On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
> This series enables Linux guests running on Hyper-V on ARM64
> hardware. New ARM64-specific code in arch/arm64/hyperv initializes
> Hyper-V and its 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.
[...]
> Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests
> with 4K/16K/64K page size. Linux guests with this patch series
> work with all three supported ARM64 page sizes.
>
> The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has
> x86/x64-specific code and is not being built for ARM64. Enabling
> Hyper-V vPCI devices on ARM64 is in progress via a separate set
> of patches.
>
> This patch set is based on the linux-next20210720 code tree.
Is it possible to rebase this on top of -rc3? Are there any
dependencies or do you plan to upstream this via a different tree?
It applies cleanly but it doesn't build for me:
In file included from arch/arm64/include/asm/mshyperv.h:52,
from arch/arm64/hyperv/hv_core.c:19:
include/asm-generic/mshyperv.h: In function 'hv_do_rep_hypercall':
include/asm-generic/mshyperv.h:86:3: error: implicit declaration of function 'touch_nmi_watchdog' [-Werror=implicit-function-declaration]
86 | touch_nmi_watchdog();
| ^~~~~~~~~~~~~~~~~~
A quick fix for the above was to include nmi.h in mshyperv.h.
However, the below I can't fix since there's no trace of
hv_common_init() on top of 5.14-rc3:
arch/arm64/hyperv/mshyperv.c: In function 'hyperv_init':
arch/arm64/hyperv/mshyperv.c:66:8: error: implicit declaration of function 'hv_common_init' [-Werror=implicit-function-declaration]
66 | ret = hv_common_init();
| ^~~~~~~~~~~~~~
arch/arm64/hyperv/mshyperv.c:71:5: error: 'hv_common_cpu_init' undeclared (first use in this function)
71 | hv_common_cpu_init, hv_common_cpu_die);
| ^~~~~~~~~~~~~~~~~~
arch/arm64/hyperv/mshyperv.c:71:5: note: each undeclared identifier is reported only once for each function it appears in
arch/arm64/hyperv/mshyperv.c:71:25: error: 'hv_common_cpu_die' undeclared (first use in this function)
71 | hv_common_cpu_init, hv_common_cpu_die);
| ^~~~~~~~~~~~~~~~~
arch/arm64/hyperv/mshyperv.c:73:3: error: implicit declaration of function 'hv_common_free' [-Werror=implicit-function-declaration]
73 | hv_common_free();
| ^~~~~~~~~~~~~~
--
Catalin
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64
2021-08-04 16:25 ` [PATCH v12 0/5] Enable Linux guests on Hyper-V " Catalin Marinas
@ 2021-08-04 16:37 ` Wei Liu
2021-08-04 16:39 ` Michael Kelley
1 sibling, 0 replies; 14+ messages in thread
From: Wei Liu @ 2021-08-04 16:37 UTC (permalink / raw)
To: Catalin Marinas
Cc: Michael Kelley, will, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
On Wed, Aug 04, 2021 at 05:25:57PM +0100, Catalin Marinas wrote:
> On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
> > This series enables Linux guests running on Hyper-V on ARM64
> > hardware. New ARM64-specific code in arch/arm64/hyperv initializes
> > Hyper-V and its 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.
> [...]
> > Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests
> > with 4K/16K/64K page size. Linux guests with this patch series
> > work with all three supported ARM64 page sizes.
> >
> > The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has
> > x86/x64-specific code and is not being built for ARM64. Enabling
> > Hyper-V vPCI devices on ARM64 is in progress via a separate set
> > of patches.
> >
> > This patch set is based on the linux-next20210720 code tree.
>
> Is it possible to rebase this on top of -rc3? Are there any
> dependencies or do you plan to upstream this via a different tree?
Some prerequisite patches are in hyperv-next.
https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/log/?h=hyperv-next
Wei.
^ permalink raw reply [flat|nested] 14+ messages in thread
* RE: [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64
2021-08-04 16:25 ` [PATCH v12 0/5] Enable Linux guests on Hyper-V " Catalin Marinas
2021-08-04 16:37 ` Wei Liu
@ 2021-08-04 16:39 ` Michael Kelley
2021-08-04 16:43 ` Catalin Marinas
1 sibling, 1 reply; 14+ messages in thread
From: Michael Kelley @ 2021-08-04 16:39 UTC (permalink / raw)
To: Catalin Marinas
Cc: will, Mark Rutland, linux-arm-kernel, linux-kernel, linux-hyperv,
linux-efi, wei.liu, KY Srinivasan, Stephen Hemminger, ardb
From: Catalin Marinas <catalin.marinas@arm.com> Sent: Wednesday, August 4, 2021 9:26 AM
>
> On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
> > This series enables Linux guests running on Hyper-V on ARM64
> > hardware. New ARM64-specific code in arch/arm64/hyperv initializes
> > Hyper-V and its 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.
> [...]
> > Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests
> > with 4K/16K/64K page size. Linux guests with this patch series
> > work with all three supported ARM64 page sizes.
> >
> > The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has
> > x86/x64-specific code and is not being built for ARM64. Enabling
> > Hyper-V vPCI devices on ARM64 is in progress via a separate set
> > of patches.
> >
> > This patch set is based on the linux-next20210720 code tree.
>
> Is it possible to rebase this on top of -rc3? Are there any
> dependencies or do you plan to upstream this via a different tree?
>
There are dependencies on changes in the hyperv-next tree
(https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/)
which is why you are getting the build errors. The changes
common-ized some code between the x86 side and previous
versions of this patch set (and fixed the #include nmi.h problem).
So the code would most naturally go upstream through that tree.
Michael
> It applies cleanly but it doesn't build for me:
>
> In file included from arch/arm64/include/asm/mshyperv.h:52,
> from arch/arm64/hyperv/hv_core.c:19:
> include/asm-generic/mshyperv.h: In function 'hv_do_rep_hypercall':
> include/asm-generic/mshyperv.h:86:3: error: implicit declaration of function 'touch_nmi_watchdog' [-Werror=implicit-
> function-declaration]
> 86 | touch_nmi_watchdog();
> | ^~~~~~~~~~~~~~~~~~
>
> A quick fix for the above was to include nmi.h in mshyperv.h.
>
> However, the below I can't fix since there's no trace of
> hv_common_init() on top of 5.14-rc3:
>
> arch/arm64/hyperv/mshyperv.c: In function 'hyperv_init':
> arch/arm64/hyperv/mshyperv.c:66:8: error: implicit declaration of function 'hv_common_init' [-Werror=implicit-function-
> declaration]
> 66 | ret = hv_common_init();
> | ^~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:71:5: error: 'hv_common_cpu_init' undeclared (first use in this function)
> 71 | hv_common_cpu_init, hv_common_cpu_die);
> | ^~~~~~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:71:5: note: each undeclared identifier is reported only once for each function it appears in
> arch/arm64/hyperv/mshyperv.c:71:25: error: 'hv_common_cpu_die' undeclared (first use in this function)
> 71 | hv_common_cpu_init, hv_common_cpu_die);
> | ^~~~~~~~~~~~~~~~~
> arch/arm64/hyperv/mshyperv.c:73:3: error: implicit declaration of function 'hv_common_free' [-Werror=implicit-function-
> declaration]
> 73 | hv_common_free();
> | ^~~~~~~~~~~~~~
>
> --
> Catalin
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64
2021-08-04 16:39 ` Michael Kelley
@ 2021-08-04 16:43 ` Catalin Marinas
0 siblings, 0 replies; 14+ messages in thread
From: Catalin Marinas @ 2021-08-04 16:43 UTC (permalink / raw)
To: Michael Kelley
Cc: will, Mark Rutland, linux-arm-kernel, linux-kernel, linux-hyperv,
linux-efi, wei.liu, KY Srinivasan, Stephen Hemminger, ardb
On Wed, Aug 04, 2021 at 04:39:02PM +0000, Michael Kelley wrote:
> From: Catalin Marinas <catalin.marinas@arm.com> Sent: Wednesday, August 4, 2021 9:26 AM
> >
> > On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
> > > This series enables Linux guests running on Hyper-V on ARM64
> > > hardware. New ARM64-specific code in arch/arm64/hyperv initializes
> > > Hyper-V and its 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.
> > [...]
> > > Hyper-V on ARM64 runs with a 4 Kbyte page size, but allows guests
> > > with 4K/16K/64K page size. Linux guests with this patch series
> > > work with all three supported ARM64 page sizes.
> > >
> > > The Hyper-V vPCI driver at drivers/pci/host/pci-hyperv.c has
> > > x86/x64-specific code and is not being built for ARM64. Enabling
> > > Hyper-V vPCI devices on ARM64 is in progress via a separate set
> > > of patches.
> > >
> > > This patch set is based on the linux-next20210720 code tree.
> >
> > Is it possible to rebase this on top of -rc3? Are there any
> > dependencies or do you plan to upstream this via a different tree?
>
> There are dependencies on changes in the hyperv-next tree
> (https://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git/)
> which is why you are getting the build errors. The changes
> common-ized some code between the x86 side and previous
> versions of this patch set (and fixed the #include nmi.h problem).
> So the code would most naturally go upstream through that tree.
In that case, for this series:
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
I don't think there'd be conflicts with the arm64 changes but we can
spot them early in -next.
--
Catalin
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64
2021-08-04 15:52 [PATCH v12 0/5] Enable Linux guests on Hyper-V on ARM64 Michael Kelley
` (5 preceding siblings ...)
2021-08-04 16:25 ` [PATCH v12 0/5] Enable Linux guests on Hyper-V " Catalin Marinas
@ 2021-08-04 16:58 ` Wei Liu
6 siblings, 0 replies; 14+ messages in thread
From: Wei Liu @ 2021-08-04 16:58 UTC (permalink / raw)
To: Michael Kelley
Cc: will, catalin.marinas, mark.rutland, linux-arm-kernel,
linux-kernel, linux-hyperv, linux-efi, wei.liu, kys, sthemmin,
ardb
On Wed, Aug 04, 2021 at 08:52:34AM -0700, Michael Kelley wrote:
>
> Michael Kelley (5):
> arm64: hyperv: Add Hyper-V hypercall and register access utilities
> arm64: hyperv: Add panic handler
> arm64: hyperv: Initialize hypervisor on boot
> arm64: efi: Export screen_info
> Drivers: hv: Enable Hyper-V code to be built on ARM64
Applied to hyperv-next. Thanks.
Wei.
^ permalink raw reply [flat|nested] 14+ messages in thread