| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- # 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 SYSFB if EFI && !HYPERV_VTL_MODE
- 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 && HAVE_STATIC_CALL) || ARM64
- depends on 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
- 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
- select HMM_MIRROR
- select MMU_NOTIFIER
- default n
- help
- Select this option to enable support for booting and running as root
- partition on Microsoft Hyper-V.
- If unsure, say N.
- config MSHV_VTL
- tristate "Microsoft Hyper-V VTL driver"
- depends on X86_64 && HYPERV_VTL_MODE
- depends on HYPERV_VMBUS
- # Mapping VTL0 memory to a userspace process in VTL2 is supported in OpenHCL.
- # VTL2 for OpenHCL makes use of Huge Pages to improve performance on VMs,
- # specially with large memory requirements.
- depends on TRANSPARENT_HUGEPAGE
- # MTRRs are controlled by VTL0, and are not specific to individual VTLs.
- # Therefore, do not attempt to access or modify MTRRs here.
- depends on !MTRR
- select CPUMASK_OFFSTACK
- select VIRT_XFER_TO_GUEST_WORK
- default n
- help
- Select this option to enable Hyper-V VTL driver support.
- This driver provides interfaces for Virtual Machine Manager (VMM) running in VTL2
- userspace to create VTLs and partitions, setup and manage VTL0 memory and
- allow userspace to make direct hypercalls. This also allows to map VTL0's address
- space to a usermode process in VTL2 and supports getting new VMBus messages and channel
- events in VTL2.
- If unsure, say N.
- endmenu
|