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.


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