| # SPDX-License-Identifier: GPL-2.0 | |
| menu "Microsoft Hyper-V guest support" | |
| config HYPERV | |
| bool "Microsoft Hyper-V core hypervisor support" | |
| 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 IRQ_MSI_LIB if X86 | |
| 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_VMBUS && 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_VMBUS | |
| select PAGE_REPORTING | |
| help | |
| Select this option to enable Hyper-V Balloon driver. | |
| config HYPERV_VMBUS | |
| tristate "Microsoft Hyper-V VMBus driver" | |
| depends on HYPERV | |
| default HYPERV | |
| select SYSFB if EFI && !HYPERV_VTL_MODE | |
| help | |
| Select this option to enable Hyper-V Vmbus 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 | |
| select VIRT_XFER_TO_GUEST_WORK | |
| 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 |