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.


more linux build tweeks
[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 console"
137         default n
138         help 
139           Select this if you want to forward a guest console interface to some host OS service
140
141 config SOCKET
142         bool "Host support for Network Sockets"
143         default y
144         help
145           Select this if you host OS implements a socket API that is available to Palacios. This is required
146           to support the internal networking features of Palacios.
147
148
149 config PACKET
150         bool "Host support for Raw Packet Transmision"
151         depends on EXPERIMENTAL
152         default n
153         help 
154           Select this if you host OS implements a raw packet network API that is available to Palacios. This is required 
155           to support the internal networking features of Palacios.
156
157 endmenu
158
159
160
161 config TELEMETRY
162         bool "Enable VMM telemetry support"
163         default n
164         help 
165           Enable the telemetry framework in Palacios
166           -----
167           This is a framwork that allows components of palacios to record 
168           information that is periodically reported to the log output.
169           Telemetry is automatically collected for vmexits. Subsystem telemetry 
170           is configured separately
171
172
173 config SHADOW_PAGING_TELEMETRY
174         bool "Enable Shadow Paging Telemetry"
175         default y
176         depends on TELEMETRY
177         help
178           Enable telemetry information for shadow paging 
179
180
181
182 config EXPERIMENTAL
183         bool "Enable Experimental options"
184         default n
185         help 
186           This allows the selection of experimental features. This includes incomplete or unreviewed code. 
187           Only enable this feature if you are working on the features in question. 
188           IMPORTANT: Non-experimental code MUST NOT use, require, or rely on experimental features. 
189           Any code that violates this will be immediately deleted without warning. 
190           -- 
191           The purpose of this option is to allow features under development to be committed to the mainline
192           to more easily track changes and provide access to multiple developers
193
194 config VNET
195         depends on EXPERIMENTAL
196         bool "Enable Vnet in Palacios"
197         default n
198         help
199           Enable the Vnet in Palacios
200
201 config DEBUG_VNET
202         depends on EXPERIMENTAL && VNET
203         bool "Enable Vnet Debug in Palacios"
204         default n
205         help
206           Enable the Vnet debug in Palacios
207
208 config LINUX_VIRTIO_VNET
209         bool "Enable Virtio VNET interface"
210         default n
211         depends on PCI && EXPERIMENTAL && VNET
212         help
213           Enable the Virtio VNET interface
214
215 config DEBUG_LINUX_VIRTIO_VNET
216         bool "Virtio VNET Interface Debugging"
217         default n
218         depends on LINUX_VIRTIO_VNET && DEBUG_ON
219         help
220           Enable debugging for the VNET Virtio interface
221
222 endmenu
223
224
225 source "Kconfig.stdlibs"
226
227
228 menu "Virtual Paging"
229
230 config SHADOW_PAGING
231         bool "Enable shadow paging"
232         default y
233         help 
234            Enables shadow paging for virtual machines
235
236
237 config SHADOW_PAGING_VTLB
238         bool "Virtual TLB"
239         default y
240         depends on SHADOW_PAGING
241         help 
242            Enables Virtual TLB implemenation for shadow paging
243
244
245 config DEBUG_SHDW_PG_VTLB
246         bool "Enable VTLB debugging"
247         default n
248         depends on SHADOW_PAGING_VTLB
249         help
250           Enables debugging messages for VTLB implementation
251
252 config SHADOW_PAGING_CACHE1
253         bool "Shadow Page Cache (1)"
254         default y
255         depends on SHADOW_PAGING
256         help 
257            Enables caching implemenation for shadow paging
258
259
260 endmenu
261
262
263 menu "Time Management"
264 config VIRTUALIZE_TIME
265         bool "Enable Time virtualization"
266         default n
267         help
268            Enables the timer virtualization extensions
269  
270 config TIME_HIDE_VM_COST
271         bool "Hide VMM Run Cost"
272         default n
273         depends on VIRTUALIZE_TIME
274         help
275             Offset guest time from host time sufficiently to hide the cost of
276             running in the virtual machine. This can aid the consistency of
277             time between multiple timers, but can cause the guest to run 
278             a good bit slower than the host in VM-intensive parts of the code.
279
280 config TIME_VIRTUALIZE_TSC
281         bool "Fully virtualize guest TSC"
282         default n
283         depends on VIRTUALIZE_TIME
284         help
285             Virtualize the processor time stamp counter in the guest, 
286             generally increasing consistency between various time sources 
287             but also potentially making guest time run slower than real time.
288          
289 endmenu
290
291 menu "Symbiotic Functions"
292
293 config SYMBIOTIC
294         bool "Enable Symbiotic Functionality"
295         default n
296         help 
297           Enable Symbiotic components of the VMM. 
298           This includes the SymSpy interface.
299
300 config SYMCALL
301         bool "Symbiotic upcalls"
302         default n
303         depends on SYMBIOTIC && EXPERIMENTAL
304         help
305           Enables the Symbiotic upcall interface
306
307 config SWAPBYPASS
308         bool "SwapBypass"
309         default n
310         depends on SYMBIOTIC && SYMCALL && EXPERIMENTAL
311         help 
312           This enables the SwapBypass architecture
313
314 config SWAPBYPASS_TELEMETRY
315         bool "Enable SwapBypass Telemetry"
316         default n
317         depends on TELEMETRY && SWAPBYPASS
318         help 
319           Enable the telemetry information for the SwapBypass subsystem
320
321 menuconfig SYMMOD 
322         bool "Symbiotic Modules"
323         default n
324         depends on EXPERIMENTAL
325 #       depends on SYMBIOTIC
326         help
327           Enable Symbiotic module loading
328
329
330 endmenu
331
332
333
334 menu "Debug configuration"
335
336 config CONFIG_DEBUG_INFO
337         bool "Compile with Debug information"
338         default n
339         help 
340          This adds the -g flag to the compilation flags
341
342
343 ## Is unwind information useful
344
345 config DEBUG_ON
346         bool "Enable Debugging"
347         default y
348         help
349           This turns on debugging support
350
351
352 config DEBUG_SVM
353         bool "AMD SVM"
354         default n
355         depends on DEBUG_ON
356         help 
357           This turns on debugging for the AMD SVM-specific code
358
359 config DEBUG_VMX
360         bool "Intel VT"
361         default n
362         depends on DEBUG_ON
363         help 
364           This turns on debugging for the Intel VT-specific code
365
366
367 config DEBUG_SHADOW_PAGING
368         bool "Shadow paging"
369         default n
370         depends on DEBUG_ON
371         help 
372           This turns on debugging for the shadow paging system
373
374
375 config DEBUG_NESTED_PAGING
376         bool "Nested paging"
377         default n
378         depends on DEBUG_ON
379         help 
380           This turns on debugging for the nested paging system
381
382
383 config DEBUG_CTRL_REGS
384         bool "Control registers"
385         default n
386         depends on DEBUG_ON
387         help 
388           This turns on debugging for the control register handlers
389
390
391 config DEBUG_INTERRUPTS
392         bool "Interrupts"
393         default n
394         depends on DEBUG_ON
395         help 
396           This turns on debugging for the interrupt system
397
398 config DEBUG_TIME
399         bool "Timing"
400         default n
401         depends on DEBUG_ON
402         help
403           This turns on debugging of system time virtualization
404
405 config DEBUG_IO
406         bool "IO"
407         default n
408         depends on DEBUG_ON
409         help 
410           This turns on debugging for the IO handlers
411
412
413 config DEBUG_EMULATOR
414         bool "Instruction Emulator"
415         default n
416         depends on DEBUG_ON
417         help 
418           This turns on debugging for the Instruction Emulator
419
420
421 config DEBUG_XED
422         bool "XED"
423         default n
424         depends on DEBUG_ON
425         help 
426           This turns on debugging for the Xed Decoder
427
428 config DEBUG_HALT
429         bool "Halt"
430         default n
431         depends on DEBUG_ON
432         help 
433           This turns on debugging for the halt instruction handler
434
435 config DEBUG_DEV_MGR
436         bool "Device Manager"
437         default n
438         depends on DEBUG_ON
439         help 
440           This turns on debugging for the device manager
441
442
443
444
445 endmenu
446
447
448 menu "BIOS Selection"
449
450 config ROMBIOS_PATH
451         string "Path to pre-built ROMBIOS binary"
452         default "./bios/rombios/BIOS-bochs-latest"
453         help
454           This is the rombios that will be used for the guests
455
456 config VGABIOS_PATH
457         string "Path to pre-built VGABIOS binary"
458         default "./bios/vgabios/VGABIOS-lgpl-latest.bin"
459         help
460           This is the vgabios that will be used for the guests
461
462 config VMXASSIST_PATH
463         string "Path to pre-built VMXASSIST binary"
464         depends on VMX
465         default "./bios/vmxassist/vmxassist.bin"
466         help
467           This is vmxassist image to boot real mode guests on 
468           Intel VMX Platforms
469
470 endmenu
471
472
473 source "palacios/src/devices/Kconfig"
474