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.


Integration of QUIX86 decoder libraries. Debug and optimized versions.
[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         help
17           This enables the necesary options to compile Palacios with Kitten
18
19 config LINUX_BUILTIN
20         bool "OLD Linux (Built in) -- to be deprecated"
21         select BUILT_IN_STDLIB
22         select BUILT_IN_ATOI
23         select FILE
24         help
25           This enables the necessary options to compile Palacios with Linux 2.6
26           Currently, this is in development, and only 2.6.32 is verified to work
27
28
29 config LINUX
30         bool "Linux Module"
31         select BUILT_IN_STDLIB
32         select BUILT_IN_STRDUP
33         select BUILT_IN_ATOI
34         select FILE
35         select V3_DECODER
36         help
37           This enables the necessary options to compile Palacios as a Linux module
38  
39
40 config LINUX_KERN
41         depends on LINUX
42         string "Linux Kernel Source directory" 
43         default "/usr/src/linux"
44         help 
45           This is the directory containing the linux source for the kernel module to be built
46
47 config MINIX
48         bool "MINIX 3"
49         help
50           This enables the necesary options to compile Palacios with Kitten
51
52 config OTHER_OS
53         bool "Other OS"
54         help 
55           Choose this to compile Palacios for a Generic Host OS
56           (Formerly GeekOS)
57
58 endchoice
59
60 config CRAY_XT
61         bool "Red Storm (Cray XT3/XT4)"
62         help
63           Support for Cray XT3 and XT4 systems.
64
65 config SVM
66         bool "AMD SVM Support"
67         default y
68         help
69           Compile with support for AMD SVM
70
71 config VMX
72         bool "Intel VMX Support"
73         default y
74         help 
75           Compile with support for Intel VMX
76
77
78 config FRAME_POINTER
79         bool "Compile with Frame pointers"
80         default n
81         help
82           Compiles the Palacios library with Frame pointers
83
84 config DEBUG_INFO
85         bool "Compile with Debug Information"
86         default n
87         help
88           Compiles the Palacios library with debugging symbols
89
90 choice 
91         prompt "X86 decoder"
92         default XED
93
94 config XED
95         bool "XED decoder library"
96         depends on !LINUX
97         help
98            This uses the XED decoder library from pintools 
99
100 config V3_DECODER
101         bool "Internal Palacios decoder"
102         help
103             This selects the internal V3Vee x86 decoder
104
105 config QUIX86
106     bool "QUIX86 decoder"
107     help
108         This selects the QUIX86 decoder library
109
110 config QUIX86_DEBUG
111     bool "QUIX86 decoder debug version"
112     help
113         This selects the QUIX86 decoder library compiled w/o optimization
114         and with debug info
115
116 endchoice
117
118 menu "Supported host OS features"
119       
120
121 config ALIGNED_PG_ALLOC
122         bool "Host support for aligned page allocations"
123         default n
124         help 
125           Select this if your OS supports allocating memory pages using an alignment. This is required 
126           if you want Palacios to run with large page table pages. 
127
128 config MAX_CPUS
129         int "Maximum number of cpus"
130         range 1 255
131         default "16"
132         help 
133           Specifies the maximum number of hardware CPUs supported by the OS
134           For uniprocessor environments, set this to 1
135
136 endmenu
137
138 source "palacios/src/interfaces/Kconfig"
139 source "palacios/src/extensions/Kconfig"
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 CHECKPOINT
175         bool "Enable Checkpointing"
176         default n
177         help 
178           Temporary option to enable experimental checkpoint code
179
180
181
182 endmenu
183
184
185 source "Kconfig.stdlibs"
186
187
188 menu "Virtual Paging"
189
190 config SHADOW_PAGING
191         bool "Enable shadow paging"
192         default y
193         help 
194            Enables shadow paging for virtual machines
195
196
197 config SHADOW_PAGING_VTLB
198         bool "Virtual TLB"
199         default y
200         depends on SHADOW_PAGING
201         help 
202            Enables Virtual TLB implemenation for shadow paging
203
204
205 config DEBUG_SHDW_PG_VTLB
206         bool "Enable VTLB debugging"
207         default n
208         depends on SHADOW_PAGING_VTLB
209         help
210           Enables debugging messages for VTLB implementation
211
212 config SHADOW_PAGING_CACHE1
213         bool "Shadow Page Cache (1)"
214         default y
215         depends on SHADOW_PAGING
216         help 
217            Enables caching implemenation for shadow paging
218
219
220 endmenu
221
222
223
224 menu "Time Management"
225 config TIME_DILATION
226         bool "Control Guest/Host Time Offseting"
227         default n
228         depends on EXPERIMENTAL
229         help
230             Controls the relative speeds of the guest and host processor
231             to allow the VM to provide the illusion of the guest seeing time
232             pass at a different rate than the host system does.
233
234 config TIME_HIDE_VM_COST
235         bool "Hide VMM Run Cost"
236         default n
237         depends on EXPERIMENTAL 
238         help
239             Offset guest time from host time sufficiently to hide the cost of
240             running in the virtual machine. This can aid the consistency of
241             time between multiple timers, but can cause the guest to run 
242             a good bit slower than the host in VM-intensive parts of the code.
243
244 config TIME_VIRTUALIZE_TSC
245         bool "Fully virtualize guest TSC"
246         default n
247         depends on EXPERIMENTAL
248         help
249             Virtualize the processor time stamp counter in the guest, 
250             generally increasing consistency between various time sources 
251             but also potentially making guest time run slower than real time.
252         
253 endmenu
254
255
256
257 menu "Symbiotic Functions"
258
259 config SYMBIOTIC
260         bool "Enable Symbiotic Functionality"
261         default n
262         help 
263           Enable Symbiotic components of the VMM. 
264           This includes the SymSpy interface.
265
266 config SYMCALL
267         bool "Symbiotic upcalls"
268         default n
269         depends on SYMBIOTIC && EXPERIMENTAL
270         help
271           Enables the Symbiotic upcall interface
272
273 config SWAPBYPASS
274         bool "SwapBypass"
275         default n
276         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
277         help 
278           This enables the SwapBypass architecture
279
280 config SWAPBYPASS_TELEMETRY
281         bool "Enable SwapBypass Telemetry"
282         default n
283         depends on TELEMETRY && SWAPBYPASS
284         help 
285           Enable the telemetry information for the SwapBypass subsystem
286
287 menuconfig SYMMOD 
288         bool "Symbiotic Modules"
289         default n
290         depends on EXPERIMENTAL
291 #       depends on SYMBIOTIC
292         help
293           Enable Symbiotic module loading
294
295
296 endmenu
297
298 menu "VNET"
299
300 config VNET
301         bool "Enable Vnet in Palacios"
302         default n
303         help
304           Enable the Vnet in Palacios
305
306 config DEBUG_VNET
307         depends on VNET
308         bool "Enable Vnet Debug in Palacios"
309         default n
310         help
311           Enable the Vnet debug in Palacios
312
313
314 endmenu
315
316 menu "Debug configuration"
317
318
319 ## Is unwind information useful
320
321 config DEBUG_ON
322         bool "Enable Debugging"
323         default y
324         help
325           This turns on debugging support
326
327
328 config DEBUG_SVM
329         bool "AMD SVM"
330         default n
331         depends on DEBUG_ON
332         help 
333           This turns on debugging for the AMD SVM-specific code
334
335 config DEBUG_VMX
336         bool "Intel VT"
337         default n
338         depends on DEBUG_ON
339         help 
340           This turns on debugging for the Intel VT-specific code
341
342
343 config DEBUG_SHADOW_PAGING
344         bool "Shadow paging"
345         default n
346         depends on DEBUG_ON
347         help 
348           This turns on debugging for the shadow paging system
349
350
351 config DEBUG_NESTED_PAGING
352         bool "Nested paging"
353         default n
354         depends on DEBUG_ON
355         help 
356           This turns on debugging for the nested paging system
357
358
359 config DEBUG_CTRL_REGS
360         bool "Control registers"
361         default n
362         depends on DEBUG_ON
363         help 
364           This turns on debugging for the control register handlers
365
366
367 config DEBUG_INTERRUPTS
368         bool "Interrupts"
369         default n
370         depends on DEBUG_ON
371         help 
372           This turns on debugging for the interrupt system
373
374 config DEBUG_TIME
375         bool "Timing"
376         default n
377         depends on DEBUG_ON
378         help
379           This turns on debugging of system time virtualization
380
381 config DEBUG_IO
382         bool "IO"
383         default n
384         depends on DEBUG_ON
385         help 
386           This turns on debugging for the IO handlers
387
388
389 config DEBUG_EMULATOR
390         bool "Instruction Emulator"
391         default n
392         depends on DEBUG_ON
393         help 
394           This turns on debugging for the Instruction Emulator
395
396
397 config DEBUG_DECODER
398         bool "Instruction Decoder"
399         default n
400         depends on DEBUG_ON
401         help 
402           This turns on debugging for the selected instruction decoder
403
404 config DEBUG_HALT
405         bool "Halt"
406         default n
407         depends on DEBUG_ON
408         help 
409           This turns on debugging for the halt instruction handler
410
411 config DEBUG_DEV_MGR
412         bool "Device Manager"
413         default n
414         depends on DEBUG_ON
415         help 
416           This turns on debugging for the device manager
417
418 config DEBUG_MEM_ERRORS
419     bool "Verbose memory errors"
420     default n
421     depends on DEBUG_ON
422     help
423       This turns on debugging for memory translations and lookups
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