Merge to Fedora kernel-2.6.18-1.2224_FC5 patched with stable patch-2.6.18.1-vs2.0...
[linux-2.6.git] / drivers / xen / Kconfig
1 #
2 # This Kconfig describe xen options
3 #
4
5 mainmenu "Xen Configuration"
6
7 config XEN
8         bool
9         default y if X86_XEN || X86_64_XEN
10         help
11           This is the Linux Xen port.
12
13 if XEN
14 config XEN_INTERFACE_VERSION
15         hex
16         default 0x00030203
17
18 menu "XEN"
19
20 config XEN_PRIVILEGED_GUEST
21         bool "Privileged Guest (domain 0)"
22         depends XEN
23         default n
24         help
25           Support for privileged operation (domain 0)
26
27 config XEN_UNPRIVILEGED_GUEST
28         bool
29         default !XEN_PRIVILEGED_GUEST
30
31 config XEN_PRIVCMD
32         bool
33         depends on PROC_FS
34         default y
35
36 config XEN_XENBUS_DEV
37         bool
38         depends on PROC_FS
39         default y
40
41 config XEN_BACKEND
42         tristate "Backend driver support"
43         default y
44         help
45           Support for backend device drivers that provide I/O services
46           to other virtual machines.
47
48 config XEN_BLKDEV_BACKEND
49         tristate "Block-device backend driver"
50         depends on XEN_BACKEND
51         default y
52         help
53           The block-device backend driver allows the kernel to export its
54           block devices to other guests via a high-performance shared-memory
55           interface.
56
57 config XEN_BLKDEV_TAP
58         tristate "Block-device tap backend driver"
59         depends on XEN_BACKEND
60         default XEN_PRIVILEGED_GUEST
61         help
62           The block tap driver is an alternative to the block back driver 
63           and allows VM block requests to be redirected to userspace through
64           a device interface.  The tap allows user-space development of 
65           high-performance block backends, where disk images may be implemented
66           as files, in memory, or on other hosts across the network.  This 
67           driver can safely coexist with the existing blockback driver.
68
69 config XEN_NETDEV_BACKEND
70         tristate "Network-device backend driver"
71         depends on XEN_BACKEND && NET
72         default y
73         help
74           The network-device backend driver allows the kernel to export its
75           network devices to other guests via a high-performance shared-memory
76           interface.
77
78 config XEN_NETDEV_PIPELINED_TRANSMITTER
79         bool "Pipelined transmitter (DANGEROUS)"
80         depends on XEN_NETDEV_BACKEND
81         default n
82         help
83           If the net backend is a dumb domain, such as a transparent Ethernet
84           bridge with no local IP interface, it is safe to say Y here to get
85           slightly lower network overhead.
86           If the backend has a local IP interface; or may be doing smart things
87           like reassembling packets to perform firewall filtering; or if you
88           are unsure; or if you experience network hangs when this option is
89           enabled; then you must say N here.
90
91 config XEN_NETDEV_LOOPBACK
92         tristate "Network-device loopback driver"
93         depends on XEN_NETDEV_BACKEND
94         default y
95         help
96           A two-interface loopback device to emulate a local netfront-netback
97           connection.
98
99 config XEN_PCIDEV_BACKEND
100         tristate "PCI-device backend driver"
101         depends on PCI && XEN_BACKEND
102         default XEN_PRIVILEGED_GUEST
103         help
104           The PCI device backend driver allows the kernel to export arbitrary
105           PCI devices to other guests. If you select this to be a module, you
106           will need to make sure no other driver has bound to the device(s)
107           you want to make visible to other guests.
108
109 choice
110         prompt "PCI Backend Mode"
111         depends on XEN_PCIDEV_BACKEND
112         default XEN_PCIDEV_BACKEND_VPCI
113
114 config XEN_PCIDEV_BACKEND_VPCI
115         bool "Virtual PCI"
116         ---help---
117           This PCI Backend hides the true PCI topology and makes the frontend
118           think there is a single PCI bus with only the exported devices on it.
119           For example, a device at 03:05.0 will be re-assigned to 00:00.0. A
120           second device at 02:1a.1 will be re-assigned to 00:01.1.
121
122 config XEN_PCIDEV_BACKEND_PASS
123         bool "Passthrough"
124         ---help---
125           This PCI Backend provides a real view of the PCI topology to the
126           frontend (for example, a device at 06:01.b will still appear at
127           06:01.b to the frontend). This is similar to how Xen 2.0.x exposed
128           PCI devices to its driver domains. This may be required for drivers
129           which depend on finding their hardward in certain bus/slot
130           locations.
131
132 config XEN_PCIDEV_BACKEND_SLOT
133         bool "Slot"
134         ---help---
135           This PCI Backend hides the true PCI topology and makes the frontend
136           think there is a single PCI bus with only the exported devices on it.
137           Contrary to the virtual PCI backend, a function becomes a new slot.
138           For example, a device at 03:05.2 will be re-assigned to 00:00.0. A
139           second device at 02:1a.1 will be re-assigned to 00:01.0.
140
141 endchoice
142
143 config XEN_PCIDEV_BE_DEBUG
144         bool "PCI Backend Debugging"
145         depends on XEN_PCIDEV_BACKEND
146         default n
147
148 config XEN_TPMDEV_BACKEND
149         tristate "TPM-device backend driver"
150         depends on XEN_BACKEND
151         default n
152         help
153           The TPM-device backend driver
154
155 config XEN_BLKDEV_FRONTEND
156         tristate "Block-device frontend driver"
157         depends on XEN
158         default y
159         help
160           The block-device frontend driver allows the kernel to access block
161           devices mounted within another guest OS. Unless you are building a
162           dedicated device-driver domain, or your master control domain
163           (domain 0), then you almost certainly want to say Y here.
164
165 config XEN_NETDEV_FRONTEND
166         tristate "Network-device frontend driver"
167         depends on XEN && NET
168         default y
169         help
170           The network-device frontend driver allows the kernel to access
171           network interfaces within another guest OS. Unless you are building a
172           dedicated device-driver domain, or your master control domain
173           (domain 0), then you almost certainly want to say Y here.
174
175 config XEN_FRAMEBUFFER
176         tristate "Framebuffer-device frontend driver"
177         depends on XEN && FB
178         select FB_CFB_FILLRECT
179         select FB_CFB_COPYAREA
180         select FB_CFB_IMAGEBLIT
181         default y
182         help
183           The framebuffer-device frontend drivers allows the kernel to create a
184           virtual framebuffer.  This framebuffer can be viewed in another
185           domain.  Unless this domain has access to a real video card, you
186           probably want to say Y here.
187
188 config XEN_KEYBOARD
189         tristate "Keyboard-device frontend driver"
190         depends on XEN
191         default y
192         help
193           The keyboard-device frontend driver allows the kernel to create a
194           virtual keyboard.  This keyboard can then be driven by another
195           domain.  If you've said Y to CONFIG_XEN_FRAMEBUFFER, you probably
196           want to say Y here.
197
198 config XEN_SCRUB_PAGES
199         bool "Scrub memory before freeing it to Xen"
200         default y
201         help
202           Erase memory contents before freeing it back to Xen's global
203           pool. This ensures that any secrets contained within that
204           memory (e.g., private keys) cannot be found by other guests that
205           may be running on the machine. Most people will want to say Y here.
206           If security is not a concern then you may increase performance by
207           saying N.
208
209 config XEN_DISABLE_SERIAL
210         bool "Disable serial port drivers"
211         default y
212         help
213           Disable serial port drivers, allowing the Xen console driver
214           to provide a serial console at ttyS0.
215
216 config XEN_SYSFS
217         tristate "Export Xen attributes in sysfs"
218         depends on SYSFS
219         default y
220         help
221           Xen hypervisor attributes will show up under /sys/hypervisor/.
222
223 choice
224         prompt "Xen version compatibility"
225         default XEN_COMPAT_030002_AND_LATER
226
227         config XEN_COMPAT_030002_AND_LATER
228                 bool "3.0.2 and later"
229
230         config XEN_COMPAT_LATEST_ONLY
231                 bool "no compatibility code"
232
233 endchoice
234
235 config XEN_COMPAT_030002
236         bool
237         default XEN_COMPAT_030002_AND_LATER
238
239 endmenu
240
241 config HAVE_ARCH_ALLOC_SKB
242         bool
243         default y
244
245 config HAVE_ARCH_DEV_ALLOC_SKB
246         bool
247         default y
248
249 config HAVE_IRQ_IGNORE_UNHANDLED
250         bool
251         default y
252
253 config NO_IDLE_HZ
254         bool
255         default y
256
257 config XEN_UTIL
258         bool
259         default y
260
261 config XEN_BALLOON
262         bool
263         default y
264
265 config XEN_DEVMEM
266         bool
267         default y
268
269 config XEN_SKBUFF
270         bool
271         default y
272         depends on NET
273
274 config XEN_REBOOT
275         bool
276         default y
277
278 config XEN_SMPBOOT
279         bool
280         default y
281         depends on SMP
282
283 endif