Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / seabios / src / Kconfig
1 # Kconfig SeaBIOS configuration
2
3 mainmenu "SeaBIOS Configuration"
4
5 menu "General Features"
6
7 choice
8     prompt "Build Target"
9     default QEMU
10
11     config COREBOOT
12         bool "Build for coreboot"
13         help
14             Configure as a coreboot payload.
15
16     config QEMU
17         bool "Build for QEMU/Xen/KVM/Bochs"
18         select QEMU_HARDWARE
19         help
20             Configure for an emulated machine (QEMU, Xen, KVM, or Bochs).
21
22     config CSM
23        bool "Build as Compatibilty Support Module for EFI BIOS"
24        help
25            Configure to be used by EFI firmware as Compatibility Support
26            module (CSM) to provide legacy BIOS services.
27
28 endchoice
29
30     config QEMU_HARDWARE
31         bool "Support hardware found on emulators (QEMU/Xen/KVM/Bochs)" if !QEMU
32         default n
33         help
34             Support virtual hardware when the code detects it is
35             running on an emulator.
36
37     config XEN
38         depends on QEMU
39         bool "Support Xen HVM"
40         default y
41         help
42             Configure to be used by xen hvmloader, for a HVM guest.
43
44     config THREADS
45         bool "Parallelize hardware init"
46         default y
47         help
48             Support running hardware initialization in parallel.
49
50     config RELOCATE_INIT
51         bool "Copy init code to high memory"
52         default y
53         help
54             Support relocating the one time initialization code to high memory.
55
56     config BOOTMENU
57         depends on BOOT
58         bool "Bootmenu"
59         default y
60         help
61             Support an interactive boot menu at end of post.
62     config BOOTSPLASH
63         depends on BOOTMENU
64         bool "Graphical boot splash screen"
65         default y
66         help
67             Support showing a graphical boot splash screen.
68     config BOOTORDER
69         depends on BOOT
70         bool "Boot ordering"
71         default y
72         help
73             Support controlling of the boot order via the fw_cfg/CBFS
74             "bootorder" file.
75
76     config COREBOOT_FLASH
77         depends on COREBOOT
78         bool "coreboot CBFS support"
79         default y
80         help
81             Support searching coreboot flash format.
82     config LZMA
83         depends on COREBOOT_FLASH
84         bool "CBFS lzma support"
85         default y
86         help
87             Support CBFS files compressed using the lzma decompression
88             algorithm.
89     config CBFS_LOCATION
90         depends on COREBOOT_FLASH
91         hex "CBFS memory end location"
92         default 0
93         help
94             Memory address of where the CBFS data ends.  This should
95             be zero for normal builds.  It may be a non-zero value if
96             the CBFS filesystem is at a non-standard location (eg,
97             0xffe00000 if CBFS ends 2Meg below the end of flash).
98
99     config FLASH_FLOPPY
100         depends on COREBOOT_FLASH
101         bool "Floppy images in CBFS"
102         default y
103         help
104             Support floppy images in coreboot flash.
105     config ENTRY_EXTRASTACK
106         bool "Use internal stack for 16bit interrupt entry points"
107         default y
108         help
109             Utilize an internal stack for all the legacy 16bit
110             interrupt entry points.  This reduces the amount of space
111             on the caller's stack that SeaBIOS uses.  This may
112             adversely impact any legacy operating systems that call
113             the BIOS in 16bit protected mode.
114
115     config MALLOC_UPPERMEMORY
116         bool "Allocate memory that needs to be in first Meg above 0xc0000"
117         default y
118         help
119             Use the "Upper Memory Block" area (0xc0000-0xf0000) for
120             internal "low memory" allocations.  If this is not
121             selected, the memory is instead allocated from the
122             "9-segment" (0x90000-0xa0000).
123
124     config ROM_SIZE
125         int "ROM size (in KB)"
126         default 0
127         help
128             Set the ROM size.  Say '0' here to make seabios figure the
129             needed size automatically.
130
131             Currently SeaBIOS will easily fit into 256 KB. To make it fit
132             it into 128 KB (which was big enouth for a long time) you'll
133             probably have to disable some featues such as xhci support.
134
135 endmenu
136
137 menu "Hardware support"
138     config ATA
139         depends on DRIVES
140         bool "ATA controllers"
141         default y
142         help
143             Support for IDE disk code.
144     config ATA_DMA
145         depends on ATA
146         bool "ATA DMA"
147         default n
148         help
149             Detect and try to use ATA bus mastering DMA controllers.
150     config ATA_PIO32
151         depends on ATA
152         bool "ATA 32bit PIO"
153         default n
154         help
155             Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
156     config AHCI
157         depends on DRIVES
158         bool "AHCI controllers"
159         default y
160         help
161             Support for AHCI disk code.
162     config SDCARD
163         depends on DRIVES && QEMU_HARDWARE
164         bool "SD controllers"
165         default y
166         help
167             Support for SD cards on PCI host controllers.
168     config VIRTIO_BLK
169         depends on DRIVES && QEMU_HARDWARE
170         bool "virtio-blk controllers"
171         default y
172         help
173             Support boot from virtio-blk storage.
174     config VIRTIO_SCSI
175         depends on DRIVES && QEMU_HARDWARE
176         bool "virtio-scsi controllers"
177         default y
178         help
179             Support boot from virtio-scsi storage.
180     config PVSCSI
181         depends on DRIVES && QEMU_HARDWARE
182         bool "PVSCSI controllers"
183         default y
184         help
185             Support boot from Paravirtualized SCSI storage. This kind of storage
186             is mainly supported by VMware ESX hypervisor. It is commonly used
187             to allow fast storage access by communicating directly with the
188             underlying hypervisor. Enabling this type of boot will allow
189             booting directly from images imported from an ESX platform,
190             without the need to use slower emulation of storage controllers
191             such as IDE.
192     config ESP_SCSI
193         depends on DRIVES && QEMU_HARDWARE
194         bool "AMD PCscsi controllers"
195         default y
196         help
197             Support boot from AMD PCscsi storage.
198     config LSI_SCSI
199         depends on DRIVES && QEMU_HARDWARE
200         bool "lsi53c895a scsi controllers"
201         default y
202         help
203             Support boot from qemu-emulated lsi53c895a scsi storage.
204     config MEGASAS
205         depends on DRIVES
206         bool "LSI MegaRAID SAS controllers"
207         default y
208         help
209             Support boot from LSI MegaRAID SAS scsi storage.
210     config FLOPPY
211         depends on DRIVES
212         bool "Floppy controller"
213         default y
214         help
215             Support floppy drive access.
216
217     config PS2PORT
218         depends on KEYBOARD || MOUSE
219         bool "PS/2 port"
220         default y
221         help
222             Support PS2 ports (keyboard and mouse).
223
224     config USB
225         bool "USB"
226         default y
227         help
228             Support USB devices.
229     config USB_UHCI
230         depends on USB
231         bool "USB UHCI controllers"
232         default y
233         help
234             Support USB UHCI controllers.
235     config USB_OHCI
236         depends on USB
237         bool "USB OHCI controllers"
238         default y
239         help
240             Support USB OHCI controllers.
241     config USB_EHCI
242         depends on USB
243         bool "USB EHCI controllers"
244         default y
245         help
246             Support USB EHCI controllers.
247     config USB_XHCI
248         depends on USB
249         bool "USB XHCI controllers"
250         default y
251         help
252             Support USB XHCI controllers.
253     config USB_MSC
254         depends on USB && DRIVES
255         bool "USB drives"
256         default y
257         help
258             Support USB BOT (bulk-only transport) disks.
259     config USB_UAS
260         depends on USB && DRIVES
261         bool "UAS drives"
262         default y
263         help
264             Support USB UAS (usb attached scsi) disks.
265     config USB_HUB
266         depends on USB
267         bool "USB hubs"
268         default y
269         help
270             Support USB hubs.
271     config USB_KEYBOARD
272         depends on USB && KEYBOARD
273         bool "USB keyboards"
274         default y
275         help
276             Support USB keyboards.
277     config USB_MOUSE
278         depends on USB && MOUSE
279         bool "USB mice"
280         default y
281         help
282             Support USB mice.
283
284     config SERIAL
285         bool "Serial port"
286         default y
287         help
288             Support serial ports.  This also enables int 14 serial port calls.
289     config LPT
290         bool "Parallel port"
291         default y
292         help
293             Support parallel ports. This also enables int 17 parallel port calls.
294
295     config USE_SMM
296         depends on QEMU
297         bool "System Management Mode (SMM)"
298         default y
299         help
300             Support System Management Mode (on emulators).
301     config CALL32_SMM
302         bool
303         depends on USE_SMM
304         default y
305     config MTRR_INIT
306         depends on QEMU
307         bool "Initialize MTRRs"
308         default y
309         help
310             Initialize the Memory Type Range Registers (on emulators).
311     config PMTIMER
312         bool "Use ACPI timer"
313         default y
314         help
315             Use the ACPI timer instead of the TSC for timekeeping (on qemu).
316 endmenu
317
318 menu "BIOS interfaces"
319     config DRIVES
320         bool "Drive interface"
321         default y
322         help
323             Support int13 disk/floppy drive functions.
324
325     config CDROM_BOOT
326         depends on DRIVES
327         bool "DVD/CDROM booting"
328         default y
329         help
330             Support for booting from a CD.  (El Torito spec support.)
331     config CDROM_EMU
332         depends on CDROM_BOOT
333         bool "DVD/CDROM boot drive emulation"
334         default y
335         help
336             Support bootable CDROMs that emulate a floppy/harddrive.
337
338     config PCIBIOS
339         bool "PCIBIOS interface"
340         default y
341         help
342             Support int 1a/b1 PCI BIOS calls.
343     config APMBIOS
344         bool "APM interface"
345         default y
346         help
347             Support int 15/53 APM BIOS calls.
348     config PNPBIOS
349         bool "PnP BIOS interface"
350         default y
351         help
352             Support PnP BIOS entry point.
353     config OPTIONROMS
354         bool "Option ROMS"
355         default y
356         help
357             Support finding and running option roms during POST.
358     config OPTIONROMS_DEPLOYED
359         depends on OPTIONROMS && QEMU
360         bool "Option roms are already at 0xc0000-0xf0000"
361         default n
362         help
363             Select this if option ROMs are already copied to
364             0xc0000-0xf0000.  This must only be selected when using
365             Bochs or QEMU versions older than 0.12.
366     config PMM
367         depends on OPTIONROMS
368         bool "PMM interface"
369         default y
370         help
371             Support Post Memory Manager (PMM) entry point.
372     config BOOT
373         bool "Boot interface"
374         default y
375         help
376             Support int 19/18 system bootup support.
377     config KEYBOARD
378         bool "Keyboard interface"
379         default y
380         help
381             Support int 16 keyboard calls.
382     config KBD_CALL_INT15_4F
383         depends on KEYBOARD
384         bool "Keyboard hook interface"
385         default y
386         help
387             Support calling int155f on each keyboard event.
388     config MOUSE
389         bool "Mouse interface"
390         default y
391         help
392             Support for int15c2 mouse calls.
393
394     config S3_RESUME
395         bool "S3 resume"
396         default y
397         help
398             Support S3 resume handler.
399
400     config VGAHOOKS
401         bool "Hardware specific VGA helpers"
402         default y
403         help
404             Support int 155f BIOS callbacks specific to some Intel and
405             VIA on-board vga devices.
406
407     config DISABLE_A20
408         bool "Disable A20"
409         default n
410         help
411             Disable A20 on 16bit boot.
412
413     config WRITABLE_UPPERMEMORY
414         depends on QEMU
415         bool "Make unused UMB memory read/writeable."
416         default n
417         help
418             When selected, the "Upper Memory Block" area
419             (0x90000-0xa0000) that is not used for option roms will be
420             made writable.  This allows the ram to be directly
421             modified by programs.  However, some old DOS high memory
422             managers may require the UMB region to be read-only.
423
424 endmenu
425
426 menu "BIOS Tables"
427     depends on QEMU
428     config PIRTABLE
429         bool "PIR table"
430         default y
431         help
432             Support generation of a PIR table in 0xf000 segment.
433     config MPTABLE
434         bool "MPTable"
435         default y
436         help
437             Support generation of MPTable.
438     config SMBIOS
439         bool "SMBIOS"
440         default y
441         help
442             Support generation of SM BIOS tables.  This is also
443             sometimes called DMI.
444     config ACPI
445         bool "ACPI"
446         default y
447         help
448             Support generation of ACPI tables.
449     config ACPI_DSDT
450         bool "Include default ACPI DSDT"
451         default y
452         depends on ACPI
453         help
454             Include default DSDT ACPI table in BIOS.
455             Required for QEMU 1.3 and older.
456             This option can be disabled for QEMU 1.4 and newer
457             to save some space in the ROM file.
458             If unsure, say Y.
459     config FW_ROMFILE_LOAD
460         bool "Load BIOS tables from ROM files"
461         depends on QEMU_HARDWARE
462         default y
463         help
464             Support loading BIOS firmware tables from ROM files.
465             At the moment, only ACPI tables can be loaded in this way.
466             Required for QEMU 1.7 and newer.
467             This option can be disabled for QEMU 1.6 and older
468             to save some space in the ROM file.
469             If unsure, say Y.
470 endmenu
471
472 source vgasrc/Kconfig
473
474 menu "Debugging"
475     config DEBUG_LEVEL
476         int "Debug level"
477         default 1
478         help
479             Control how verbose debug output is.  The higher the
480             number, the more verbose SeaBIOS will be.
481
482             Set to zero to disable debugging.
483
484     config DEBUG_SERIAL
485         depends on DEBUG_LEVEL != 0
486         bool "Serial port debugging"
487         default n
488         help
489             Send debugging information to serial port.
490     config DEBUG_SERIAL_PORT
491         depends on DEBUG_SERIAL
492         hex "Serial port base address"
493         default 0x3f8
494         help
495             Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
496
497     config DEBUG_IO
498         depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
499         bool "Special IO port debugging"
500         default y
501         help
502             Some emulators or hypervisors provide with a way to output debug
503             information by outputing strings in a special port present in the
504             IO space.
505
506     config DEBUG_COREBOOT
507         depends on COREBOOT && DEBUG_LEVEL != 0
508         bool "coreboot cbmem debug logging"
509         default y
510         help
511             Send debugging information to the coreboot cbmem console buffer.
512             Needs CONFIG_CONSOLE_CBMEM in coreboot.  You can read the log
513             after boot using 'cbmem -c'.  Only 32bit code (basically every-
514             thing before booting the OS) writes to the log buffer.
515
516 endmenu