Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


add the virtual console input as a host event
[palacios.git] / Kconfig
1 mainmenu "Palacios VMM Configuration"
2
3 menu "Target Configuration"
4
5
6 choice
7         prompt "Target Host OS"
8         default KITTEN
9
10 config KITTEN
11         bool "Kitten OS"
12         select BUILT_IN_STDLIB
13         select BUILT_IN_STRCASECMP
14         select BUILT_IN_ATOI
15         select ALIGNED_PG_ALLOC
16         select MULTITHREAD_OS
17         help
18           This enables the necesary options to compile Palacios with Kitten
19
20 config LINUX
21         bool "Linux 2.6"
22         select BUILT_IN_STDLIB
23         select BUILT_IN_ATOI
24         select FILE
25         help
26           This enables the necessary options to compile Palacios with Linux 2.6
27           Currently, this is in development, and only 2.6.32 is verified to work
28
29 config MINIX
30         bool "MINIX 3"
31         help
32           This enables the necesary options to compile Palacios with Kitten
33
34 config OTHER_OS
35         bool "Other OS"
36         help 
37           Choose this to compile Palacios for a Generic Host OS
38           (Formerly GeekOS)
39
40 endchoice
41
42 config CRAY_XT
43         bool "Red Storm (Cray XT3/XT4)"
44         help
45           Support for Cray XT3 and XT4 systems.
46
47 config SVM
48         bool "AMD SVM Support"
49         default y
50         help
51           Compile with support for AMD SVM
52
53 config VMX
54         bool "Intel VMX Support"
55         default y
56         help 
57           Compile with support for Intel VMX
58
59
60 menu "Supported host OS features"
61       
62 config MULTITHREAD_OS
63         bool "Host support for  multiple threads"
64         default y
65         help 
66           Select this if your OS supports multiple threads of execution. This will enable features in Palacios 
67           to require the creation of additional execution threads.
68
69
70 config ALIGNED_PG_ALLOC
71         bool "Host support for aligned page allocations"
72         default n
73         help 
74           Select this if your OS supports allocating memory pages using an alignment. This is required 
75           if you want Palacios to run with large page table pages. 
76
77 config MAX_CPUS
78         int "Maximum number of cpus"
79         range 1 255
80         default "16"
81         help 
82           Specifies the maximum number of hardware CPUs supported by the OS
83           For uniprocessor environments, set this to 1
84
85 config FILE
86         bool "Host Support for file operations"
87         default n
88         help
89           Select this if your host OS supports file operatoins and you want Palacios to be able to use them.
90
91
92 config CONSOLE
93         bool "Host Support for VM console"
94         default n
95         help 
96           Select this if you want to forward a guest console interface to some host OS service
97
98
99 config SOCKET
100         bool "Host support for Network Sockets"
101         default y
102         help 
103           Select this if you host OS implements a socket API that is available to Palacios. This is required 
104           to support the internal networking features of Palacios.
105
106 endmenu
107
108
109
110 config TELEMETRY
111         bool "Enable VMM telemetry support"
112         default n
113         help 
114           Enable the telemetry framework in Palacios
115           -----
116           This is a framwork that allows components of palacios to record 
117           information that is periodically reported to the log output.
118           Telemetry is automatically collected for vmexits. Subsystem telemetry 
119           is configured separately
120
121
122 config SHADOW_PAGING_TELEMETRY
123         bool "Enable Shadow Paging Telemetry"
124         default y
125         depends on TELEMETRY
126         help
127           Enable telemetry information for shadow paging 
128
129
130 config INSTRUMENT_VMM
131         bool "Enable VMM instrumentation"
132         default n
133         help 
134           Enable the instrumentation framework
135           --------
136           This is much heavier weight than profiling
137
138 config EXPERIMENTAL
139         bool "Enable Experimental options"
140         default n
141         help 
142           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
143           Only enable this feature if you are working on the features in question. 
144           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
145           Any code that violates this will be immediately deleted without warning. 
146           -- 
147           The purpose of this option is to allow features under development to be committed to the mainline
148           to more easily track changes and provide access to multiple developers
149
150 config VNET
151         depends on EXPERIMENTAL
152         bool "Enable Vnet in Palacios"
153         default n
154         help
155           Enable the Vnet in Palacios
156
157 config DEBUG_VNET
158         depends on EXPERIMENTAL && VNET
159         bool "Enable Vnet Debug in Palacios"
160         default n
161         help
162           Enable the Vnet debug in Palacios
163
164 config VNET_PROFILE
165         depends on EXPERIMENTAL && VNET
166         bool "Enable Vnet Profiling in Palacios"
167         default n
168         help
169           Enable the Vnet performance profiling in Palacios
170
171 config LINUX_VIRTIO_VNET
172         bool "Enable Virtio VNET interface"
173         default n
174         depends on PCI && EXPERIMENTAL && VNET
175         help
176           Enable the Virtio VNET interface
177
178 config DEBUG_LINUX_VIRTIO_VNET
179         bool "VNET Virtio Device Debugging"
180         default n
181         depends on LINUX_VIRTIO_VNET && DEBUG_ON
182         help
183           Enable debugging for the VNET Virtio Device
184
185 config LINUX_VNET_BRIDGE
186         bool "Enable VNET Bridge for Linux host"
187         default n
188         depends on PCI && EXPERIMENTAL && VNET && LINUX
189         help
190           Enable the VNET Bridge for Linux host
191
192 config DEBUG_LINUX_VNET_BRIDGE
193         bool "VNET Host Linux Bridge Debug"
194         default n
195         depends on LINUX_VNET_BRIDGE && DEBUG_ON && LINUX
196         help
197           Enable debugging for the VNET Host Linux Bridge
198
199 endmenu
200
201
202 source "Kconfig.stdlibs"
203
204
205 menu "Virtual Paging"
206
207 config SHADOW_PAGING
208         bool "Enable shadow paging"
209         default y
210         help 
211            Enables shadow paging for virtual machines
212
213
214 config SHADOW_PAGING_VTLB
215         bool "Virtual TLB"
216         default y
217         depends on SHADOW_PAGING
218         help 
219            Enables Virtual TLB implemenation for shadow paging
220
221
222 config DEBUG_SHDW_PG_VTLB
223         bool "Enable VTLB debugging"
224         default n
225         depends on SHADOW_PAGING_VTLB
226         help
227           Enables debugging messages for VTLB implementation
228
229 config SHADOW_PAGING_CACHE1
230         bool "Shadow Page Cache (1)"
231         default y
232         depends on SHADOW_PAGING
233         help 
234            Enables caching implemenation for shadow paging
235
236
237 endmenu
238
239
240 menu "Time Management"
241
242 config TIME_VIRTUALIZE_TSC
243         bool "Virtualize guest TSC"
244         default n
245         help
246             Virtualize the processor time stamp counter in the guest, 
247             generally increasing consistency between various time sources 
248             but also potentially making guest time run slower than real time.
249
250 endmenu
251
252 menu "Symbiotic Functions"
253
254 config SYMBIOTIC
255         bool "Enable Symbiotic Functionality"
256         default n
257         help 
258           Enable Symbiotic components of the VMM. 
259           This includes the SymSpy interface.
260
261 config SYMCALL
262         bool "Symbiotic upcalls"
263         default n
264         depends on SYMBIOTIC && EXPERIMENTAL
265         help
266           Enables the Symbiotic upcall interface
267
268 config SWAPBYPASS
269         bool "SwapBypass"
270         default n
271         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
272         help 
273           This enables the SwapBypass architecture
274
275 config SWAPBYPASS_TELEMETRY
276         bool "Enable SwapBypass Telemetry"
277         default n
278         depends on TELEMETRY && SWAPBYPASS
279         help 
280           Enable the telemetry information for the SwapBypass subsystem
281
282 menuconfig SYMMOD 
283         bool "Symbiotic Modules"
284         default n
285         depends on EXPERIMENTAL
286 #       depends on SYMBIOTIC
287         help
288           Enable Symbiotic module loading
289
290
291 endmenu
292
293
294
295 menu "Debug configuration"
296
297 config CONFIG_DEBUG_INFO
298         bool "Compile with Debug information"
299         default n
300         help 
301          This adds the -g flag to the compilation flags
302
303
304 ## Is unwind information useful
305
306 config DEBUG_ON
307         bool "Enable Debugging"
308         default y
309         help
310           This turns on debugging support
311
312
313 config DEBUG_SVM
314         bool "AMD SVM"
315         default n
316         depends on DEBUG_ON
317         help 
318           This turns on debugging for the AMD SVM-specific code
319
320 config DEBUG_VMX
321         bool "Intel VT"
322         default n
323         depends on DEBUG_ON
324         help 
325           This turns on debugging for the Intel VT-specific code
326
327
328 config DEBUG_SHADOW_PAGING
329         bool "Shadow paging"
330         default n
331         depends on DEBUG_ON
332         help 
333           This turns on debugging for the shadow paging system
334
335
336 config DEBUG_NESTED_PAGING
337         bool "Nested paging"
338         default n
339         depends on DEBUG_ON
340         help 
341           This turns on debugging for the nested paging system
342
343
344 config DEBUG_CTRL_REGS
345         bool "Control registers"
346         default n
347         depends on DEBUG_ON
348         help 
349           This turns on debugging for the control register handlers
350
351
352 config DEBUG_INTERRUPTS
353         bool "Interrupts"
354         default n
355         depends on DEBUG_ON
356         help 
357           This turns on debugging for the interrupt system
358
359 config DEBUG_TIME
360         bool "Timing"
361         default n
362         depends on DEBUG_ON
363         help
364           This turns on debugging of system time virtualization
365
366 config DEBUG_IO
367         bool "IO"
368         default n
369         depends on DEBUG_ON
370         help 
371           This turns on debugging for the IO handlers
372
373
374 config DEBUG_EMULATOR
375         bool "Instruction Emulator"
376         default n
377         depends on DEBUG_ON
378         help 
379           This turns on debugging for the Instruction Emulator
380
381
382 config DEBUG_XED
383         bool "XED"
384         default n
385         depends on DEBUG_ON
386         help 
387           This turns on debugging for the Xed Decoder
388
389 config DEBUG_HALT
390         bool "Halt"
391         default n
392         depends on DEBUG_ON
393         help 
394           This turns on debugging for the halt instruction handler
395
396 config DEBUG_DEV_MGR
397         bool "Device Manager"
398         default n
399         depends on DEBUG_ON
400         help 
401           This turns on debugging for the device manager
402
403
404
405
406 endmenu
407
408
409 menu "BIOS Selection"
410
411 config ROMBIOS_PATH
412         string "Path to pre-built ROMBIOS binary"
413         default "./bios/rombios/BIOS-bochs-latest"
414         help
415           This is the rombios that will be used for the guests
416
417 config VGABIOS_PATH
418         string "Path to pre-built VGABIOS binary"
419         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
420         help
421           This is the vgabios that will be used for the guests
422
423 config VMXASSIST_PATH
424         string "Path to pre-built VMXASSIST binary"
425         depends on VMX
426         default "./bios/vmxassist/vmxassist.bin"
427         help
428           This is vmxassist image to boot real mode guests on 
429           Intel VMX Platforms
430
431 endmenu
432
433
434 source "palacios/src/devices/Kconfig"
435