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