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.


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