# SPDX-License-Identifier: GPL-2.0
#
# KVM configuration
#

source "virt/lib/Kconfig"
source "virt/kvm/Kconfig"

menuconfig VIRTUALIZATION
	bool "Virtualization"
	help
	  Say Y here to get to see options for using your Linux host to run
	  other operating systems inside virtual machines (guests).
	  This option alone does not add any kernel code.

	  If you say N, all options in this submenu will be skipped and
	  disabled.

if VIRTUALIZATION

menuconfig KVM
	bool "Kernel-based Virtual Machine (KVM) support"
	depends on HAVE_KVM
	select MMU_NOTIFIER
	select PREEMPT_NOTIFIERS
	select HAVE_KVM_CPU_RELAX_INTERCEPT
	select HAVE_KVM_ARCH_TLB_FLUSH_ALL
	select KVM_MMIO
	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
	select KVM_XFER_TO_GUEST_WORK
	select SRCU
	select KVM_VFIO
	select HAVE_KVM_EVENTFD
	select HAVE_KVM_IRQFD
	select HAVE_KVM_MSI
	select HAVE_KVM_IRQCHIP
	select HAVE_KVM_IRQ_ROUTING
	select IRQ_BYPASS_MANAGER
	select HAVE_KVM_IRQ_BYPASS
	select HAVE_KVM_VCPU_RUN_PID_CHANGE
	select SCHED_INFO
	help
	  Support hosting virtualized guest machines.

	  If unsure, say N.

config NVHE_EL2_DEBUG
	bool "Debug mode for non-VHE EL2 object"
	depends on KVM
	help
	  Say Y here to enable the debug mode for the non-VHE KVM EL2 object.
	  Failure reports will BUG() in the hypervisor. This is intended for
	  local EL2 hypervisor development.

	  If unsure, say N.

endif # VIRTUALIZATION
