^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # KVM configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) source "virt/kvm/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) menuconfig VIRTUALIZATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) bool "Virtualization"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Say Y here to get to see options for using your Linux host to run
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) other operating systems inside virtual machines (guests).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) This option alone does not add any kernel code.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) If you say N, all options in this submenu will be skipped and disabled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) if VIRTUALIZATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) config KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) tristate "Kernel-based Virtual Machine (KVM) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) depends on HAVE_KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) depends on MIPS_FP_SUPPORT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) select EXPORT_UASM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) select PREEMPT_NOTIFIERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) select KVM_GENERIC_DIRTYLOG_READ_PROTECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) select HAVE_KVM_EVENTFD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) select HAVE_KVM_VCPU_ASYNC_IOCTL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) select KVM_MMIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) select MMU_NOTIFIER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) Support for hosting Guest kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) prompt "Virtualization mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) depends on KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) default KVM_MIPS_TE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) config KVM_MIPS_TE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) bool "Trap & Emulate"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) depends on CPU_MIPS32_R2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) Use trap and emulate to virtualize 32-bit guests in user mode. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) does not require any special hardware Virtualization support beyond
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) standard MIPS32 r2 or later, but it does require the guest kernel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) to be configured with CONFIG_KVM_GUEST=y so that it resides in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) user address segment.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) config KVM_MIPS_VZ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) bool "MIPS Virtualization (VZ) ASE"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) Use the MIPS Virtualization (VZ) ASE to virtualize guests. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) supports running unmodified guest kernels (with CONFIG_KVM_GUEST=n),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) but requires hardware support.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) endchoice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) config KVM_MIPS_DYN_TRANS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) bool "KVM/MIPS: Dynamic binary translation to reduce traps"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) depends on KVM_MIPS_TE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) When running in Trap & Emulate mode patch privileged
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) instructions to reduce the number of traps.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) config KVM_MIPS_DEBUG_COP0_COUNTERS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) bool "Maintain counters for COP0 accesses"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) depends on KVM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Maintain statistics for Guest COP0 accesses.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) A histogram of COP0 accesses is printed when the VM is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) shutdown.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) endif # VIRTUALIZATION