x86/hvm: add HVM-specific Kconfig

Add a separate menu for configuring HVM build-time settings to better
organize HVM-specific options.

HVM options will now appear in a dedicated sub-menu in the menuconfig
tool.

Also, make AMD_SVM config dependent on AMD config and INTEL_VMX on INTEL
respectively.

Signed-off-by: Denis Mukhin <dmukhin@ford.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
This commit is contained in:
Denis Mukhin authored and Andrew Cooper committed 2025-03-17 15:01:25 +00:00
1 parent 9a6f2c52f7
commit e3ed540f2e
2 files changed
+74 -74

No files matched your search

+1 -74
View File
@@ -107,42 +107,7 @@ config PV_LINEAR_PT
If unsure, say Y. If unsure, say Y.
config HVM source "arch/x86/hvm/Kconfig"
bool "HVM support"
depends on !PV_SHIM_EXCLUSIVE
default !PV_SHIM
select COMPAT
select IOREQ_SERVER
select MEM_ACCESS_ALWAYS_ON
help
Interfaces to support HVM domains. HVM domains require hardware
virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
guests which have no specific Xen knowledge.
This option is needed if you want to run HVM or PVH domains.
If unsure, say Y.
config AMD_SVM
bool "AMD-V" if EXPERT
depends on HVM
default y
help
Enables virtual machine extensions on platforms that implement the
AMD Virtualization Technology (AMD-V).
If your system includes a processor with AMD-V support, say Y.
If in doubt, say Y.
config INTEL_VMX
bool "Intel VT-x" if EXPERT
depends on HVM
default y
select ARCH_VCPU_IOREQ_COMPLETION
help
Enables virtual machine extensions on platforms that implement the
Intel Virtualization Technology (Intel VT-x).
If your system includes a processor with Intel VT-x support, say Y.
If in doubt, say Y.
config XEN_SHSTK config XEN_SHSTK
bool "Supervisor Shadow Stacks" bool "Supervisor Shadow Stacks"
@@ -201,25 +166,6 @@ config BIGMEM
If unsure, say N. If unsure, say N.
config HVM_FEP
bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
default DEBUG
depends on HVM
help
Compiles in a feature that allows HVM guest to arbitrarily
exercise the instruction emulator.
This feature can only be enabled during boot time with
appropriate hypervisor command line option. Please read
hypervisor command line documentation before trying to use
this feature.
This is strictly for testing purposes, and not appropriate
for use in production.
If unsure, say N.
config TBOOT config TBOOT
bool "Xen tboot support (UNSUPPORTED)" bool "Xen tboot support (UNSUPPORTED)"
depends on INTEL && UNSUPPORTED depends on INTEL && UNSUPPORTED
@@ -348,14 +294,6 @@ config HYPERV_GUEST
endif endif
config MEM_PAGING
bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
depends on HVM && VM_EVENT
config MEM_SHARING
bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
depends on HVM
config REQUIRE_NX config REQUIRE_NX
bool "Require NX (No eXecute) support" bool "Require NX (No eXecute) support"
help help
@@ -372,17 +310,6 @@ config REQUIRE_NX
was unavailable. However, if enabled, Xen will no longer boot on was unavailable. However, if enabled, Xen will no longer boot on
any CPU which is lacking NX support. any CPU which is lacking NX support.
config ALTP2M
bool "Alternate P2M support" if EXPERT
depends on INTEL_VMX
default y
help
Alternate-p2m allows a guest to manage multiple p2m guest physical
"memory views" (as opposed to a single p2m).
Useful for memory introspection.
If unsure, stay with defaults.
config UCODE_SCAN_DEFAULT config UCODE_SCAN_DEFAULT
bool "Scan for microcode by default" bool "Scan for microcode by default"
help help
+73
View File
@@ -0,0 +1,73 @@
menuconfig HVM
bool "HVM support"
depends on !PV_SHIM_EXCLUSIVE
default !PV_SHIM
select COMPAT
select IOREQ_SERVER
select MEM_ACCESS_ALWAYS_ON
help
Interfaces to support HVM domains. HVM domains require hardware
virtualisation extensions (e.g. Intel VT-x, AMD SVM), but can boot
guests which have no specific Xen knowledge.
This option is needed if you want to run HVM or PVH domains.
If unsure, say Y.
if HVM
config AMD_SVM
bool "AMD-V" if AMD && EXPERT
default y
help
Enables virtual machine extensions on platforms that implement the
AMD Virtualization Technology (AMD-V).
If your system includes a processor with AMD-V support, say Y.
If in doubt, say Y.
config INTEL_VMX
bool "Intel VT-x" if INTEL && EXPERT
default y
select ARCH_VCPU_IOREQ_COMPLETION
help
Enables virtual machine extensions on platforms that implement the
Intel Virtualization Technology (Intel VT-x).
If your system includes a processor with Intel VT-x support, say Y.
If in doubt, say Y.
config HVM_FEP
bool "HVM Forced Emulation Prefix support (UNSUPPORTED)" if UNSUPPORTED
default DEBUG
help
Compiles in a feature that allows HVM guest to arbitrarily
exercise the instruction emulator.
This feature can only be enabled during boot time with
appropriate hypervisor command line option. Please read
hypervisor command line documentation before trying to use
this feature.
This is strictly for testing purposes, and not appropriate
for use in production.
If unsure, say N.
config ALTP2M
bool "Alternate P2M support" if EXPERT
depends on INTEL_VMX
default y
help
Alternate-p2m allows a guest to manage multiple p2m guest physical
"memory views" (as opposed to a single p2m).
Useful for memory introspection.
If unsure, stay with defaults.
config MEM_PAGING
bool "Xen memory paging support (UNSUPPORTED)" if UNSUPPORTED
depends on VM_EVENT
config MEM_SHARING
bool "Xen memory sharing support (UNSUPPORTED)" if UNSUPPORTED
endif
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.