blob: 55a87cb7f0ac96190f405f7bff414e7458b8627a [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.
Julian Stecklinac83e15b2017-02-13 10:03:59 +0100230 config NVME
Kevin O'Connor235a8192017-05-10 16:14:39 -0400231 depends on DRIVES
Julian Stecklinac83e15b2017-02-13 10:03:59 +0100232 bool "NVMe controllers"
233 default y
234 help
235 Support for NVMe disk code.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500236
237 config PS2PORT
238 depends on KEYBOARD || MOUSE
239 bool "PS/2 port"
240 default y
241 help
242 Support PS2 ports (keyboard and mouse).
243
244 config USB
245 bool "USB"
246 default y
247 help
248 Support USB devices.
249 config USB_UHCI
250 depends on USB
251 bool "USB UHCI controllers"
252 default y
253 help
254 Support USB UHCI controllers.
255 config USB_OHCI
256 depends on USB
257 bool "USB OHCI controllers"
258 default y
259 help
260 Support USB OHCI controllers.
261 config USB_EHCI
262 depends on USB
263 bool "USB EHCI controllers"
264 default y
265 help
266 Support USB EHCI controllers.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200267 config USB_XHCI
Kevin O'Connore3b9cad2013-12-27 21:57:14 -0500268 depends on USB
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200269 bool "USB XHCI controllers"
270 default y
271 help
272 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500273 config USB_MSC
274 depends on USB && DRIVES
275 bool "USB drives"
276 default y
277 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200278 Support USB BOT (bulk-only transport) disks.
279 config USB_UAS
280 depends on USB && DRIVES
281 bool "UAS drives"
282 default y
283 help
284 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500285 config USB_HUB
286 depends on USB
287 bool "USB hubs"
288 default y
289 help
290 Support USB hubs.
291 config USB_KEYBOARD
292 depends on USB && KEYBOARD
293 bool "USB keyboards"
294 default y
295 help
296 Support USB keyboards.
297 config USB_MOUSE
298 depends on USB && MOUSE
299 bool "USB mice"
300 default y
301 help
302 Support USB mice.
303
304 config SERIAL
305 bool "Serial port"
306 default y
307 help
308 Support serial ports. This also enables int 14 serial port calls.
Gerd Hoffmannd6728f32017-09-18 10:47:23 +0200309 config SERCON
310 bool "Serial console"
311 default y
312 help
313 Support redirecting vga output to the serial console.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500314 config LPT
315 bool "Parallel port"
316 default y
317 help
318 Support parallel ports. This also enables int 17 parallel port calls.
Kevin O'Connorbc46ebe2015-08-13 11:43:27 -0400319 config RTC_TIMER
320 bool "Real Time Clock (RTC) scheduling"
Kevin O'Connorbd5f6c72015-08-10 16:14:48 -0400321 depends on HARDWARE_IRQ
Kevin O'Connorbc46ebe2015-08-13 11:43:27 -0400322 default y
323 help
324 Support MC146818 Real Time Clock chip timer
325 interrupts. This also enables int 1583 and int 1586 calls.
326
327 Disabling this support does not disable access to the RTC
328 cmos registers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500329
Kevin O'Connorbd5f6c72015-08-10 16:14:48 -0400330 config HARDWARE_IRQ
331 bool "Hardware interrupts"
332 default y
333 help
334 Program and support hardware interrupts using the i8259
335 programmable interrupt controller (PIC). This option must
336 be enabled in order to support most boot loaders. Only
337 disable this option if running on peculiar hardware known
338 not to support irq routing.
339
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500340 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100341 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500342 bool "System Management Mode (SMM)"
343 default y
344 help
345 Support System Management Mode (on emulators).
Kevin O'Connor55215cd2014-04-11 11:20:41 -0400346 config CALL32_SMM
347 bool
348 depends on USE_SMM
349 default y
Kevin O'Connor424f2172011-03-06 19:06:48 -0500350 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100351 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500352 bool "Initialize MTRRs"
353 default y
354 help
355 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200356 config PMTIMER
Kevin O'Connor4ec872a2015-07-23 08:36:01 -0400357 bool "Support ACPI timer"
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200358 default y
359 help
Kevin O'Connor4ec872a2015-07-23 08:36:01 -0400360 Detect and use the ACPI timer for timekeeping.
361 config TSC_TIMER
362 bool "Support CPU timestamp counter as timer"
363 default y
364 help
365 Support for using the CPU timestamp counter as an internal
366 timing source.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500367endmenu
368
369menu "BIOS interfaces"
370 config DRIVES
371 bool "Drive interface"
372 default y
373 help
374 Support int13 disk/floppy drive functions.
375
376 config CDROM_BOOT
377 depends on DRIVES
378 bool "DVD/CDROM booting"
379 default y
380 help
381 Support for booting from a CD. (El Torito spec support.)
382 config CDROM_EMU
383 depends on CDROM_BOOT
384 bool "DVD/CDROM boot drive emulation"
385 default y
386 help
387 Support bootable CDROMs that emulate a floppy/harddrive.
388
389 config PCIBIOS
390 bool "PCIBIOS interface"
391 default y
392 help
393 Support int 1a/b1 PCI BIOS calls.
394 config APMBIOS
395 bool "APM interface"
396 default y
397 help
398 Support int 15/53 APM BIOS calls.
399 config PNPBIOS
400 bool "PnP BIOS interface"
401 default y
402 help
403 Support PnP BIOS entry point.
404 config OPTIONROMS
405 bool "Option ROMS"
406 default y
407 help
408 Support finding and running option roms during POST.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500409 config PMM
410 depends on OPTIONROMS
411 bool "PMM interface"
412 default y
413 help
414 Support Post Memory Manager (PMM) entry point.
415 config BOOT
416 bool "Boot interface"
417 default y
418 help
419 Support int 19/18 system bootup support.
420 config KEYBOARD
421 bool "Keyboard interface"
422 default y
423 help
424 Support int 16 keyboard calls.
425 config KBD_CALL_INT15_4F
426 depends on KEYBOARD
427 bool "Keyboard hook interface"
428 default y
429 help
430 Support calling int155f on each keyboard event.
431 config MOUSE
432 bool "Mouse interface"
433 default y
434 help
435 Support for int15c2 mouse calls.
436
437 config S3_RESUME
438 bool "S3 resume"
439 default y
440 help
441 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500442
Kevin O'Connor713be892011-01-26 21:19:25 -0500443 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500444 bool "Hardware specific VGA helpers"
445 default y
446 help
447 Support int 155f BIOS callbacks specific to some Intel and
448 VIA on-board vga devices.
449
450 config DISABLE_A20
451 bool "Disable A20"
452 default n
453 help
454 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400455
456 config WRITABLE_UPPERMEMORY
457 depends on QEMU
458 bool "Make unused UMB memory read/writeable."
459 default n
460 help
461 When selected, the "Upper Memory Block" area
462 (0x90000-0xa0000) that is not used for option roms will be
463 made writable. This allows the ram to be directly
464 modified by programs. However, some old DOS high memory
465 managers may require the UMB region to be read-only.
466
Stefan Bergerb310dfa2015-03-23 14:22:16 -0400467 config TCGBIOS
468 depends on S3_RESUME
469 bool "TPM support and TCG BIOS extensions"
470 default y
471 help
472 Provide TPM support along with TCG BIOS extensions
473
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500474endmenu
475
476menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100477 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500478 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500479 bool "PIR table"
480 default y
481 help
482 Support generation of a PIR table in 0xf000 segment.
483 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500484 bool "MPTable"
485 default y
486 help
487 Support generation of MPTable.
488 config SMBIOS
489 bool "SMBIOS"
490 default y
491 help
492 Support generation of SM BIOS tables. This is also
493 sometimes called DMI.
494 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500495 bool "ACPI"
496 default y
497 help
498 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200499 config ACPI_DSDT
500 bool "Include default ACPI DSDT"
501 default y
502 depends on ACPI
503 help
504 Include default DSDT ACPI table in BIOS.
505 Required for QEMU 1.3 and older.
506 This option can be disabled for QEMU 1.4 and newer
507 to save some space in the ROM file.
508 If unsure, say Y.
Michael S. Tsirkin11948742013-10-03 16:30:41 +0300509 config FW_ROMFILE_LOAD
510 bool "Load BIOS tables from ROM files"
511 depends on QEMU_HARDWARE
512 default y
513 help
514 Support loading BIOS firmware tables from ROM files.
515 At the moment, only ACPI tables can be loaded in this way.
516 Required for QEMU 1.7 and newer.
517 This option can be disabled for QEMU 1.6 and older
518 to save some space in the ROM file.
519 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500520endmenu
521
Kevin O'Connor23219122013-02-17 10:56:10 -0500522source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000523
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500524menu "Debugging"
525 config DEBUG_LEVEL
526 int "Debug level"
527 default 1
528 help
529 Control how verbose debug output is. The higher the
530 number, the more verbose SeaBIOS will be.
531
532 Set to zero to disable debugging.
533
534 config DEBUG_SERIAL
535 depends on DEBUG_LEVEL != 0
536 bool "Serial port debugging"
537 default n
538 help
539 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400540 config DEBUG_SERIAL_PORT
541 depends on DEBUG_SERIAL
542 hex "Serial port base address"
543 default 0x3f8
544 help
545 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Ricardo Ribalda Delgado93329652016-12-20 19:03:58 +0100546 config DEBUG_SERIAL_MMIO
547 depends on DEBUG_LEVEL != 0 && !DEBUG_SERIAL
548 bool "Serial port debugging via memory mapped IO"
549 default n
550 help
551 Send debugging information to serial port mapped in memory.
552 config DEBUG_SERIAL_MEM_ADDRESS
553 depends on DEBUG_SERIAL_MMIO
554 hex "Serial port memory mapped IO address"
555 help
556 On some chipsets the serial port is memory mapped, in those cases
557 provide the 32 bit address. E.g. 0xFEDC6000 for the AMD Kern
558 (a.k.a Hudson UART).
Julian Pidancet7123d982012-02-01 16:03:24 +0000559
560 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200561 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000562 bool "Special IO port debugging"
563 default y
564 help
565 Some emulators or hypervisors provide with a way to output debug
566 information by outputing strings in a special port present in the
567 IO space.
568
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200569 config DEBUG_COREBOOT
570 depends on COREBOOT && DEBUG_LEVEL != 0
571 bool "coreboot cbmem debug logging"
572 default y
573 help
574 Send debugging information to the coreboot cbmem console buffer.
575 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
576 after boot using 'cbmem -c'. Only 32bit code (basically every-
577 thing before booting the OS) writes to the log buffer.
578
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500579endmenu