blob: 3a7d6bd057ffaf674f3825fcdd7663f122fc8187 [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.
219 config USB_MSC
220 depends on USB && DRIVES
221 bool "USB drives"
222 default y
223 help
Gerd Hoffmanne53e30d2012-07-20 10:59:24 +0200224 Support USB BOT (bulk-only transport) disks.
225 config USB_UAS
226 depends on USB && DRIVES
227 bool "UAS drives"
228 default y
229 help
230 Support USB UAS (usb attached scsi) disks.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500231 config USB_HUB
232 depends on USB
233 bool "USB hubs"
234 default y
235 help
236 Support USB hubs.
237 config USB_KEYBOARD
238 depends on USB && KEYBOARD
239 bool "USB keyboards"
240 default y
241 help
242 Support USB keyboards.
243 config USB_MOUSE
244 depends on USB && MOUSE
245 bool "USB mice"
246 default y
247 help
248 Support USB mice.
249
250 config SERIAL
251 bool "Serial port"
252 default y
253 help
254 Support serial ports. This also enables int 14 serial port calls.
255 config LPT
256 bool "Parallel port"
257 default y
258 help
259 Support parallel ports. This also enables int 17 parallel port calls.
260
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500261 config USE_SMM
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100262 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500263 bool "System Management Mode (SMM)"
264 default y
265 help
266 Support System Management Mode (on emulators).
Kevin O'Connor424f2172011-03-06 19:06:48 -0500267 config MTRR_INIT
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100268 depends on QEMU
Kevin O'Connor424f2172011-03-06 19:06:48 -0500269 bool "Initialize MTRRs"
270 default y
271 help
272 Initialize the Memory Type Range Registers (on emulators).
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200273 config PMTIMER
Gerd Hoffmann455a7c82012-09-06 08:01:00 +0200274 bool "Use ACPI timer"
275 default y
276 help
277 Use the ACPI timer instead of the TSC for timekeeping (on qemu).
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500278endmenu
279
280menu "BIOS interfaces"
281 config DRIVES
282 bool "Drive interface"
283 default y
284 help
285 Support int13 disk/floppy drive functions.
286
287 config CDROM_BOOT
288 depends on DRIVES
289 bool "DVD/CDROM booting"
290 default y
291 help
292 Support for booting from a CD. (El Torito spec support.)
293 config CDROM_EMU
294 depends on CDROM_BOOT
295 bool "DVD/CDROM boot drive emulation"
296 default y
297 help
298 Support bootable CDROMs that emulate a floppy/harddrive.
299
300 config PCIBIOS
301 bool "PCIBIOS interface"
302 default y
303 help
304 Support int 1a/b1 PCI BIOS calls.
305 config APMBIOS
306 bool "APM interface"
307 default y
308 help
309 Support int 15/53 APM BIOS calls.
310 config PNPBIOS
311 bool "PnP BIOS interface"
312 default y
313 help
314 Support PnP BIOS entry point.
315 config OPTIONROMS
316 bool "Option ROMS"
317 default y
318 help
319 Support finding and running option roms during POST.
320 config OPTIONROMS_DEPLOYED
David Woodhouse5cf799b2013-02-14 08:56:20 +0000321 depends on OPTIONROMS && QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500322 bool "Option roms are already at 0xc0000-0xf0000"
323 default n
324 help
325 Select this if option ROMs are already copied to
326 0xc0000-0xf0000. This must only be selected when using
327 Bochs or QEMU versions older than 0.12.
328 config PMM
329 depends on OPTIONROMS
330 bool "PMM interface"
331 default y
332 help
333 Support Post Memory Manager (PMM) entry point.
334 config BOOT
335 bool "Boot interface"
336 default y
337 help
338 Support int 19/18 system bootup support.
339 config KEYBOARD
340 bool "Keyboard interface"
341 default y
342 help
343 Support int 16 keyboard calls.
344 config KBD_CALL_INT15_4F
345 depends on KEYBOARD
346 bool "Keyboard hook interface"
347 default y
348 help
349 Support calling int155f on each keyboard event.
350 config MOUSE
351 bool "Mouse interface"
352 default y
353 help
354 Support for int15c2 mouse calls.
355
356 config S3_RESUME
357 bool "S3 resume"
358 default y
359 help
360 Support S3 resume handler.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500361
Kevin O'Connor713be892011-01-26 21:19:25 -0500362 config VGAHOOKS
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500363 bool "Hardware specific VGA helpers"
364 default y
365 help
366 Support int 155f BIOS callbacks specific to some Intel and
367 VIA on-board vga devices.
368
369 config DISABLE_A20
370 bool "Disable A20"
371 default n
372 help
373 Disable A20 on 16bit boot.
Kevin O'Connorc98424c2013-07-21 16:38:18 -0400374
375 config WRITABLE_UPPERMEMORY
376 depends on QEMU
377 bool "Make unused UMB memory read/writeable."
378 default n
379 help
380 When selected, the "Upper Memory Block" area
381 (0x90000-0xa0000) that is not used for option roms will be
382 made writable. This allows the ram to be directly
383 modified by programs. However, some old DOS high memory
384 managers may require the UMB region to be read-only.
385
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500386endmenu
387
388menu "BIOS Tables"
Gerd Hoffmann9600c802012-10-29 11:28:32 +0100389 depends on QEMU
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500390 config PIRTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500391 bool "PIR table"
392 default y
393 help
394 Support generation of a PIR table in 0xf000 segment.
395 config MPTABLE
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500396 bool "MPTable"
397 default y
398 help
399 Support generation of MPTable.
400 config SMBIOS
401 bool "SMBIOS"
402 default y
403 help
404 Support generation of SM BIOS tables. This is also
405 sometimes called DMI.
406 config ACPI
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500407 bool "ACPI"
408 default y
409 help
410 Support generation of ACPI tables.
Michael S. Tsirkin5aef5632013-03-18 15:18:25 +0200411 config ACPI_DSDT
412 bool "Include default ACPI DSDT"
413 default y
414 depends on ACPI
415 help
416 Include default DSDT ACPI table in BIOS.
417 Required for QEMU 1.3 and older.
418 This option can be disabled for QEMU 1.4 and newer
419 to save some space in the ROM file.
420 If unsure, say Y.
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500421endmenu
422
Kevin O'Connor23219122013-02-17 10:56:10 -0500423source vgasrc/Kconfig
Julian Pidancetda08a6d2011-12-19 05:07:56 +0000424
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500425menu "Debugging"
426 config DEBUG_LEVEL
427 int "Debug level"
428 default 1
429 help
430 Control how verbose debug output is. The higher the
431 number, the more verbose SeaBIOS will be.
432
433 Set to zero to disable debugging.
434
435 config DEBUG_SERIAL
436 depends on DEBUG_LEVEL != 0
437 bool "Serial port debugging"
438 default n
439 help
440 Send debugging information to serial port.
Kevin O'Connord12e8a22011-05-10 23:36:11 -0400441 config DEBUG_SERIAL_PORT
442 depends on DEBUG_SERIAL
443 hex "Serial port base address"
444 default 0x3f8
445 help
446 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
Julian Pidancet7123d982012-02-01 16:03:24 +0000447
448 config DEBUG_IO
Gerd Hoffmann2ca73ed2013-06-05 09:37:24 +0200449 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
Julian Pidancet7123d982012-02-01 16:03:24 +0000450 bool "Special IO port debugging"
451 default y
452 help
453 Some emulators or hypervisors provide with a way to output debug
454 information by outputing strings in a special port present in the
455 IO space.
456
Gerd Hoffmannc83e7c22013-06-25 15:45:30 +0200457 config DEBUG_COREBOOT
458 depends on COREBOOT && DEBUG_LEVEL != 0
459 bool "coreboot cbmem debug logging"
460 default y
461 help
462 Send debugging information to the coreboot cbmem console buffer.
463 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
464 after boot using 'cbmem -c'. Only 32bit code (basically every-
465 thing before booting the OS) writes to the log buffer.
466
Kevin O'Connor1efb10b2011-01-29 10:57:20 -0500467endmenu