# SPDX-License-Identifier: GPL-2.0

menu "Microsoft Hyper-V guest support"

config HYPERV
	tristate "Microsoft Hyper-V client drivers"
	depends on (X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
		|| (ARM64 && !CPU_BIG_ENDIAN)
	select PARAVIRT
	select X86_HV_CALLBACK_VECTOR if X86
	select OF_EARLY_FLATTREE if OF
	select SYSFB if EFI && !HYPERV_VTL_MODE
	help
	  Select this option to run Linux as a Hyper-V client operating
	  system.

config HYPERV_VTL_MODE
	bool "Enable Linux to boot in VTL context"
	depends on (X86_64 || ARM64) && HYPERV
	depends on SMP
	default n
	help
	  Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
	  enlightenments offered to host and guest partitions which enables
	  the creation and management of new security boundaries within
	  operating system software.

	  VSM achieves and maintains isolation through Virtual Trust Levels
	  (VTLs). Virtual Trust Levels are hierarchical, with higher levels
	  being more privileged than lower levels. VTL0 is the least privileged
	  level, and currently only other level supported is VTL2.

	  Select this option to build a Linux kernel to run at a VTL other than
	  the normal VTL0, which currently is only VTL2.  This option
	  initializes the kernel to run in VTL2, and adds the ability to boot
	  secondary CPUs directly into 64-bit context as required for VTLs other
	  than 0.  A kernel built with this option must run at VTL2, and will
	  not run as a normal guest.

	  If unsure, say N

config HYPERV_TIMER
	def_bool HYPERV && X86

config HYPERV_UTILS
	tristate "Microsoft Hyper-V Utilities driver"
	depends on HYPERV && CONNECTOR && NLS
	depends on PTP_1588_CLOCK_OPTIONAL
	help
	  Select this option to enable the Hyper-V Utilities.

config HYPERV_BALLOON
	tristate "Microsoft Hyper-V Balloon driver"
	depends on HYPERV
	select PAGE_REPORTING
	help
	  Select this option to enable Hyper-V Balloon driver.

config MSHV_ROOT
	tristate "Microsoft Hyper-V root partition support"
	depends on HYPERV && (X86_64 || ARM64)
	depends on !HYPERV_VTL_MODE
	# The hypervisor interface operates on 4k pages. Enforcing it here
	# simplifies many assumptions in the root partition code.
	# e.g. When withdrawing memory, the hypervisor gives back 4k pages in
	# no particular order, making it impossible to reassemble larger pages
	depends on PAGE_SIZE_4KB
	select EVENTFD
	default n
	help
	  Select this option to enable support for booting and running as root
	  partition on Microsoft Hyper-V.

	  If unsure, say N.

endmenu
