blob: a1c0c1e5111d48de63d28ae651bafe1d2033bc55 [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.
162 config VIRTIO_BLK
Kevin O'Connor897fb112013-02-07 23:32:48 -0500163 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100164 bool "virtio-blk controllers"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500165 default y
166 help
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100167 Support boot from virtio-blk storage.
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100168 config VIRTIO_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500169 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100170 bool "virtio-scsi controllers"
171 default y
172 help
173 Support boot from virtio-scsi storage.
Evgeny Budilovsky83d60b32013-10-14 18:03:36 +0300174 config PVSCSI
175 depends on DRIVES && QEMU_HARDWARE
176 bool "PVSCSI controllers"
177 default y
178 help
179 Support boot from Paravirtualized SCSI storage. This kind of storage
180 is mainly supported by VMware ESX hypervisor. It is commonly used
181 to allow fast storage access by communicating directly with the
182 underlying hypervisor. Enabling this type of boot will allow
183 booting directly from images imported from an ESX platform,
184 without the need to use slower emulation of storage controllers
185 such as IDE.
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200186 config ESP_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500187 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200188 bool "AMD PCscsi controllers"
189 default y
190 help
191 Support boot from AMD PCscsi storage.
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200192 config LSI_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500193 depends on DRIVES && QEMU_HARDWARE
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200194 bool "lsi53c895a scsi controllers"
195 default y
196 help
197 Support boot from qemu-emulated lsi53c895a scsi storage.
Hannes Reinecke2df70bf2012-11-13 15:03:31 +0100198 config MEGASAS
199 depends on DRIVES
200 bool "LSI MegaRAID SAS controllers"
201 default y
202 help
203 Support boot from LSI MegaRAID SAS scsi storage.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500204 config FLOPPY
205 depends on DRIVES
206 bool "Floppy controller"
207 default y
208 help
209 Support floppy drive access.
210
211 config PS2PORT
212 depends on KEYBOARD || MOUSE
213 bool "PS/2 port"
214 default y
215 help
216 Support PS2 ports (keyboard and mouse).
217
218 config USB
219 bool "USB"
220 default y
221 help
222 Support USB devices.
223 config USB_UHCI
224 depends on USB
225 bool "USB UHCI controllers"
226 default y
227 help
228 Support USB UHCI controllers.
229 config USB_OHCI
230 depends on USB
231 bool "USB OHCI controllers"
232 default y
233 help
234 Support USB OHCI controllers.
235 config USB_EHCI
236 depends on USB
237 bool "USB EHCI controllers"
238 default y
239 help
240 Support USB EHCI controllers.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200241 config USB_XHCI
Kevin O'Connore3b9cad2013-12-27 21:57:14 -0500242 depends on USB
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200243 bool "USB XHCI controllers"
244 default y
245 help
246 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500247 config USB_MSC
248 depends on USB && DRIVES
249 bool "USB drives"
250 default y
251 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200252 Support USB BOT (bulk-only transport) disks.
253 config USB_UAS
254 depends on USB && DRIVES
255 bool "UAS drives"
256 default y
257 help
258 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500259 config USB_HUB
260 depends on USB
261 bool "USB hubs"
262 default y
263 help
264 Support USB hubs.
265 config USB_KEYBOARD
266 depends on USB && KEYBOARD
267 bool "USB keyboards"
268 default y
269 help
270 Support USB keyboards.
271 config USB_MOUSE
272 depends on USB && MOUSE
273 bool "USB mice"
274 default y
275 help
276 Support USB mice.
277
278 config SERIAL
279 bool "Serial port"
280 default y
281 help
282 Support serial ports. This also enables int 14 serial port calls.
283 config LPT
284 bool "Parallel port"
285 default y
286 help
287 Support parallel ports. This also enables int 17 parallel port calls.
288
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500289 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100290 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500291 bool "System Management Mode (SMM)"
292 default y
293 help
294 Support System Management Mode (on emulators).
Kevin O'Connor55215cd2014-04-11 11:20:41 -0400295 config CALL32_SMM
296 bool
297 depends on USE_SMM
298 default y
Kevin O'Connor424f2172011-03-06 19:06:48 -0500299 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100300 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500301 bool "Initialize MTRRs"
302 default y
303 help
304 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200305 config PMTIMER
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200306 bool "Use ACPI timer"
307 default y
308 help
309 Use the ACPI timer instead of the TSC for timekeeping (on qemu).
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500310endmenu
311
312menu "BIOS interfaces"
313 config DRIVES
314 bool "Drive interface"
315 default y
316 help
317 Support int13 disk/floppy drive functions.
318
319 config CDROM_BOOT
320 depends on DRIVES
321 bool "DVD/CDROM booting"
322 default y
323 help
324 Support for booting from a CD. (El Torito spec support.)
325 config CDROM_EMU
326 depends on CDROM_BOOT
327 bool "DVD/CDROM boot drive emulation"
328 default y
329 help
330 Support bootable CDROMs that emulate a floppy/harddrive.
331
332 config PCIBIOS
333 bool "PCIBIOS interface"
334 default y
335 help
336 Support int 1a/b1 PCI BIOS calls.
337 config APMBIOS
338 bool "APM interface"
339 default y
340 help
341 Support int 15/53 APM BIOS calls.
342 config PNPBIOS
343 bool "PnP BIOS interface"
344 default y
345 help
346 Support PnP BIOS entry point.
347 config OPTIONROMS
348 bool "Option ROMS"
349 default y
350 help
351 Support finding and running option roms during POST.
352 config OPTIONROMS_DEPLOYED
David Woodhouse5cf799b2013-02-14 08:56:20 +0000353 depends on OPTIONROMS && QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500354 bool "Option roms are already at 0xc0000-0xf0000"
355 default n
356 help
357 Select this if option ROMs are already copied to
358 0xc0000-0xf0000. This must only be selected when using
359 Bochs or QEMU versions older than 0.12.
360 config PMM
361 depends on OPTIONROMS
362 bool "PMM interface"
363 default y
364 help
365 Support Post Memory Manager (PMM) entry point.
366 config BOOT
367 bool "Boot interface"
368 default y
369 help
370 Support int 19/18 system bootup support.
371 config KEYBOARD
372 bool "Keyboard interface"
373 default y
374 help
375 Support int 16 keyboard calls.
376 config KBD_CALL_INT15_4F
377 depends on KEYBOARD
378 bool "Keyboard hook interface"
379 default y
380 help
381 Support calling int155f on each keyboard event.
382 config MOUSE
383 bool "Mouse interface"
384 default y
385 help
386 Support for int15c2 mouse calls.
387
388 config S3_RESUME
389 bool "S3 resume"
390 default y
391 help
392 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500393
Kevin O'Connor713be892011-01-26 21:19:25 -0500394 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500395 bool "Hardware specific VGA helpers"
396 default y
397 help
398 Support int 155f BIOS callbacks specific to some Intel and
399 VIA on-board vga devices.
400
401 config DISABLE_A20
402 bool "Disable A20"
403 default n
404 help
405 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400406
407 config WRITABLE_UPPERMEMORY
408 depends on QEMU
409 bool "Make unused UMB memory read/writeable."
410 default n
411 help
412 When selected, the "Upper Memory Block" area
413 (0x90000-0xa0000) that is not used for option roms will be
414 made writable. This allows the ram to be directly
415 modified by programs. However, some old DOS high memory
416 managers may require the UMB region to be read-only.
417
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500418endmenu
419
420menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100421 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500422 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500423 bool "PIR table"
424 default y
425 help
426 Support generation of a PIR table in 0xf000 segment.
427 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500428 bool "MPTable"
429 default y
430 help
431 Support generation of MPTable.
432 config SMBIOS
433 bool "SMBIOS"
434 default y
435 help
436 Support generation of SM BIOS tables. This is also
437 sometimes called DMI.
438 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500439 bool "ACPI"
440 default y
441 help
442 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200443 config ACPI_DSDT
444 bool "Include default ACPI DSDT"
445 default y
446 depends on ACPI
447 help
448 Include default DSDT ACPI table in BIOS.
449 Required for QEMU 1.3 and older.
450 This option can be disabled for QEMU 1.4 and newer
451 to save some space in the ROM file.
452 If unsure, say Y.
Michael S. Tsirkin11948742013-10-03 16:30:41 +0300453 config FW_ROMFILE_LOAD
454 bool "Load BIOS tables from ROM files"
455 depends on QEMU_HARDWARE
456 default y
457 help
458 Support loading BIOS firmware tables from ROM files.
459 At the moment, only ACPI tables can be loaded in this way.
460 Required for QEMU 1.7 and newer.
461 This option can be disabled for QEMU 1.6 and older
462 to save some space in the ROM file.
463 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500464endmenu
465
Kevin O'Connor23219122013-02-17 10:56:10 -0500466source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000467
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500468menu "Debugging"
469 config DEBUG_LEVEL
470 int "Debug level"
471 default 1
472 help
473 Control how verbose debug output is. The higher the
474 number, the more verbose SeaBIOS will be.
475
476 Set to zero to disable debugging.
477
478 config DEBUG_SERIAL
479 depends on DEBUG_LEVEL != 0
480 bool "Serial port debugging"
481 default n
482 help
483 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400484 config DEBUG_SERIAL_PORT
485 depends on DEBUG_SERIAL
486 hex "Serial port base address"
487 default 0x3f8
488 help
489 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000490
491 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200492 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000493 bool "Special IO port debugging"
494 default y
495 help
496 Some emulators or hypervisors provide with a way to output debug
497 information by outputing strings in a special port present in the
498 IO space.
499
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200500 config DEBUG_COREBOOT
501 depends on COREBOOT && DEBUG_LEVEL != 0
502 bool "coreboot cbmem debug logging"
503 default y
504 help
505 Send debugging information to the coreboot cbmem console buffer.
506 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
507 after boot using 'cbmem -c'. Only 32bit code (basically every-
508 thing before booting the OS) writes to the log buffer.
509
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500510endmenu