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.


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