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