xref: /openbmc/linux/arch/powerpc/kvm/Kconfig (revision 93d90ad7)
1#
2# KVM configuration
3#
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
15	  disabled.
16
17if VIRTUALIZATION
18
19config KVM
20	bool
21	select PREEMPT_NOTIFIERS
22	select ANON_INODES
23	select HAVE_KVM_EVENTFD
24
25config KVM_BOOK3S_HANDLER
26	bool
27
28config KVM_BOOK3S_32_HANDLER
29	bool
30	select KVM_BOOK3S_HANDLER
31	select KVM_MMIO
32
33config KVM_BOOK3S_64_HANDLER
34	bool
35	select KVM_BOOK3S_HANDLER
36
37config KVM_BOOK3S_PR_POSSIBLE
38	bool
39	select KVM_MMIO
40	select MMU_NOTIFIER
41
42config KVM_BOOK3S_HV_POSSIBLE
43	bool
44
45config KVM_BOOK3S_32
46	tristate "KVM support for PowerPC book3s_32 processors"
47	depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT
48	select KVM
49	select KVM_BOOK3S_32_HANDLER
50	select KVM_BOOK3S_PR_POSSIBLE
51	---help---
52	  Support running unmodified book3s_32 guest kernels
53	  in virtual machines on book3s_32 host processors.
54
55	  This module provides access to the hardware capabilities through
56	  a character device node named /dev/kvm.
57
58	  If unsure, say N.
59
60config KVM_BOOK3S_64
61	tristate "KVM support for PowerPC book3s_64 processors"
62	depends on PPC_BOOK3S_64
63	select KVM_BOOK3S_64_HANDLER
64	select KVM
65	select KVM_BOOK3S_PR_POSSIBLE if !KVM_BOOK3S_HV_POSSIBLE
66	---help---
67	  Support running unmodified book3s_64 and book3s_32 guest kernels
68	  in virtual machines on book3s_64 host processors.
69
70	  This module provides access to the hardware capabilities through
71	  a character device node named /dev/kvm.
72
73	  If unsure, say N.
74
75config KVM_BOOK3S_64_HV
76	tristate "KVM support for POWER7 and PPC970 using hypervisor mode in host"
77	depends on KVM_BOOK3S_64
78	select KVM_BOOK3S_HV_POSSIBLE
79	select MMU_NOTIFIER
80	select CMA
81	---help---
82	  Support running unmodified book3s_64 guest kernels in
83	  virtual machines on POWER7 and PPC970 processors that have
84	  hypervisor mode available to the host.
85
86	  If you say Y here, KVM will use the hardware virtualization
87	  facilities of POWER7 (and later) processors, meaning that
88	  guest operating systems will run at full hardware speed
89	  using supervisor and user modes.  However, this also means
90	  that KVM is not usable under PowerVM (pHyp), is only usable
91	  on POWER7 (or later) processors and PPC970-family processors,
92	  and cannot emulate a different processor from the host processor.
93
94	  If unsure, say N.
95
96config KVM_BOOK3S_64_PR
97	tristate "KVM support without using hypervisor mode in host"
98	depends on KVM_BOOK3S_64
99	select KVM_BOOK3S_PR_POSSIBLE
100	---help---
101	  Support running guest kernels in virtual machines on processors
102	  without using hypervisor mode in the host, by running the
103	  guest in user mode (problem state) and emulating all
104	  privileged instructions and registers.
105
106	  This is not as fast as using hypervisor mode, but works on
107	  machines where hypervisor mode is not available or not usable,
108	  and can emulate processors that are different from the host
109	  processor, including emulating 32-bit processors on a 64-bit
110	  host.
111
112config KVM_BOOKE_HV
113	bool
114
115config KVM_EXIT_TIMING
116	bool "Detailed exit timing"
117	depends on KVM_E500V2 || KVM_E500MC
118	---help---
119	  Calculate elapsed time for every exit/enter cycle. A per-vcpu
120	  report is available in debugfs kvm/vm#_vcpu#_timing.
121	  The overhead is relatively small, however it is not recommended for
122	  production environments.
123
124	  If unsure, say N.
125
126config KVM_E500V2
127	bool "KVM support for PowerPC E500v2 processors"
128	depends on E500 && !PPC_E500MC
129	select KVM
130	select KVM_MMIO
131	select MMU_NOTIFIER
132	---help---
133	  Support running unmodified E500 guest kernels in virtual machines on
134	  E500v2 host processors.
135
136	  This module provides access to the hardware capabilities through
137	  a character device node named /dev/kvm.
138
139	  If unsure, say N.
140
141config KVM_E500MC
142	bool "KVM support for PowerPC E500MC/E5500/E6500 processors"
143	depends on PPC_E500MC
144	select KVM
145	select KVM_MMIO
146	select KVM_BOOKE_HV
147	select MMU_NOTIFIER
148	---help---
149	  Support running unmodified E500MC/E5500/E6500 guest kernels in
150	  virtual machines on E500MC/E5500/E6500 host processors.
151
152	  This module provides access to the hardware capabilities through
153	  a character device node named /dev/kvm.
154
155	  If unsure, say N.
156
157config KVM_MPIC
158	bool "KVM in-kernel MPIC emulation"
159	depends on KVM && E500
160	select HAVE_KVM_IRQCHIP
161	select HAVE_KVM_IRQFD
162	select HAVE_KVM_IRQ_ROUTING
163	select HAVE_KVM_MSI
164	help
165	  Enable support for emulating MPIC devices inside the
166          host kernel, rather than relying on userspace to emulate.
167          Currently, support is limited to certain versions of
168          Freescale's MPIC implementation.
169
170config KVM_XICS
171	bool "KVM in-kernel XICS emulation"
172	depends on KVM_BOOK3S_64 && !KVM_MPIC
173	select HAVE_KVM_IRQCHIP
174	select HAVE_KVM_IRQFD
175	default y
176	---help---
177	  Include support for the XICS (eXternal Interrupt Controller
178	  Specification) interrupt controller architecture used on
179	  IBM POWER (pSeries) servers.
180
181source drivers/vhost/Kconfig
182
183endif # VIRTUALIZATION
184