blob: 19f4db1ca92b5a7ebdc2a61d9168cd1bb10d1c8c [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
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
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
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050099 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.
Kevin O'Connorf0d75a02013-03-02 18:14:35 -0500105 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500114
Kevin O'Connor2b0fb8c2013-08-07 23:03:47 -0400115 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
Gerd Hoffmann85f8fac2013-09-24 10:06:16 +0200124 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
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500135endmenu
136
137menu "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"
Gerd Hoffmannceb8ed42011-08-04 20:42:16 +0200159 default y
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500160 help
161 Support for AHCI disk code.
Kevin O'Connor72691a52014-12-16 09:55:16 -0500162 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500168 config VIRTIO_BLK
Kevin O'Connor897fb112013-02-07 23:32:48 -0500169 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100170 bool "virtio-blk controllers"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500171 default y
172 help
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100173 Support boot from virtio-blk storage.
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100174 config VIRTIO_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500175 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100176 bool "virtio-scsi controllers"
177 default y
178 help
179 Support boot from virtio-scsi storage.
Evgeny Budilovsky83d60b32013-10-14 18:03:36 +0300180 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.
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200192 config ESP_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500193 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200194 bool "AMD PCscsi controllers"
195 default y
196 help
197 Support boot from AMD PCscsi storage.
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200198 config LSI_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500199 depends on DRIVES && QEMU_HARDWARE
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200200 bool "lsi53c895a scsi controllers"
201 default y
202 help
203 Support boot from qemu-emulated lsi53c895a scsi storage.
Hannes Reinecke2df70bf2012-11-13 15:03:31 +0100204 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500210 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.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200247 config USB_XHCI
Kevin O'Connore3b9cad2013-12-27 21:57:14 -0500248 depends on USB
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200249 bool "USB XHCI controllers"
250 default y
251 help
252 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500253 config USB_MSC
254 depends on USB && DRIVES
255 bool "USB drives"
256 default y
257 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200258 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500265 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
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500295 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100296 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500297 bool "System Management Mode (SMM)"
298 default y
299 help
300 Support System Management Mode (on emulators).
Kevin O'Connor55215cd2014-04-11 11:20:41 -0400301 config CALL32_SMM
302 bool
303 depends on USE_SMM
304 default y
Kevin O'Connor424f2172011-03-06 19:06:48 -0500305 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100306 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500307 bool "Initialize MTRRs"
308 default y
309 help
310 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200311 config PMTIMER
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200312 bool "Use ACPI timer"
313 default y
314 help
315 Use the ACPI timer instead of the TSC for timekeeping (on qemu).
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500316endmenu
317
318menu "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
David Woodhouse5cf799b2013-02-14 08:56:20 +0000359 depends on OPTIONROMS && QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500360 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.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500399
Kevin O'Connor713be892011-01-26 21:19:25 -0500400 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500401 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.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400412
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
Stefan Bergerb310dfa2015-03-23 14:22:16 -0400424 config TCGBIOS
425 depends on S3_RESUME
426 bool "TPM support and TCG BIOS extensions"
427 default y
428 help
429 Provide TPM support along with TCG BIOS extensions
430
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500431endmenu
432
433menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100434 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500435 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500436 bool "PIR table"
437 default y
438 help
439 Support generation of a PIR table in 0xf000 segment.
440 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500441 bool "MPTable"
442 default y
443 help
444 Support generation of MPTable.
445 config SMBIOS
446 bool "SMBIOS"
447 default y
448 help
449 Support generation of SM BIOS tables. This is also
450 sometimes called DMI.
451 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500452 bool "ACPI"
453 default y
454 help
455 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200456 config ACPI_DSDT
457 bool "Include default ACPI DSDT"
458 default y
459 depends on ACPI
460 help
461 Include default DSDT ACPI table in BIOS.
462 Required for QEMU 1.3 and older.
463 This option can be disabled for QEMU 1.4 and newer
464 to save some space in the ROM file.
465 If unsure, say Y.
Michael S. Tsirkin11948742013-10-03 16:30:41 +0300466 config FW_ROMFILE_LOAD
467 bool "Load BIOS tables from ROM files"
468 depends on QEMU_HARDWARE
469 default y
470 help
471 Support loading BIOS firmware tables from ROM files.
472 At the moment, only ACPI tables can be loaded in this way.
473 Required for QEMU 1.7 and newer.
474 This option can be disabled for QEMU 1.6 and older
475 to save some space in the ROM file.
476 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500477endmenu
478
Kevin O'Connor23219122013-02-17 10:56:10 -0500479source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000480
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500481menu "Debugging"
482 config DEBUG_LEVEL
483 int "Debug level"
484 default 1
485 help
486 Control how verbose debug output is. The higher the
487 number, the more verbose SeaBIOS will be.
488
489 Set to zero to disable debugging.
490
491 config DEBUG_SERIAL
492 depends on DEBUG_LEVEL != 0
493 bool "Serial port debugging"
494 default n
495 help
496 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400497 config DEBUG_SERIAL_PORT
498 depends on DEBUG_SERIAL
499 hex "Serial port base address"
500 default 0x3f8
501 help
502 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000503
504 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200505 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000506 bool "Special IO port debugging"
507 default y
508 help
509 Some emulators or hypervisors provide with a way to output debug
510 information by outputing strings in a special port present in the
511 IO space.
512
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200513 config DEBUG_COREBOOT
514 depends on COREBOOT && DEBUG_LEVEL != 0
515 bool "coreboot cbmem debug logging"
516 default y
517 help
518 Send debugging information to the coreboot cbmem console buffer.
519 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
520 after boot using 'cbmem -c'. Only 32bit code (basically every-
521 thing before booting the OS) writes to the log buffer.
522
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500523endmenu