xref: /linux/drivers/hv/Kconfig (revision 221533629550e920580ab428f13ffebf54063b95)
145ea83f0SStephen Hemminger# SPDX-License-Identifier: GPL-2.0
245ea83f0SStephen Hemminger
3124a6b4cSBart Van Asschemenu "Microsoft Hyper-V guest support"
4124a6b4cSBart Van Assche
546a97191SGreg Kroah-Hartmanconfig HYPERV
6*e3ec97c3SMukesh Rathor	bool "Microsoft Hyper-V core hypervisor support"
7f83705a5SSaurabh Sengar	depends on (X86 && X86_LOCAL_APIC && HYPERVISOR_GUEST) \
8f41ceff1SRoman Kisel		|| (ARM64 && !CPU_BIG_ENDIAN)
92ffd9e33SVitaly Kuznetsov	select PARAVIRT
107aff79e2SMichael Kelley	select X86_HV_CALLBACK_VECTOR if X86
11f83705a5SSaurabh Sengar	select OF_EARLY_FLATTREE if OF
127b89a44bSMichael Kelley	select SYSFB if EFI && !HYPERV_VTL_MODE
134691db07SNam Cao	select IRQ_MSI_LIB if X86
1446a97191SGreg Kroah-Hartman	help
1546a97191SGreg Kroah-Hartman	  Select this option to run Linux as a Hyper-V client operating
1646a97191SGreg Kroah-Hartman	  system.
1746a97191SGreg Kroah-Hartman
18d01b9a9fSSaurabh Sengarconfig HYPERV_VTL_MODE
19d01b9a9fSSaurabh Sengar	bool "Enable Linux to boot in VTL context"
20f41ceff1SRoman Kisel	depends on (X86_64 || ARM64) && HYPERV
212b4b90e0SSaurabh Sengar	depends on SMP
22d01b9a9fSSaurabh Sengar	default n
23d01b9a9fSSaurabh Sengar	help
24d01b9a9fSSaurabh Sengar	  Virtual Secure Mode (VSM) is a set of hypervisor capabilities and
25d01b9a9fSSaurabh Sengar	  enlightenments offered to host and guest partitions which enables
26d01b9a9fSSaurabh Sengar	  the creation and management of new security boundaries within
27d01b9a9fSSaurabh Sengar	  operating system software.
28d01b9a9fSSaurabh Sengar
29d01b9a9fSSaurabh Sengar	  VSM achieves and maintains isolation through Virtual Trust Levels
30d01b9a9fSSaurabh Sengar	  (VTLs). Virtual Trust Levels are hierarchical, with higher levels
31d01b9a9fSSaurabh Sengar	  being more privileged than lower levels. VTL0 is the least privileged
32d01b9a9fSSaurabh Sengar	  level, and currently only other level supported is VTL2.
33d01b9a9fSSaurabh Sengar
34d01b9a9fSSaurabh Sengar	  Select this option to build a Linux kernel to run at a VTL other than
35d01b9a9fSSaurabh Sengar	  the normal VTL0, which currently is only VTL2.  This option
36f41ceff1SRoman Kisel	  initializes the kernel to run in VTL2, and adds the ability to boot
37d01b9a9fSSaurabh Sengar	  secondary CPUs directly into 64-bit context as required for VTLs other
38d01b9a9fSSaurabh Sengar	  than 0.  A kernel built with this option must run at VTL2, and will
39d01b9a9fSSaurabh Sengar	  not run as a normal guest.
40d01b9a9fSSaurabh Sengar
41d01b9a9fSSaurabh Sengar	  If unsure, say N
42d01b9a9fSSaurabh Sengar
43fd1fea68SMichael Kelleyconfig HYPERV_TIMER
447aff79e2SMichael Kelley	def_bool HYPERV && X86
45fd1fea68SMichael Kelley
4646a97191SGreg Kroah-Hartmanconfig HYPERV_UTILS
4746a97191SGreg Kroah-Hartman	tristate "Microsoft Hyper-V Utilities driver"
4894b04355SMukesh Rathor	depends on HYPERV_VMBUS && CONNECTOR && NLS
491dc2f2b8SRandy Dunlap	depends on PTP_1588_CLOCK_OPTIONAL
5046a97191SGreg Kroah-Hartman	help
5146a97191SGreg Kroah-Hartman	  Select this option to enable the Hyper-V Utilities.
5246a97191SGreg Kroah-Hartman
539aa8b50bSK. Y. Srinivasanconfig HYPERV_BALLOON
549aa8b50bSK. Y. Srinivasan	tristate "Microsoft Hyper-V Balloon driver"
5594b04355SMukesh Rathor	depends on HYPERV_VMBUS
566dc2a774SSunil Muthuswamy	select PAGE_REPORTING
579aa8b50bSK. Y. Srinivasan	help
589aa8b50bSK. Y. Srinivasan	  Select this option to enable Hyper-V Balloon driver.
599aa8b50bSK. Y. Srinivasan
6094b04355SMukesh Rathorconfig HYPERV_VMBUS
6194b04355SMukesh Rathor	tristate "Microsoft Hyper-V VMBus driver"
6294b04355SMukesh Rathor	depends on HYPERV
6394b04355SMukesh Rathor	default HYPERV
6494b04355SMukesh Rathor	help
6594b04355SMukesh Rathor	  Select this option to enable Hyper-V Vmbus driver.
6694b04355SMukesh Rathor
67461fbbd0SNuno Das Nevesconfig MSHV_ROOT
68461fbbd0SNuno Das Neves	tristate "Microsoft Hyper-V root partition support"
69461fbbd0SNuno Das Neves	depends on HYPERV && (X86_64 || ARM64)
70461fbbd0SNuno Das Neves	depends on !HYPERV_VTL_MODE
71461fbbd0SNuno Das Neves	# The hypervisor interface operates on 4k pages. Enforcing it here
72461fbbd0SNuno Das Neves	# simplifies many assumptions in the root partition code.
73461fbbd0SNuno Das Neves	# e.g. When withdrawing memory, the hypervisor gives back 4k pages in
74461fbbd0SNuno Das Neves	# no particular order, making it impossible to reassemble larger pages
75461fbbd0SNuno Das Neves	depends on PAGE_SIZE_4KB
76621191d7SNuno Das Neves	select EVENTFD
77c5eebe07SSean Christopherson	select VIRT_XFER_TO_GUEST_WORK
78461fbbd0SNuno Das Neves	default n
79461fbbd0SNuno Das Neves	help
80461fbbd0SNuno Das Neves	  Select this option to enable support for booting and running as root
81461fbbd0SNuno Das Neves	  partition on Microsoft Hyper-V.
82461fbbd0SNuno Das Neves
83461fbbd0SNuno Das Neves	  If unsure, say N.
84461fbbd0SNuno Das Neves
85124a6b4cSBart Van Asscheendmenu
86