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.


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