162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_cimenu "Microsoft Hyper-V guest support"
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciconfig HYPERV
662306a36Sopenharmony_ci	tristate "Microsoft Hyper-V client drivers"
762306a36Sopenharmony_ci	depends on (X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
862306a36Sopenharmony_ci		|| (ACPI && ARM64 && !CPU_BIG_ENDIAN)
962306a36Sopenharmony_ci	select PARAVIRT
1062306a36Sopenharmony_ci	select X86_HV_CALLBACK_VECTOR if X86
1162306a36Sopenharmony_ci	select OF_EARLY_FLATTREE if OF
1262306a36Sopenharmony_ci	help
1362306a36Sopenharmony_ci	  Select this option to run Linux as a Hyper-V client operating
1462306a36Sopenharmony_ci	  system.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciconfig HYPERV_VTL_MODE
1762306a36Sopenharmony_ci	bool "Enable Linux to boot in VTL context"
1862306a36Sopenharmony_ci	depends on X86_64 && HYPERV
1962306a36Sopenharmony_ci	depends on SMP
2062306a36Sopenharmony_ci	default n
2162306a36Sopenharmony_ci	help
2262306a36Sopenharmony_ci	  Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
2362306a36Sopenharmony_ci	  enlightenments offered to host and guest partitions which enables
2462306a36Sopenharmony_ci	  the creation and management of new security boundaries within
2562306a36Sopenharmony_ci	  operating system software.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	  VSM achieves and maintains isolation through Virtual Trust Levels
2862306a36Sopenharmony_ci	  (VTLs). Virtual Trust Levels are hierarchical, with higher levels
2962306a36Sopenharmony_ci	  being more privileged than lower levels. VTL0 is the least privileged
3062306a36Sopenharmony_ci	  level, and currently only other level supported is VTL2.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	  Select this option to build a Linux kernel to run at a VTL other than
3362306a36Sopenharmony_ci	  the normal VTL0, which currently is only VTL2.  This option
3462306a36Sopenharmony_ci	  initializes the x86 platform for VTL2, and adds the ability to boot
3562306a36Sopenharmony_ci	  secondary CPUs directly into 64-bit context as required for VTLs other
3662306a36Sopenharmony_ci	  than 0.  A kernel built with this option must run at VTL2, and will
3762306a36Sopenharmony_ci	  not run as a normal guest.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	  If unsure, say N
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciconfig HYPERV_TIMER
4262306a36Sopenharmony_ci	def_bool HYPERV && X86
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig HYPERV_UTILS
4562306a36Sopenharmony_ci	tristate "Microsoft Hyper-V Utilities driver"
4662306a36Sopenharmony_ci	depends on HYPERV && CONNECTOR && NLS
4762306a36Sopenharmony_ci	depends on PTP_1588_CLOCK_OPTIONAL
4862306a36Sopenharmony_ci	help
4962306a36Sopenharmony_ci	  Select this option to enable the Hyper-V Utilities.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciconfig HYPERV_BALLOON
5262306a36Sopenharmony_ci	tristate "Microsoft Hyper-V Balloon driver"
5362306a36Sopenharmony_ci	depends on HYPERV
5462306a36Sopenharmony_ci	select PAGE_REPORTING
5562306a36Sopenharmony_ci	help
5662306a36Sopenharmony_ci	  Select this option to enable Hyper-V Balloon driver.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ciendmenu
59