162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# This Kconfig describes xen options
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig XEN
762306a36Sopenharmony_ci	bool "Xen guest support"
862306a36Sopenharmony_ci	depends on PARAVIRT
962306a36Sopenharmony_ci	select PARAVIRT_CLOCK
1062306a36Sopenharmony_ci	select X86_HV_CALLBACK_VECTOR
1162306a36Sopenharmony_ci	depends on X86_64 || (X86_32 && X86_PAE)
1262306a36Sopenharmony_ci	depends on X86_64 || (X86_GENERIC || MPENTIUM4 || MCORE2 || MATOM || MK8)
1362306a36Sopenharmony_ci	depends on X86_LOCAL_APIC && X86_TSC
1462306a36Sopenharmony_ci	help
1562306a36Sopenharmony_ci	  This is the Linux Xen port.  Enabling this will allow the
1662306a36Sopenharmony_ci	  kernel to boot in a paravirtualized environment under the
1762306a36Sopenharmony_ci	  Xen hypervisor.
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciconfig XEN_PV
2062306a36Sopenharmony_ci	bool "Xen PV guest support"
2162306a36Sopenharmony_ci	default y
2262306a36Sopenharmony_ci	depends on XEN
2362306a36Sopenharmony_ci	depends on X86_64
2462306a36Sopenharmony_ci	select PARAVIRT_XXL
2562306a36Sopenharmony_ci	select XEN_HAVE_PVMMU
2662306a36Sopenharmony_ci	select XEN_HAVE_VPMU
2762306a36Sopenharmony_ci	select GUEST_PERF_EVENTS
2862306a36Sopenharmony_ci	help
2962306a36Sopenharmony_ci	  Support running as a Xen PV guest.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig XEN_512GB
3262306a36Sopenharmony_ci	bool "Limit Xen pv-domain memory to 512GB"
3362306a36Sopenharmony_ci	depends on XEN_PV
3462306a36Sopenharmony_ci	default y
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  Limit paravirtualized user domains to 512GB of RAM.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	  The Xen tools and crash dump analysis tools might not support
3962306a36Sopenharmony_ci	  pv-domains with more than 512 GB of RAM. This option controls the
4062306a36Sopenharmony_ci	  default setting of the kernel to use only up to 512 GB or more.
4162306a36Sopenharmony_ci	  It is always possible to change the default via specifying the
4262306a36Sopenharmony_ci	  boot parameter "xen_512gb_limit".
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig XEN_PV_SMP
4562306a36Sopenharmony_ci	def_bool y
4662306a36Sopenharmony_ci	depends on XEN_PV && SMP
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ciconfig XEN_PV_DOM0
4962306a36Sopenharmony_ci	def_bool y
5062306a36Sopenharmony_ci	depends on XEN_PV && XEN_DOM0
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig XEN_PVHVM
5362306a36Sopenharmony_ci	def_bool y
5462306a36Sopenharmony_ci	depends on XEN && X86_LOCAL_APIC
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ciconfig XEN_PVHVM_SMP
5762306a36Sopenharmony_ci	def_bool y
5862306a36Sopenharmony_ci	depends on XEN_PVHVM && SMP
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciconfig XEN_PVHVM_GUEST
6162306a36Sopenharmony_ci	bool "Xen PVHVM guest support"
6262306a36Sopenharmony_ci	default y
6362306a36Sopenharmony_ci	depends on XEN_PVHVM && PCI
6462306a36Sopenharmony_ci	help
6562306a36Sopenharmony_ci	  Support running as a Xen PVHVM guest.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciconfig XEN_SAVE_RESTORE
6862306a36Sopenharmony_ci	bool
6962306a36Sopenharmony_ci	depends on XEN
7062306a36Sopenharmony_ci	select HIBERNATE_CALLBACKS
7162306a36Sopenharmony_ci	default y
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciconfig XEN_DEBUG_FS
7462306a36Sopenharmony_ci	bool "Enable Xen debug and tuning parameters in debugfs"
7562306a36Sopenharmony_ci	depends on XEN && DEBUG_FS
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  Enable statistics output and various tuning options in debugfs.
7862306a36Sopenharmony_ci	  Enabling this option may incur a significant performance overhead.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciconfig XEN_PVH
8162306a36Sopenharmony_ci	bool "Xen PVH guest support"
8262306a36Sopenharmony_ci	depends on XEN && XEN_PVHVM && ACPI
8362306a36Sopenharmony_ci	select PVH
8462306a36Sopenharmony_ci	def_bool n
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  Support for running as a Xen PVH guest.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig XEN_DOM0
8962306a36Sopenharmony_ci	bool "Xen Dom0 support"
9062306a36Sopenharmony_ci	default XEN_PV
9162306a36Sopenharmony_ci	depends on (XEN_PV && SWIOTLB_XEN) || (XEN_PVH && X86_64)
9262306a36Sopenharmony_ci	depends on X86_IO_APIC && ACPI && PCI
9362306a36Sopenharmony_ci	select X86_X2APIC if XEN_PVH && X86_64
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  Support running as a Xen Dom0 guest.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciconfig XEN_PV_MSR_SAFE
9862306a36Sopenharmony_ci	bool "Always use safe MSR accesses in PV guests"
9962306a36Sopenharmony_ci	default y
10062306a36Sopenharmony_ci	depends on XEN_PV
10162306a36Sopenharmony_ci	help
10262306a36Sopenharmony_ci	  Use safe (not faulting) MSR access functions even if the MSR access
10362306a36Sopenharmony_ci	  should not fault anyway.
10462306a36Sopenharmony_ci	  The default can be changed by using the "xen_msr_safe" boot parameter.
105