blob: c40cc610edbc81481a6e57fb6dcc182eb122a31f [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
99 algorighm.
100 config FLASH_FLOPPY
101 depends on COREBOOT_FLASH
102 bool "Floppy images in CBFS"
103 default y
104 help
105 Support floppy images in coreboot flash.
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
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500125endmenu
126
127menu "Hardware support"
128 config ATA
129 depends on DRIVES
130 bool "ATA controllers"
131 default y
132 help
133 Support for IDE disk code.
134 config ATA_DMA
135 depends on ATA
136 bool "ATA DMA"
137 default n
138 help
139 Detect and try to use ATA bus mastering DMA controllers.
140 config ATA_PIO32
141 depends on ATA
142 bool "ATA 32bit PIO"
143 default n
144 help
145 Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
146 config AHCI
147 depends on DRIVES
148 bool "AHCI controllers"
Gerd Hoffmannceb8ed42011-08-04 20:42:16 +0200149 default y
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500150 help
151 Support for AHCI disk code.
152 config VIRTIO_BLK
Kevin O'Connor897fb112013-02-07 23:32:48 -0500153 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100154 bool "virtio-blk controllers"
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500155 default y
156 help
Paolo Bonzini0e7fb5f2011-11-16 13:02:55 +0100157 Support boot from virtio-blk storage.
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100158 config VIRTIO_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500159 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzinic5c488f2012-02-27 17:22:23 +0100160 bool "virtio-scsi controllers"
161 default y
162 help
163 Support boot from virtio-scsi storage.
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200164 config ESP_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500165 depends on DRIVES && QEMU_HARDWARE
Paolo Bonzini7a39e722012-08-06 13:15:06 +0200166 bool "AMD PCscsi controllers"
167 default y
168 help
169 Support boot from AMD PCscsi storage.
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200170 config LSI_SCSI
Kevin O'Connor897fb112013-02-07 23:32:48 -0500171 depends on DRIVES && QEMU_HARDWARE
Gerd Hoffmann9d6bac12012-07-20 10:59:25 +0200172 bool "lsi53c895a scsi controllers"
173 default y
174 help
175 Support boot from qemu-emulated lsi53c895a scsi storage.
Hannes Reinecke2df70bf2012-11-13 15:03:31 +0100176 config MEGASAS
177 depends on DRIVES
178 bool "LSI MegaRAID SAS controllers"
179 default y
180 help
181 Support boot from LSI MegaRAID SAS scsi storage.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500182 config FLOPPY
183 depends on DRIVES
184 bool "Floppy controller"
185 default y
186 help
187 Support floppy drive access.
188
189 config PS2PORT
190 depends on KEYBOARD || MOUSE
191 bool "PS/2 port"
192 default y
193 help
194 Support PS2 ports (keyboard and mouse).
195
196 config USB
197 bool "USB"
198 default y
199 help
200 Support USB devices.
201 config USB_UHCI
202 depends on USB
203 bool "USB UHCI controllers"
204 default y
205 help
206 Support USB UHCI controllers.
207 config USB_OHCI
208 depends on USB
209 bool "USB OHCI controllers"
210 default y
211 help
212 Support USB OHCI controllers.
213 config USB_EHCI
214 depends on USB
215 bool "USB EHCI controllers"
216 default y
217 help
218 Support USB EHCI controllers.
Gerd Hoffmanne144bb72013-06-03 16:30:18 +0200219 config USB_XHCI
220 depends on USB && QEMU_HARDWARE
221 bool "USB XHCI controllers"
222 default y
223 help
224 Support USB XHCI controllers.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500225 config USB_MSC
226 depends on USB && DRIVES
227 bool "USB drives"
228 default y
229 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200230 Support USB BOT (bulk-only transport) disks.
231 config USB_UAS
232 depends on USB && DRIVES
233 bool "UAS drives"
234 default y
235 help
236 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500237 config USB_HUB
238 depends on USB
239 bool "USB hubs"
240 default y
241 help
242 Support USB hubs.
243 config USB_KEYBOARD
244 depends on USB && KEYBOARD
245 bool "USB keyboards"
246 default y
247 help
248 Support USB keyboards.
249 config USB_MOUSE
250 depends on USB && MOUSE
251 bool "USB mice"
252 default y
253 help
254 Support USB mice.
255
256 config SERIAL
257 bool "Serial port"
258 default y
259 help
260 Support serial ports. This also enables int 14 serial port calls.
261 config LPT
262 bool "Parallel port"
263 default y
264 help
265 Support parallel ports. This also enables int 17 parallel port calls.
266
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500267 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100268 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500269 bool "System Management Mode (SMM)"
270 default y
271 help
272 Support System Management Mode (on emulators).
Kevin O'Connor424f2172011-03-06 19:06:48 -0500273 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100274 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500275 bool "Initialize MTRRs"
276 default y
277 help
278 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200279 config PMTIMER
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200280 bool "Use ACPI timer"
281 default y
282 help
283 Use the ACPI timer instead of the TSC for timekeeping (on qemu).
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500284endmenu
285
286menu "BIOS interfaces"
287 config DRIVES
288 bool "Drive interface"
289 default y
290 help
291 Support int13 disk/floppy drive functions.
292
293 config CDROM_BOOT
294 depends on DRIVES
295 bool "DVD/CDROM booting"
296 default y
297 help
298 Support for booting from a CD. (El Torito spec support.)
299 config CDROM_EMU
300 depends on CDROM_BOOT
301 bool "DVD/CDROM boot drive emulation"
302 default y
303 help
304 Support bootable CDROMs that emulate a floppy/harddrive.
305
306 config PCIBIOS
307 bool "PCIBIOS interface"
308 default y
309 help
310 Support int 1a/b1 PCI BIOS calls.
311 config APMBIOS
312 bool "APM interface"
313 default y
314 help
315 Support int 15/53 APM BIOS calls.
316 config PNPBIOS
317 bool "PnP BIOS interface"
318 default y
319 help
320 Support PnP BIOS entry point.
321 config OPTIONROMS
322 bool "Option ROMS"
323 default y
324 help
325 Support finding and running option roms during POST.
326 config OPTIONROMS_DEPLOYED
David Woodhouse5cf799b2013-02-14 08:56:20 +0000327 depends on OPTIONROMS && QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500328 bool "Option roms are already at 0xc0000-0xf0000"
329 default n
330 help
331 Select this if option ROMs are already copied to
332 0xc0000-0xf0000. This must only be selected when using
333 Bochs or QEMU versions older than 0.12.
334 config PMM
335 depends on OPTIONROMS
336 bool "PMM interface"
337 default y
338 help
339 Support Post Memory Manager (PMM) entry point.
340 config BOOT
341 bool "Boot interface"
342 default y
343 help
344 Support int 19/18 system bootup support.
345 config KEYBOARD
346 bool "Keyboard interface"
347 default y
348 help
349 Support int 16 keyboard calls.
350 config KBD_CALL_INT15_4F
351 depends on KEYBOARD
352 bool "Keyboard hook interface"
353 default y
354 help
355 Support calling int155f on each keyboard event.
356 config MOUSE
357 bool "Mouse interface"
358 default y
359 help
360 Support for int15c2 mouse calls.
361
362 config S3_RESUME
363 bool "S3 resume"
364 default y
365 help
366 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500367
Kevin O'Connor713be892011-01-26 21:19:25 -0500368 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500369 bool "Hardware specific VGA helpers"
370 default y
371 help
372 Support int 155f BIOS callbacks specific to some Intel and
373 VIA on-board vga devices.
374
375 config DISABLE_A20
376 bool "Disable A20"
377 default n
378 help
379 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400380
381 config WRITABLE_UPPERMEMORY
382 depends on QEMU
383 bool "Make unused UMB memory read/writeable."
384 default n
385 help
386 When selected, the "Upper Memory Block" area
387 (0x90000-0xa0000) that is not used for option roms will be
388 made writable. This allows the ram to be directly
389 modified by programs. However, some old DOS high memory
390 managers may require the UMB region to be read-only.
391
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500392endmenu
393
394menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100395 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500396 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500397 bool "PIR table"
398 default y
399 help
400 Support generation of a PIR table in 0xf000 segment.
401 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500402 bool "MPTable"
403 default y
404 help
405 Support generation of MPTable.
406 config SMBIOS
407 bool "SMBIOS"
408 default y
409 help
410 Support generation of SM BIOS tables. This is also
411 sometimes called DMI.
412 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500413 bool "ACPI"
414 default y
415 help
416 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200417 config ACPI_DSDT
418 bool "Include default ACPI DSDT"
419 default y
420 depends on ACPI
421 help
422 Include default DSDT ACPI table in BIOS.
423 Required for QEMU 1.3 and older.
424 This option can be disabled for QEMU 1.4 and newer
425 to save some space in the ROM file.
426 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500427endmenu
428
Kevin O'Connor23219122013-02-17 10:56:10 -0500429source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000430
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500431menu "Debugging"
432 config DEBUG_LEVEL
433 int "Debug level"
434 default 1
435 help
436 Control how verbose debug output is. The higher the
437 number, the more verbose SeaBIOS will be.
438
439 Set to zero to disable debugging.
440
441 config DEBUG_SERIAL
442 depends on DEBUG_LEVEL != 0
443 bool "Serial port debugging"
444 default n
445 help
446 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400447 config DEBUG_SERIAL_PORT
448 depends on DEBUG_SERIAL
449 hex "Serial port base address"
450 default 0x3f8
451 help
452 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000453
454 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200455 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000456 bool "Special IO port debugging"
457 default y
458 help
459 Some emulators or hypervisors provide with a way to output debug
460 information by outputing strings in a special port present in the
461 IO space.
462
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200463 config DEBUG_COREBOOT
464 depends on COREBOOT && DEBUG_LEVEL != 0
465 bool "coreboot cbmem debug logging"
466 default y
467 help
468 Send debugging information to the coreboot cbmem console buffer.
469 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
470 after boot using 'cbmem -c'. Only 32bit code (basically every-
471 thing before booting the OS) writes to the log buffer.
472
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500473endmenu