#
# KVM configuration
#

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

config KVM
	bool "Kernel-based Virtual Machine (KVM) support"
	select PREEMPT_NOTIFIERS
	select ANON_INODES
	select HAVE_KVM_CPU_RELAX_INTERCEPT
	select KVM_MMIO
	select KVM_ARM_HOST
	depends on ARM_VIRT_EXT && ARM_LPAE
	---help---
	  Support hosting virtualized guest machines. You will also
	  need to select one or more of the processor modules below.

	  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 "KVM host support for ARM cpus."
	depends on KVM
	depends on MMU
	select	MMU_NOTIFIER
	---help---
	  Provides host support for ARM processors.

config KVM_ARM_MAX_VCPUS
	int "Number maximum supported virtual CPUs per VM"
	depends on KVM_ARM_HOST
	default 4
	help
	  Static number of max supported virtual CPUs per VM.

	  If you choose a high number, the vcpu structures will be quite
	  large, so only choose a reasonable number that you expect to
	  actually use.

config KVM_ARM_VGIC
	bool "KVM support for Virtual GIC"
	depends on KVM_ARM_HOST && OF
	select HAVE_KVM_IRQCHIP
	default y
	---help---
	  Adds support for a hardware assisted, in-kernel GIC emulation.

config KVM_ARM_TIMER
	bool "KVM support for Architected Timers"
	depends on KVM_ARM_VGIC && ARM_ARCH_TIMER
	select HAVE_KVM_IRQCHIP
	default y
	---help---
	  Adds support for the Architected Timers in virtual machines

endif # VIRTUALIZATION