#
# 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 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" if KVM_ARM_HOST
	default 4 if KVM_ARM_HOST
	default 0
	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

source drivers/virtio/Kconfig

endif # VIRTUALIZATION
