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.


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