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