arm64: hyperv: Add Hyper-V hypercall and register access utilities
authorMichael Kelley <mikelley@microsoft.com>
Wed, 4 Aug 2021 15:52:35 +0000 (08:52 -0700)
committerWei Liu <wei.liu@kernel.org>
Wed, 4 Aug 2021 16:54:36 +0000 (16:54 +0000)
commit57d276bbbd322409bb6f7c6446187a29953f8ded
tree3215d3505edd5a2169987cf9bcc728dde8850b8f
parente5d9b714fe40270222a7de9dcd1cf62dad63eeef
arm64: hyperv: Add Hyper-V hypercall and register access utilities

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>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://lore.kernel.org/r/1628092359-61351-2-git-send-email-mikelley@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
MAINTAINERS
arch/arm64/Kbuild
arch/arm64/hyperv/Makefile [new file with mode: 0644]
arch/arm64/hyperv/hv_core.c [new file with mode: 0644]
arch/arm64/include/asm/hyperv-tlfs.h [new file with mode: 0644]
arch/arm64/include/asm/mshyperv.h [new file with mode: 0644]