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