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

source "virt/kvm/Kconfig"
source "virt/lib/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

config KVM
	bool "Kernel-based Virtual Machine (KVM) support"
	depends on MMU && OF
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	select ARM_GIC
	select ARM_GIC_V3
	select ARM_GIC_V3_ITS
	select HAVE_KVM_CPU_RELAX_INTERCEPT
	select HAVE_KVM_ARCH_TLB_FLUSH_ALL
	select KVM_MMIO
	select KVM_ARM_HOST
	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
	select SRCU
	select MMU_NOTIFIER
	select KVM_VFIO
	select HAVE_KVM_EVENTFD
	select HAVE_KVM_IRQFD
	select HAVE_KVM_IRQCHIP
	select HAVE_KVM_IRQ_ROUTING
	select HAVE_KVM_MSI
	select IRQ_BYPASS_MANAGER
	select HAVE_KVM_IRQ_BYPASS
	depends on ARM_VIRT_EXT && ARM_LPAE && ARM_ARCH_TIMER
	---help---
	  Support hosting virtualized guest machines.

	  This module provides access to the hardware capabilities through
	  a character device node named /dev/kvm.

	  If unsure, say N.

config KVM_ARM_HOST
	bool
	---help---
	  Provides host support for ARM processors.

source drivers/vhost/Kconfig

endif # VIRTUALIZATION
