blob: cce3ad877cdaf9eb5e6c8b298c112b53d3c365cd [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.
49 config THREAD_OPTIONROMS
David Woodhouse41fb3632013-02-14 08:55:52 +000050 depends on THREADS && !CSM
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050051 bool "Hardware init during option ROM execution"
52 default n
53 help
54 Allow hardware init to run in parallel with optionrom execution.
55
Kevin O'Connorf31171c2011-05-07 13:57:42 -040056 This can reduce boot time, but can cause some timing
57 variations during option ROM code execution. It is not
58 known if all option ROMs will behave properly with this
59 option.
60
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050061 config RELOCATE_INIT
62 bool "Copy init code to high memory"
63 default y
64 help
65 Support relocating the one time initialization code to high memory.
66
67 config BOOTMENU
68 depends on BOOT
69 bool "Bootmenu"
70 default y
71 help
72 Support an interactive boot menu at end of post.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050073 config BOOTSPLASH
74 depends on BOOTMENU
75 bool "Graphical boot splash screen"
76 default y
77 help
78 Support showing a graphical boot splash screen.
Kevin O'Connor49bf57b2011-05-10 22:08:30 -040079 config BOOTORDER
80 depends on BOOT
81 bool "Boot ordering"
82 default y
83 help
84 Support controlling of the boot order via the fw_cfg/CBFS
85 "bootorder" file.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -050086
87 config COREBOOT_FLASH
88 depends on COREBOOT
89 bool "coreboot CBFS support"
90 default y
91 help
92 Support searching coreboot flash format.
93 config LZMA
94 depends on COREBOOT_FLASH
95 bool "CBFS lzma support"
96 default y
97 help
98 Support CBFS files compressed using the lzma decompression
Kevin O'Connor406df192014-01-17 20:21:20 -050099 algorithm.
100 config CBFS_LOCATION
101 depends on COREBOOT_FLASH
102 hex "CBFS memory end location"
103 default 0
104 help
105 Memory address of where the CBFS data ends. This should
106 be zero for normal builds. It may be a non-zero value if
107 the CBFS filesystem is at a non-standard location (eg,
108 0xffe00000 if CBFS ends 2Meg below the end of flash).
109
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500110 config FLASH_FLOPPY
111 depends on COREBOOT_FLASH
112 bool "Floppy images in CBFS"
113 default y
114 help
115 Support floppy images in coreboot flash.
Kevin O'Connorf0d75a02013-03-02 18:14:35 -0500116 config ENTRY_EXTRASTACK
117 bool "Use internal stack for 16bit interrupt entry points"
118 default y
119 help
120 Utilize an internal stack for all the legacy 16bit
121 interrupt entry points. This reduces the amount of space
122 on the caller's stack that SeaBIOS uses. This may
123 adversely impact any legacy operating systems that call
124 the BIOS in 16bit protected mode.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500125
Kevin O'Connor2b0fb8c2013-08-07 23:03:47 -0400126 config MALLOC_UPPERMEMORY
127 bool "Allocate memory that needs to be in first Meg above 0xc0000"
128 default y
129 help
130 Use the "Upper Memory Block" area (0xc0000-0xf0000) for
131 internal "low memory" allocations. If this is not
132 selected, the memory is instead allocated from the
133 "9-segment" (0x90000-0xa0000).
134
Gerd Hoffmann85f8fac2013-09-24 10:06:16 +0200135 config ROM_SIZE
136 int "ROM size (in KB)"
137 default 0
138 help
139 Set the ROM size. Say '0' here to make seabios figure the
140 needed size automatically.
141
142 Currently SeaBIOS will easily fit into 256 KB. To make it fit
143 it into 128 KB (which was big enouth for a long time) you'll
144 probably have to disable some featues such as xhci support.
145
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500146endmenu
147
148menu "Hardware support"
149 config ATA
150 depends on DRIVES
151 bool "ATA controllers"
152 default y
153 help
154 Support for IDE disk code.
155 config ATA_DMA
156 depends on ATA
157 bool "ATA DMA"
158 default n
159 help
160 Detect and try to use ATA bus mastering DMA controllers.
161 config ATA_PIO32
162 depends on ATA
163 bool "ATA 32bit PIO"
164 default n
165 help
166 Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
167 config AHCI
168 depends on DRIVES
169 bool "AHCI controllers"
Gerd Hoffmannceb8ed42011-08-04 20:42:16 +0200170 default y
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500171 help
172 Support for AHCI disk code.
173 config VIRTIO_BLK
Kevin O'Connor897fb112013-02-07 23:32:48 -0500174 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100175 bool "virtio-blk controllers"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500176 default y
177 help
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100178 Support boot from virtio-blk storage.
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100179 config VIRTIO_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500180 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100181 bool "virtio-scsi controllers"
182 default y
183 help
184 Support boot from virtio-scsi storage.
Evgeny Budilovsky83d60b32013-10-14 18:03:36 +0300185 config PVSCSI
186 depends on DRIVES && QEMU_HARDWARE
187 bool "PVSCSI controllers"
188 default y
189 help
190 Support boot from Paravirtualized SCSI storage. This kind of storage
191 is mainly supported by VMware ESX hypervisor. It is commonly used
192 to allow fast storage access by communicating directly with the
193 underlying hypervisor. Enabling this type of boot will allow
194 booting directly from images imported from an ESX platform,
195 without the need to use slower emulation of storage controllers
196 such as IDE.
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200197 config ESP_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500198 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200199 bool "AMD PCscsi controllers"
200 default y
201 help
202 Support boot from AMD PCscsi storage.
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200203 config LSI_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500204 depends on DRIVES && QEMU_HARDWARE
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200205 bool "lsi53c895a scsi controllers"
206 default y
207 help
208 Support boot from qemu-emulated lsi53c895a scsi storage.
Hannes Reinecke2df70bf2012-11-13 15:03:31 +0100209 config MEGASAS
210 depends on DRIVES
211 bool "LSI MegaRAID SAS controllers"
212 default y
213 help
214 Support boot from LSI MegaRAID SAS scsi storage.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500215 config FLOPPY
216 depends on DRIVES
217 bool "Floppy controller"
218 default y
219 help
220 Support floppy drive access.
221
222 config PS2PORT
223 depends on KEYBOARD || MOUSE
224 bool "PS/2 port"
225 default y
226 help
227 Support PS2 ports (keyboard and mouse).
228
229 config USB
230 bool "USB"
231 default y
232 help
233 Support USB devices.
234 config USB_UHCI
235 depends on USB
236 bool "USB UHCI controllers"
237 default y
238 help
239 Support USB UHCI controllers.
240 config USB_OHCI
241 depends on USB
242 bool "USB OHCI controllers"
243 default y
244 help
245 Support USB OHCI controllers.
246 config USB_EHCI
247 depends on USB
248 bool "USB EHCI controllers"
249 default y
250 help
251 Support USB EHCI controllers.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200252 config USB_XHCI
Kevin O'Connore3b9cad2013-12-27 21:57:14 -0500253 depends on USB
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200254 bool "USB XHCI controllers"
255 default y
256 help
257 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500258 config USB_MSC
259 depends on USB && DRIVES
260 bool "USB drives"
261 default y
262 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200263 Support USB BOT (bulk-only transport) disks.
264 config USB_UAS
265 depends on USB && DRIVES
266 bool "UAS drives"
267 default y
268 help
269 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500270 config USB_HUB
271 depends on USB
272 bool "USB hubs"
273 default y
274 help
275 Support USB hubs.
276 config USB_KEYBOARD
277 depends on USB && KEYBOARD
278 bool "USB keyboards"
279 default y
280 help
281 Support USB keyboards.
282 config USB_MOUSE
283 depends on USB && MOUSE
284 bool "USB mice"
285 default y
286 help
287 Support USB mice.
288
289 config SERIAL
290 bool "Serial port"
291 default y
292 help
293 Support serial ports. This also enables int 14 serial port calls.
294 config LPT
295 bool "Parallel port"
296 default y
297 help
298 Support parallel ports. This also enables int 17 parallel port calls.
299
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500300 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100301 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500302 bool "System Management Mode (SMM)"
303 default y
304 help
305 Support System Management Mode (on emulators).
Kevin O'Connor424f2172011-03-06 19:06:48 -0500306 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100307 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500308 bool "Initialize MTRRs"
309 default y
310 help
311 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200312 config PMTIMER
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200313 bool "Use ACPI timer"
314 default y
315 help
316 Use the ACPI timer instead of the TSC for timekeeping (on qemu).
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500317endmenu
318
319menu "BIOS interfaces"
320 config DRIVES
321 bool "Drive interface"
322 default y
323 help
324 Support int13 disk/floppy drive functions.
325
326 config CDROM_BOOT
327 depends on DRIVES
328 bool "DVD/CDROM booting"
329 default y
330 help
331 Support for booting from a CD. (El Torito spec support.)
332 config CDROM_EMU
333 depends on CDROM_BOOT
334 bool "DVD/CDROM boot drive emulation"
335 default y
336 help
337 Support bootable CDROMs that emulate a floppy/harddrive.
338
339 config PCIBIOS
340 bool "PCIBIOS interface"
341 default y
342 help
343 Support int 1a/b1 PCI BIOS calls.
344 config APMBIOS
345 bool "APM interface"
346 default y
347 help
348 Support int 15/53 APM BIOS calls.
349 config PNPBIOS
350 bool "PnP BIOS interface"
351 default y
352 help
353 Support PnP BIOS entry point.
354 config OPTIONROMS
355 bool "Option ROMS"
356 default y
357 help
358 Support finding and running option roms during POST.
359 config OPTIONROMS_DEPLOYED
David Woodhouse5cf799b2013-02-14 08:56:20 +0000360 depends on OPTIONROMS && QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500361 bool "Option roms are already at 0xc0000-0xf0000"
362 default n
363 help
364 Select this if option ROMs are already copied to
365 0xc0000-0xf0000. This must only be selected when using
366 Bochs or QEMU versions older than 0.12.
367 config PMM
368 depends on OPTIONROMS
369 bool "PMM interface"
370 default y
371 help
372 Support Post Memory Manager (PMM) entry point.
373 config BOOT
374 bool "Boot interface"
375 default y
376 help
377 Support int 19/18 system bootup support.
378 config KEYBOARD
379 bool "Keyboard interface"
380 default y
381 help
382 Support int 16 keyboard calls.
383 config KBD_CALL_INT15_4F
384 depends on KEYBOARD
385 bool "Keyboard hook interface"
386 default y
387 help
388 Support calling int155f on each keyboard event.
389 config MOUSE
390 bool "Mouse interface"
391 default y
392 help
393 Support for int15c2 mouse calls.
394
395 config S3_RESUME
396 bool "S3 resume"
397 default y
398 help
399 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500400
Kevin O'Connor713be892011-01-26 21:19:25 -0500401 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500402 bool "Hardware specific VGA helpers"
403 default y
404 help
405 Support int 155f BIOS callbacks specific to some Intel and
406 VIA on-board vga devices.
407
408 config DISABLE_A20
409 bool "Disable A20"
410 default n
411 help
412 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400413
414 config WRITABLE_UPPERMEMORY
415 depends on QEMU
416 bool "Make unused UMB memory read/writeable."
417 default n
418 help
419 When selected, the "Upper Memory Block" area
420 (0x90000-0xa0000) that is not used for option roms will be
421 made writable. This allows the ram to be directly
422 modified by programs. However, some old DOS high memory
423 managers may require the UMB region to be read-only.
424
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500425endmenu
426
427menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100428 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500429 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500430 bool "PIR table"
431 default y
432 help
433 Support generation of a PIR table in 0xf000 segment.
434 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500435 bool "MPTable"
436 default y
437 help
438 Support generation of MPTable.
439 config SMBIOS
440 bool "SMBIOS"
441 default y
442 help
443 Support generation of SM BIOS tables. This is also
444 sometimes called DMI.
445 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500446 bool "ACPI"
447 default y
448 help
449 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200450 config ACPI_DSDT
451 bool "Include default ACPI DSDT"
452 default y
453 depends on ACPI
454 help
455 Include default DSDT ACPI table in BIOS.
456 Required for QEMU 1.3 and older.
457 This option can be disabled for QEMU 1.4 and newer
458 to save some space in the ROM file.
459 If unsure, say Y.
Michael S. Tsirkin11948742013-10-03 16:30:41 +0300460 config FW_ROMFILE_LOAD
461 bool "Load BIOS tables from ROM files"
462 depends on QEMU_HARDWARE
463 default y
464 help
465 Support loading BIOS firmware tables from ROM files.
466 At the moment, only ACPI tables can be loaded in this way.
467 Required for QEMU 1.7 and newer.
468 This option can be disabled for QEMU 1.6 and older
469 to save some space in the ROM file.
470 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500471endmenu
472
Kevin O'Connor23219122013-02-17 10:56:10 -0500473source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000474
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500475menu "Debugging"
476 config DEBUG_LEVEL
477 int "Debug level"
478 default 1
479 help
480 Control how verbose debug output is. The higher the
481 number, the more verbose SeaBIOS will be.
482
483 Set to zero to disable debugging.
484
485 config DEBUG_SERIAL
486 depends on DEBUG_LEVEL != 0
487 bool "Serial port debugging"
488 default n
489 help
490 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400491 config DEBUG_SERIAL_PORT
492 depends on DEBUG_SERIAL
493 hex "Serial port base address"
494 default 0x3f8
495 help
496 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000497
498 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200499 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000500 bool "Special IO port debugging"
501 default y
502 help
503 Some emulators or hypervisors provide with a way to output debug
504 information by outputing strings in a special port present in the
505 IO space.
506
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200507 config DEBUG_COREBOOT
508 depends on COREBOOT && DEBUG_LEVEL != 0
509 bool "coreboot cbmem debug logging"
510 default y
511 help
512 Send debugging information to the coreboot cbmem console buffer.
513 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
514 after boot using 'cbmem -c'. Only 32bit code (basically every-
515 thing before booting the OS) writes to the log buffer.
516
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500517endmenu