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.


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