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