blob: e767be1351c349d6755bc18b1e09cba3e516c753 [file] [log] [blame]
Kevin O'Connor713be892011-01-26 21:19:25 -05001# Kconfig SeaBIOS configuration
2
3mainmenu "SeaBIOS Configuration"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -05004
5menu "General Features"
6
Gerd Hoffmann9600c802012-10-29 11:28:32 +01007choice
8 prompt "Build Target"
9 default QEMU
10
Kevin O'Connor713be892011-01-26 21:19:25 -050011 config COREBOOT
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050012 bool "Build for coreboot"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050013 help
14 Configure as a coreboot payload.
15
Gerd Hoffmann9600c802012-10-29 11:28:32 +010016 config QEMU
Kevin O'Connor02313b22013-02-07 22:42:25 -050017 bool "Build for QEMU/Xen/KVM/Bochs"
18 select QEMU_HARDWARE
Gerd Hoffmann9600c802012-10-29 11:28:32 +010019 help
Kevin O'Connor02313b22013-02-07 22:42:25 -050020 Configure for an emulated machine (QEMU, Xen, KVM, or Bochs).
Gerd Hoffmann9600c802012-10-29 11:28:32 +010021
David Woodhouse118469a2013-01-25 19:46:25 -060022 config CSM
Stefan Weil6bcacf72015-10-02 08:46:40 +020023 bool "Build as Compatibility Support Module for EFI BIOS"
David Woodhouse118469a2013-01-25 19:46:25 -060024 help
25 Configure to be used by EFI firmware as Compatibility Support
26 module (CSM) to provide legacy BIOS services.
27
Gerd Hoffmann9600c802012-10-29 11:28:32 +010028endchoice
29
Kevin O'Connor02313b22013-02-07 22:42:25 -050030 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
Ian Campbell74c78782011-06-01 11:00:29 +010037 config XEN
Gerd Hoffmann9600c802012-10-29 11:28:32 +010038 depends on QEMU
Kevin O'Connor02313b22013-02-07 22:42:25 -050039 bool "Support Xen HVM"
Ian Campbell9264a2c2012-06-28 11:08:31 +010040 default y
Ian Campbell74c78782011-06-01 11:00:29 +010041 help
42 Configure to be used by xen hvmloader, for a HVM guest.
43
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050044 config THREADS
45 bool "Parallelize hardware init"
46 default y
47 help
48 Support running hardware initialization in parallel.
Kevin O'Connorf31171c2011-05-07 13:57:42 -040049
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050050 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050062 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.
Kevin O'Connor49bf57b2011-05-10 22:08:30 -040068 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050075
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
Kevin O'Connor406df192014-01-17 20:21:20 -050088 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
Vladimir Serbinenko1b911d72015-05-18 19:07:16 +020099 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.
Kevin O'Connorf0d75a02013-03-02 18:14:35 -0500106 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500115
Kevin O'Connor2b0fb8c2013-08-07 23:03:47 -0400116 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
Gerd Hoffmann85f8fac2013-09-24 10:06:16 +0200125 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
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500136endmenu
137
138menu "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"
Gerd Hoffmannceb8ed42011-08-04 20:42:16 +0200160 default y
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500161 help
162 Support for AHCI disk code.
Kevin O'Connor72691a52014-12-16 09:55:16 -0500163 config SDCARD
Kevin O'Connor4c904952015-08-10 15:41:03 -0400164 depends on DRIVES
Kevin O'Connor72691a52014-12-16 09:55:16 -0500165 bool "SD controllers"
166 default y
167 help
168 Support for SD cards on PCI host controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500169 config VIRTIO_BLK
Kevin O'Connor897fb112013-02-07 23:32:48 -0500170 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100171 bool "virtio-blk controllers"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500172 default y
173 help
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100174 Support boot from virtio-blk storage.
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100175 config VIRTIO_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500176 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100177 bool "virtio-scsi controllers"
178 default y
179 help
180 Support boot from virtio-scsi storage.
Evgeny Budilovsky83d60b32013-10-14 18:03:36 +0300181 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.
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200193 config ESP_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500194 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200195 bool "AMD PCscsi controllers"
196 default y
197 help
198 Support boot from AMD PCscsi storage.
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200199 config LSI_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500200 depends on DRIVES && QEMU_HARDWARE
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200201 bool "lsi53c895a scsi controllers"
202 default y
203 help
204 Support boot from qemu-emulated lsi53c895a scsi storage.
Hannes Reinecke2df70bf2012-11-13 15:03:31 +0100205 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.
Don Slutzf2645a82016-03-25 17:04:31 +0100211 config MPT_SCSI
212 depends on DRIVES && QEMU_HARDWARE
213 bool "LSI MPT Fusion controllers"
214 default y
215 help
216 Support boot from LSI MPT Fusion scsi storage.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500217 config FLOPPY
Kevin O'Connorbd5f6c72015-08-10 16:14:48 -0400218 depends on DRIVES && HARDWARE_IRQ
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500219 bool "Floppy controller"
220 default y
221 help
222 Support floppy drive access.
Kevin O'Connor7dbadfc2015-07-23 09:19:23 -0400223 config FLASH_FLOPPY
224 depends on DRIVES
225 bool "Floppy images from CBFS or fw_cfg"
226 default y
227 help
228 Support floppy images stored in coreboot flash or from
229 QEMU fw_cfg.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500230
231 config PS2PORT
232 depends on KEYBOARD || MOUSE
233 bool "PS/2 port"
234 default y
235 help
236 Support PS2 ports (keyboard and mouse).
237
238 config USB
239 bool "USB"
240 default y
241 help
242 Support USB devices.
243 config USB_UHCI
244 depends on USB
245 bool "USB UHCI controllers"
246 default y
247 help
248 Support USB UHCI controllers.
249 config USB_OHCI
250 depends on USB
251 bool "USB OHCI controllers"
252 default y
253 help
254 Support USB OHCI controllers.
255 config USB_EHCI
256 depends on USB
257 bool "USB EHCI controllers"
258 default y
259 help
260 Support USB EHCI controllers.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200261 config USB_XHCI
Kevin O'Connore3b9cad2013-12-27 21:57:14 -0500262 depends on USB
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200263 bool "USB XHCI controllers"
264 default y
265 help
266 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500267 config USB_MSC
268 depends on USB && DRIVES
269 bool "USB drives"
270 default y
271 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200272 Support USB BOT (bulk-only transport) disks.
273 config USB_UAS
274 depends on USB && DRIVES
275 bool "UAS drives"
276 default y
277 help
278 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500279 config USB_HUB
280 depends on USB
281 bool "USB hubs"
282 default y
283 help
284 Support USB hubs.
285 config USB_KEYBOARD
286 depends on USB && KEYBOARD
287 bool "USB keyboards"
288 default y
289 help
290 Support USB keyboards.
291 config USB_MOUSE
292 depends on USB && MOUSE
293 bool "USB mice"
294 default y
295 help
296 Support USB mice.
297
298 config SERIAL
299 bool "Serial port"
300 default y
301 help
302 Support serial ports. This also enables int 14 serial port calls.
303 config LPT
304 bool "Parallel port"
305 default y
306 help
307 Support parallel ports. This also enables int 17 parallel port calls.
Kevin O'Connorbc46ebe2015-08-13 11:43:27 -0400308 config RTC_TIMER
309 bool "Real Time Clock (RTC) scheduling"
Kevin O'Connorbd5f6c72015-08-10 16:14:48 -0400310 depends on HARDWARE_IRQ
Kevin O'Connorbc46ebe2015-08-13 11:43:27 -0400311 default y
312 help
313 Support MC146818 Real Time Clock chip timer
314 interrupts. This also enables int 1583 and int 1586 calls.
315
316 Disabling this support does not disable access to the RTC
317 cmos registers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500318
Kevin O'Connorbd5f6c72015-08-10 16:14:48 -0400319 config HARDWARE_IRQ
320 bool "Hardware interrupts"
321 default y
322 help
323 Program and support hardware interrupts using the i8259
324 programmable interrupt controller (PIC). This option must
325 be enabled in order to support most boot loaders. Only
326 disable this option if running on peculiar hardware known
327 not to support irq routing.
328
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500329 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100330 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500331 bool "System Management Mode (SMM)"
332 default y
333 help
334 Support System Management Mode (on emulators).
Kevin O'Connor55215cd2014-04-11 11:20:41 -0400335 config CALL32_SMM
336 bool
337 depends on USE_SMM
338 default y
Kevin O'Connor424f2172011-03-06 19:06:48 -0500339 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100340 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500341 bool "Initialize MTRRs"
342 default y
343 help
344 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200345 config PMTIMER
Kevin O'Connor4ec872a2015-07-23 08:36:01 -0400346 bool "Support ACPI timer"
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200347 default y
348 help
Kevin O'Connor4ec872a2015-07-23 08:36:01 -0400349 Detect and use the ACPI timer for timekeeping.
350 config TSC_TIMER
351 bool "Support CPU timestamp counter as timer"
352 default y
353 help
354 Support for using the CPU timestamp counter as an internal
355 timing source.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500356endmenu
357
358menu "BIOS interfaces"
359 config DRIVES
360 bool "Drive interface"
361 default y
362 help
363 Support int13 disk/floppy drive functions.
364
365 config CDROM_BOOT
366 depends on DRIVES
367 bool "DVD/CDROM booting"
368 default y
369 help
370 Support for booting from a CD. (El Torito spec support.)
371 config CDROM_EMU
372 depends on CDROM_BOOT
373 bool "DVD/CDROM boot drive emulation"
374 default y
375 help
376 Support bootable CDROMs that emulate a floppy/harddrive.
377
378 config PCIBIOS
379 bool "PCIBIOS interface"
380 default y
381 help
382 Support int 1a/b1 PCI BIOS calls.
383 config APMBIOS
384 bool "APM interface"
385 default y
386 help
387 Support int 15/53 APM BIOS calls.
388 config PNPBIOS
389 bool "PnP BIOS interface"
390 default y
391 help
392 Support PnP BIOS entry point.
393 config OPTIONROMS
394 bool "Option ROMS"
395 default y
396 help
397 Support finding and running option roms during POST.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500398 config PMM
399 depends on OPTIONROMS
400 bool "PMM interface"
401 default y
402 help
403 Support Post Memory Manager (PMM) entry point.
404 config BOOT
405 bool "Boot interface"
406 default y
407 help
408 Support int 19/18 system bootup support.
409 config KEYBOARD
410 bool "Keyboard interface"
411 default y
412 help
413 Support int 16 keyboard calls.
414 config KBD_CALL_INT15_4F
415 depends on KEYBOARD
416 bool "Keyboard hook interface"
417 default y
418 help
419 Support calling int155f on each keyboard event.
420 config MOUSE
421 bool "Mouse interface"
422 default y
423 help
424 Support for int15c2 mouse calls.
425
426 config S3_RESUME
427 bool "S3 resume"
428 default y
429 help
430 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500431
Kevin O'Connor713be892011-01-26 21:19:25 -0500432 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500433 bool "Hardware specific VGA helpers"
434 default y
435 help
436 Support int 155f BIOS callbacks specific to some Intel and
437 VIA on-board vga devices.
438
439 config DISABLE_A20
440 bool "Disable A20"
441 default n
442 help
443 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400444
445 config WRITABLE_UPPERMEMORY
446 depends on QEMU
447 bool "Make unused UMB memory read/writeable."
448 default n
449 help
450 When selected, the "Upper Memory Block" area
451 (0x90000-0xa0000) that is not used for option roms will be
452 made writable. This allows the ram to be directly
453 modified by programs. However, some old DOS high memory
454 managers may require the UMB region to be read-only.
455
Stefan Bergerb310dfa2015-03-23 14:22:16 -0400456 config TCGBIOS
457 depends on S3_RESUME
458 bool "TPM support and TCG BIOS extensions"
459 default y
460 help
461 Provide TPM support along with TCG BIOS extensions
462
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500463endmenu
464
465menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100466 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500467 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500468 bool "PIR table"
469 default y
470 help
471 Support generation of a PIR table in 0xf000 segment.
472 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500473 bool "MPTable"
474 default y
475 help
476 Support generation of MPTable.
477 config SMBIOS
478 bool "SMBIOS"
479 default y
480 help
481 Support generation of SM BIOS tables. This is also
482 sometimes called DMI.
483 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500484 bool "ACPI"
485 default y
486 help
487 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200488 config ACPI_DSDT
489 bool "Include default ACPI DSDT"
490 default y
491 depends on ACPI
492 help
493 Include default DSDT ACPI table in BIOS.
494 Required for QEMU 1.3 and older.
495 This option can be disabled for QEMU 1.4 and newer
496 to save some space in the ROM file.
497 If unsure, say Y.
Michael S. Tsirkin11948742013-10-03 16:30:41 +0300498 config FW_ROMFILE_LOAD
499 bool "Load BIOS tables from ROM files"
500 depends on QEMU_HARDWARE
501 default y
502 help
503 Support loading BIOS firmware tables from ROM files.
504 At the moment, only ACPI tables can be loaded in this way.
505 Required for QEMU 1.7 and newer.
506 This option can be disabled for QEMU 1.6 and older
507 to save some space in the ROM file.
508 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500509endmenu
510
Kevin O'Connor23219122013-02-17 10:56:10 -0500511source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000512
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500513menu "Debugging"
514 config DEBUG_LEVEL
515 int "Debug level"
516 default 1
517 help
518 Control how verbose debug output is. The higher the
519 number, the more verbose SeaBIOS will be.
520
521 Set to zero to disable debugging.
522
523 config DEBUG_SERIAL
524 depends on DEBUG_LEVEL != 0
525 bool "Serial port debugging"
526 default n
527 help
528 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400529 config DEBUG_SERIAL_PORT
530 depends on DEBUG_SERIAL
531 hex "Serial port base address"
532 default 0x3f8
533 help
534 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000535
536 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200537 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000538 bool "Special IO port debugging"
539 default y
540 help
541 Some emulators or hypervisors provide with a way to output debug
542 information by outputing strings in a special port present in the
543 IO space.
544
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200545 config DEBUG_COREBOOT
546 depends on COREBOOT && DEBUG_LEVEL != 0
547 bool "coreboot cbmem debug logging"
548 default y
549 help
550 Send debugging information to the coreboot cbmem console buffer.
551 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
552 after boot using 'cbmem -c'. Only 32bit code (basically every-
553 thing before booting the OS) writes to the log buffer.
554
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500555endmenu