These changes are the raw update to qemu-2.6.
[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 Compatibility 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 MULTIBOOT
100         depends on COREBOOT
101         bool "multiboot support"
102         default y
103         help
104             Add multiboot header in bios.bin.raw and accept files supplied
105             as multiboot modules.
106     config ENTRY_EXTRASTACK
107         bool "Use internal stack for 16bit interrupt entry points"
108         default y
109         help
110             Utilize an internal stack for all the legacy 16bit
111             interrupt entry points.  This reduces the amount of space
112             on the caller's stack that SeaBIOS uses.  This may
113             adversely impact any legacy operating systems that call
114             the BIOS in 16bit protected mode.
115
116     config MALLOC_UPPERMEMORY
117         bool "Allocate memory that needs to be in first Meg above 0xc0000"
118         default y
119         help
120             Use the "Upper Memory Block" area (0xc0000-0xf0000) for
121             internal "low memory" allocations.  If this is not
122             selected, the memory is instead allocated from the
123             "9-segment" (0x90000-0xa0000).
124
125     config ROM_SIZE
126         int "ROM size (in KB)"
127         default 0
128         help
129             Set the ROM size.  Say '0' here to make seabios figure the
130             needed size automatically.
131
132             Currently SeaBIOS will easily fit into 256 KB. To make it fit
133             it into 128 KB (which was big enouth for a long time) you'll
134             probably have to disable some featues such as xhci support.
135
136 endmenu
137
138 menu "Hardware support"
139     config ATA
140         depends on DRIVES
141         bool "ATA controllers"
142         default y
143         help
144             Support for IDE disk code.
145     config ATA_DMA
146         depends on ATA
147         bool "ATA DMA"
148         default n
149         help
150             Detect and try to use ATA bus mastering DMA controllers.
151     config ATA_PIO32
152         depends on ATA
153         bool "ATA 32bit PIO"
154         default n
155         help
156             Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
157     config AHCI
158         depends on DRIVES
159         bool "AHCI controllers"
160         default y
161         help
162             Support for AHCI disk code.
163     config SDCARD
164         depends on DRIVES
165         bool "SD controllers"
166         default y
167         help
168             Support for SD cards on PCI host controllers.
169     config VIRTIO_BLK
170         depends on DRIVES && QEMU_HARDWARE
171         bool "virtio-blk controllers"
172         default y
173         help
174             Support boot from virtio-blk storage.
175     config VIRTIO_SCSI
176         depends on DRIVES && QEMU_HARDWARE
177         bool "virtio-scsi controllers"
178         default y
179         help
180             Support boot from virtio-scsi storage.
181     config PVSCSI
182         depends on DRIVES && QEMU_HARDWARE
183         bool "PVSCSI controllers"
184         default y
185         help
186             Support boot from Paravirtualized SCSI storage. This kind of storage
187             is mainly supported by VMware ESX hypervisor. It is commonly used
188             to allow fast storage access by communicating directly with the
189             underlying hypervisor. Enabling this type of boot will allow
190             booting directly from images imported from an ESX platform,
191             without the need to use slower emulation of storage controllers
192             such as IDE.
193     config ESP_SCSI
194         depends on DRIVES && QEMU_HARDWARE
195         bool "AMD PCscsi controllers"
196         default y
197         help
198             Support boot from AMD PCscsi storage.
199     config LSI_SCSI
200         depends on DRIVES && QEMU_HARDWARE
201         bool "lsi53c895a scsi controllers"
202         default y
203         help
204             Support boot from qemu-emulated lsi53c895a scsi storage.
205     config MEGASAS
206         depends on DRIVES
207         bool "LSI MegaRAID SAS controllers"
208         default y
209         help
210             Support boot from LSI MegaRAID SAS scsi storage.
211     config FLOPPY
212         depends on DRIVES && HARDWARE_IRQ
213         bool "Floppy controller"
214         default y
215         help
216             Support floppy drive access.
217     config FLASH_FLOPPY
218         depends on DRIVES
219         bool "Floppy images from CBFS or fw_cfg"
220         default y
221         help
222             Support floppy images stored in coreboot flash or from
223             QEMU fw_cfg.
224
225     config PS2PORT
226         depends on KEYBOARD || MOUSE
227         bool "PS/2 port"
228         default y
229         help
230             Support PS2 ports (keyboard and mouse).
231
232     config USB
233         bool "USB"
234         default y
235         help
236             Support USB devices.
237     config USB_UHCI
238         depends on USB
239         bool "USB UHCI controllers"
240         default y
241         help
242             Support USB UHCI controllers.
243     config USB_OHCI
244         depends on USB
245         bool "USB OHCI controllers"
246         default y
247         help
248             Support USB OHCI controllers.
249     config USB_EHCI
250         depends on USB
251         bool "USB EHCI controllers"
252         default y
253         help
254             Support USB EHCI controllers.
255     config USB_XHCI
256         depends on USB
257         bool "USB XHCI controllers"
258         default y
259         help
260             Support USB XHCI controllers.
261     config USB_MSC
262         depends on USB && DRIVES
263         bool "USB drives"
264         default y
265         help
266             Support USB BOT (bulk-only transport) disks.
267     config USB_UAS
268         depends on USB && DRIVES
269         bool "UAS drives"
270         default y
271         help
272             Support USB UAS (usb attached scsi) disks.
273     config USB_HUB
274         depends on USB
275         bool "USB hubs"
276         default y
277         help
278             Support USB hubs.
279     config USB_KEYBOARD
280         depends on USB && KEYBOARD
281         bool "USB keyboards"
282         default y
283         help
284             Support USB keyboards.
285     config USB_MOUSE
286         depends on USB && MOUSE
287         bool "USB mice"
288         default y
289         help
290             Support USB mice.
291
292     config SERIAL
293         bool "Serial port"
294         default y
295         help
296             Support serial ports.  This also enables int 14 serial port calls.
297     config LPT
298         bool "Parallel port"
299         default y
300         help
301             Support parallel ports. This also enables int 17 parallel port calls.
302     config RTC_TIMER
303         bool "Real Time Clock (RTC) scheduling"
304         depends on HARDWARE_IRQ
305         default y
306         help
307             Support MC146818 Real Time Clock chip timer
308             interrupts. This also enables int 1583 and int 1586 calls.
309
310             Disabling this support does not disable access to the RTC
311             cmos registers.
312
313     config HARDWARE_IRQ
314         bool "Hardware interrupts"
315         default y
316         help
317             Program and support hardware interrupts using the i8259
318             programmable interrupt controller (PIC).  This option must
319             be enabled in order to support most boot loaders.  Only
320             disable this option if running on peculiar hardware known
321             not to support irq routing.
322
323     config USE_SMM
324         depends on QEMU
325         bool "System Management Mode (SMM)"
326         default y
327         help
328             Support System Management Mode (on emulators).
329     config CALL32_SMM
330         bool
331         depends on USE_SMM
332         default y
333     config MTRR_INIT
334         depends on QEMU
335         bool "Initialize MTRRs"
336         default y
337         help
338             Initialize the Memory Type Range Registers (on emulators).
339     config PMTIMER
340         bool "Support ACPI timer"
341         default y
342         help
343             Detect and use the ACPI timer for timekeeping.
344     config TSC_TIMER
345         bool "Support CPU timestamp counter as timer"
346         default y
347         help
348             Support for using the CPU timestamp counter as an internal
349             timing source.
350 endmenu
351
352 menu "BIOS interfaces"
353     config DRIVES
354         bool "Drive interface"
355         default y
356         help
357             Support int13 disk/floppy drive functions.
358
359     config CDROM_BOOT
360         depends on DRIVES
361         bool "DVD/CDROM booting"
362         default y
363         help
364             Support for booting from a CD.  (El Torito spec support.)
365     config CDROM_EMU
366         depends on CDROM_BOOT
367         bool "DVD/CDROM boot drive emulation"
368         default y
369         help
370             Support bootable CDROMs that emulate a floppy/harddrive.
371
372     config PCIBIOS
373         bool "PCIBIOS interface"
374         default y
375         help
376             Support int 1a/b1 PCI BIOS calls.
377     config APMBIOS
378         bool "APM interface"
379         default y
380         help
381             Support int 15/53 APM BIOS calls.
382     config PNPBIOS
383         bool "PnP BIOS interface"
384         default y
385         help
386             Support PnP BIOS entry point.
387     config OPTIONROMS
388         bool "Option ROMS"
389         default y
390         help
391             Support finding and running option roms during POST.
392     config OPTIONROMS_DEPLOYED
393         depends on OPTIONROMS && QEMU
394         bool "Option roms are already at 0xc0000-0xf0000"
395         default n
396         help
397             Select this if option ROMs are already copied to
398             0xc0000-0xf0000.  This must only be selected when using
399             Bochs or QEMU versions older than 0.12.
400     config PMM
401         depends on OPTIONROMS
402         bool "PMM interface"
403         default y
404         help
405             Support Post Memory Manager (PMM) entry point.
406     config BOOT
407         bool "Boot interface"
408         default y
409         help
410             Support int 19/18 system bootup support.
411     config KEYBOARD
412         bool "Keyboard interface"
413         default y
414         help
415             Support int 16 keyboard calls.
416     config KBD_CALL_INT15_4F
417         depends on KEYBOARD
418         bool "Keyboard hook interface"
419         default y
420         help
421             Support calling int155f on each keyboard event.
422     config MOUSE
423         bool "Mouse interface"
424         default y
425         help
426             Support for int15c2 mouse calls.
427
428     config S3_RESUME
429         bool "S3 resume"
430         default y
431         help
432             Support S3 resume handler.
433
434     config VGAHOOKS
435         bool "Hardware specific VGA helpers"
436         default y
437         help
438             Support int 155f BIOS callbacks specific to some Intel and
439             VIA on-board vga devices.
440
441     config DISABLE_A20
442         bool "Disable A20"
443         default n
444         help
445             Disable A20 on 16bit boot.
446
447     config WRITABLE_UPPERMEMORY
448         depends on QEMU
449         bool "Make unused UMB memory read/writeable."
450         default n
451         help
452             When selected, the "Upper Memory Block" area
453             (0x90000-0xa0000) that is not used for option roms will be
454             made writable.  This allows the ram to be directly
455             modified by programs.  However, some old DOS high memory
456             managers may require the UMB region to be read-only.
457
458     config TCGBIOS
459         depends on S3_RESUME
460         bool "TPM support and TCG BIOS extensions"
461         default y
462         help
463             Provide TPM support along with TCG BIOS extensions
464
465 endmenu
466
467 menu "BIOS Tables"
468     depends on QEMU
469     config PIRTABLE
470         bool "PIR table"
471         default y
472         help
473             Support generation of a PIR table in 0xf000 segment.
474     config MPTABLE
475         bool "MPTable"
476         default y
477         help
478             Support generation of MPTable.
479     config SMBIOS
480         bool "SMBIOS"
481         default y
482         help
483             Support generation of SM BIOS tables.  This is also
484             sometimes called DMI.
485     config ACPI
486         bool "ACPI"
487         default y
488         help
489             Support generation of ACPI tables.
490     config ACPI_DSDT
491         bool "Include default ACPI DSDT"
492         default y
493         depends on ACPI
494         help
495             Include default DSDT ACPI table in BIOS.
496             Required for QEMU 1.3 and older.
497             This option can be disabled for QEMU 1.4 and newer
498             to save some space in the ROM file.
499             If unsure, say Y.
500     config FW_ROMFILE_LOAD
501         bool "Load BIOS tables from ROM files"
502         depends on QEMU_HARDWARE
503         default y
504         help
505             Support loading BIOS firmware tables from ROM files.
506             At the moment, only ACPI tables can be loaded in this way.
507             Required for QEMU 1.7 and newer.
508             This option can be disabled for QEMU 1.6 and older
509             to save some space in the ROM file.
510             If unsure, say Y.
511 endmenu
512
513 source vgasrc/Kconfig
514
515 menu "Debugging"
516     config DEBUG_LEVEL
517         int "Debug level"
518         default 1
519         help
520             Control how verbose debug output is.  The higher the
521             number, the more verbose SeaBIOS will be.
522
523             Set to zero to disable debugging.
524
525     config DEBUG_SERIAL
526         depends on DEBUG_LEVEL != 0
527         bool "Serial port debugging"
528         default n
529         help
530             Send debugging information to serial port.
531     config DEBUG_SERIAL_PORT
532         depends on DEBUG_SERIAL
533         hex "Serial port base address"
534         default 0x3f8
535         help
536             Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
537
538     config DEBUG_IO
539         depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
540         bool "Special IO port debugging"
541         default y
542         help
543             Some emulators or hypervisors provide with a way to output debug
544             information by outputing strings in a special port present in the
545             IO space.
546
547     config DEBUG_COREBOOT
548         depends on COREBOOT && DEBUG_LEVEL != 0
549         bool "coreboot cbmem debug logging"
550         default y
551         help
552             Send debugging information to the coreboot cbmem console buffer.
553             Needs CONFIG_CONSOLE_CBMEM in coreboot.  You can read the log
554             after boot using 'cbmem -c'.  Only 32bit code (basically every-
555             thing before booting the OS) writes to the log buffer.
556
557 endmenu