Kevin O'Connor | 713be89 | 2011-01-26 21:19:25 -0500 | [diff] [blame] | 1 | # Kconfig SeaBIOS configuration |
| 2 | |
| 3 | mainmenu "SeaBIOS Configuration" |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 4 | |
| 5 | menu "General Features" |
| 6 | |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 7 | choice |
| 8 | prompt "Build Target" |
| 9 | default QEMU |
| 10 | |
Kevin O'Connor | 713be89 | 2011-01-26 21:19:25 -0500 | [diff] [blame] | 11 | config COREBOOT |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 12 | bool "Build for coreboot" |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 13 | help |
| 14 | Configure as a coreboot payload. |
| 15 | |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 16 | config QEMU |
Kevin O'Connor | 02313b2 | 2013-02-07 22:42:25 -0500 | [diff] [blame] | 17 | bool "Build for QEMU/Xen/KVM/Bochs" |
| 18 | select QEMU_HARDWARE |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 19 | help |
Kevin O'Connor | 02313b2 | 2013-02-07 22:42:25 -0500 | [diff] [blame] | 20 | Configure for an emulated machine (QEMU, Xen, KVM, or Bochs). |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 21 | |
David Woodhouse | 118469a | 2013-01-25 19:46:25 -0600 | [diff] [blame] | 22 | 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 Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 28 | endchoice |
| 29 | |
Kevin O'Connor | 02313b2 | 2013-02-07 22:42:25 -0500 | [diff] [blame] | 30 | 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 Campbell | 74c7878 | 2011-06-01 11:00:29 +0100 | [diff] [blame] | 37 | config XEN |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 38 | depends on QEMU |
Kevin O'Connor | 02313b2 | 2013-02-07 22:42:25 -0500 | [diff] [blame] | 39 | bool "Support Xen HVM" |
Ian Campbell | 9264a2c | 2012-06-28 11:08:31 +0100 | [diff] [blame] | 40 | default y |
Ian Campbell | 74c7878 | 2011-06-01 11:00:29 +0100 | [diff] [blame] | 41 | help |
| 42 | Configure to be used by xen hvmloader, for a HVM guest. |
| 43 | |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 44 | config THREADS |
| 45 | bool "Parallelize hardware init" |
| 46 | default y |
| 47 | help |
| 48 | Support running hardware initialization in parallel. |
| 49 | config THREAD_OPTIONROMS |
David Woodhouse | 41fb363 | 2013-02-14 08:55:52 +0000 | [diff] [blame] | 50 | depends on THREADS && !CSM |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 51 | 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'Connor | f31171c | 2011-05-07 13:57:42 -0400 | [diff] [blame] | 56 | 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'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 61 | 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'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 73 | 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'Connor | 49bf57b | 2011-05-10 22:08:30 -0400 | [diff] [blame] | 79 | 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'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 86 | |
| 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'Connor | f0d75a0 | 2013-03-02 18:14:35 -0500 | [diff] [blame] | 106 | 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'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 115 | |
| 116 | endmenu |
| 117 | |
| 118 | menu "Hardware support" |
| 119 | config ATA |
| 120 | depends on DRIVES |
| 121 | bool "ATA controllers" |
| 122 | default y |
| 123 | help |
| 124 | Support for IDE disk code. |
| 125 | config ATA_DMA |
| 126 | depends on ATA |
| 127 | bool "ATA DMA" |
| 128 | default n |
| 129 | help |
| 130 | Detect and try to use ATA bus mastering DMA controllers. |
| 131 | config ATA_PIO32 |
| 132 | depends on ATA |
| 133 | bool "ATA 32bit PIO" |
| 134 | default n |
| 135 | help |
| 136 | Use 32bit PIO accesses on ATA (minor optimization on PCI transfers). |
| 137 | config AHCI |
| 138 | depends on DRIVES |
| 139 | bool "AHCI controllers" |
Gerd Hoffmann | ceb8ed4 | 2011-08-04 20:42:16 +0200 | [diff] [blame] | 140 | default y |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 141 | help |
| 142 | Support for AHCI disk code. |
| 143 | config VIRTIO_BLK |
Kevin O'Connor | 897fb11 | 2013-02-07 23:32:48 -0500 | [diff] [blame] | 144 | depends on DRIVES && QEMU_HARDWARE |
Paolo Bonzini | 0e7fb5f | 2011-11-16 13:02:55 +0100 | [diff] [blame] | 145 | bool "virtio-blk controllers" |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 146 | default y |
| 147 | help |
Paolo Bonzini | 0e7fb5f | 2011-11-16 13:02:55 +0100 | [diff] [blame] | 148 | Support boot from virtio-blk storage. |
Paolo Bonzini | c5c488f | 2012-02-27 17:22:23 +0100 | [diff] [blame] | 149 | config VIRTIO_SCSI |
Kevin O'Connor | 897fb11 | 2013-02-07 23:32:48 -0500 | [diff] [blame] | 150 | depends on DRIVES && QEMU_HARDWARE |
Paolo Bonzini | c5c488f | 2012-02-27 17:22:23 +0100 | [diff] [blame] | 151 | bool "virtio-scsi controllers" |
| 152 | default y |
| 153 | help |
| 154 | Support boot from virtio-scsi storage. |
Paolo Bonzini | 7a39e72 | 2012-08-06 13:15:06 +0200 | [diff] [blame] | 155 | config ESP_SCSI |
Kevin O'Connor | 897fb11 | 2013-02-07 23:32:48 -0500 | [diff] [blame] | 156 | depends on DRIVES && QEMU_HARDWARE |
Paolo Bonzini | 7a39e72 | 2012-08-06 13:15:06 +0200 | [diff] [blame] | 157 | bool "AMD PCscsi controllers" |
| 158 | default y |
| 159 | help |
| 160 | Support boot from AMD PCscsi storage. |
Gerd Hoffmann | 9d6bac1 | 2012-07-20 10:59:25 +0200 | [diff] [blame] | 161 | config LSI_SCSI |
Kevin O'Connor | 897fb11 | 2013-02-07 23:32:48 -0500 | [diff] [blame] | 162 | depends on DRIVES && QEMU_HARDWARE |
Gerd Hoffmann | 9d6bac1 | 2012-07-20 10:59:25 +0200 | [diff] [blame] | 163 | bool "lsi53c895a scsi controllers" |
| 164 | default y |
| 165 | help |
| 166 | Support boot from qemu-emulated lsi53c895a scsi storage. |
Hannes Reinecke | 2df70bf | 2012-11-13 15:03:31 +0100 | [diff] [blame] | 167 | config MEGASAS |
| 168 | depends on DRIVES |
| 169 | bool "LSI MegaRAID SAS controllers" |
| 170 | default y |
| 171 | help |
| 172 | Support boot from LSI MegaRAID SAS scsi storage. |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 173 | config FLOPPY |
| 174 | depends on DRIVES |
| 175 | bool "Floppy controller" |
| 176 | default y |
| 177 | help |
| 178 | Support floppy drive access. |
| 179 | |
| 180 | config PS2PORT |
| 181 | depends on KEYBOARD || MOUSE |
| 182 | bool "PS/2 port" |
| 183 | default y |
| 184 | help |
| 185 | Support PS2 ports (keyboard and mouse). |
| 186 | |
| 187 | config USB |
| 188 | bool "USB" |
| 189 | default y |
| 190 | help |
| 191 | Support USB devices. |
| 192 | config USB_UHCI |
| 193 | depends on USB |
| 194 | bool "USB UHCI controllers" |
| 195 | default y |
| 196 | help |
| 197 | Support USB UHCI controllers. |
| 198 | config USB_OHCI |
| 199 | depends on USB |
| 200 | bool "USB OHCI controllers" |
| 201 | default y |
| 202 | help |
| 203 | Support USB OHCI controllers. |
| 204 | config USB_EHCI |
| 205 | depends on USB |
| 206 | bool "USB EHCI controllers" |
| 207 | default y |
| 208 | help |
| 209 | Support USB EHCI controllers. |
| 210 | config USB_MSC |
| 211 | depends on USB && DRIVES |
| 212 | bool "USB drives" |
| 213 | default y |
| 214 | help |
Gerd Hoffmann | e53e30d | 2012-07-20 10:59:24 +0200 | [diff] [blame] | 215 | Support USB BOT (bulk-only transport) disks. |
| 216 | config USB_UAS |
| 217 | depends on USB && DRIVES |
| 218 | bool "UAS drives" |
| 219 | default y |
| 220 | help |
| 221 | Support USB UAS (usb attached scsi) disks. |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 222 | config USB_HUB |
| 223 | depends on USB |
| 224 | bool "USB hubs" |
| 225 | default y |
| 226 | help |
| 227 | Support USB hubs. |
| 228 | config USB_KEYBOARD |
| 229 | depends on USB && KEYBOARD |
| 230 | bool "USB keyboards" |
| 231 | default y |
| 232 | help |
| 233 | Support USB keyboards. |
| 234 | config USB_MOUSE |
| 235 | depends on USB && MOUSE |
| 236 | bool "USB mice" |
| 237 | default y |
| 238 | help |
| 239 | Support USB mice. |
| 240 | |
| 241 | config SERIAL |
| 242 | bool "Serial port" |
| 243 | default y |
| 244 | help |
| 245 | Support serial ports. This also enables int 14 serial port calls. |
| 246 | config LPT |
| 247 | bool "Parallel port" |
| 248 | default y |
| 249 | help |
| 250 | Support parallel ports. This also enables int 17 parallel port calls. |
| 251 | |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 252 | config USE_SMM |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 253 | depends on QEMU |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 254 | bool "System Management Mode (SMM)" |
| 255 | default y |
| 256 | help |
| 257 | Support System Management Mode (on emulators). |
Kevin O'Connor | 424f217 | 2011-03-06 19:06:48 -0500 | [diff] [blame] | 258 | config MTRR_INIT |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 259 | depends on QEMU |
Kevin O'Connor | 424f217 | 2011-03-06 19:06:48 -0500 | [diff] [blame] | 260 | bool "Initialize MTRRs" |
| 261 | default y |
| 262 | help |
| 263 | Initialize the Memory Type Range Registers (on emulators). |
Gerd Hoffmann | 455a7c8 | 2012-09-06 08:01:00 +0200 | [diff] [blame] | 264 | config PMTIMER |
Gerd Hoffmann | 455a7c8 | 2012-09-06 08:01:00 +0200 | [diff] [blame] | 265 | bool "Use ACPI timer" |
| 266 | default y |
| 267 | help |
| 268 | Use the ACPI timer instead of the TSC for timekeeping (on qemu). |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 269 | endmenu |
| 270 | |
| 271 | menu "BIOS interfaces" |
| 272 | config DRIVES |
| 273 | bool "Drive interface" |
| 274 | default y |
| 275 | help |
| 276 | Support int13 disk/floppy drive functions. |
| 277 | |
| 278 | config CDROM_BOOT |
| 279 | depends on DRIVES |
| 280 | bool "DVD/CDROM booting" |
| 281 | default y |
| 282 | help |
| 283 | Support for booting from a CD. (El Torito spec support.) |
| 284 | config CDROM_EMU |
| 285 | depends on CDROM_BOOT |
| 286 | bool "DVD/CDROM boot drive emulation" |
| 287 | default y |
| 288 | help |
| 289 | Support bootable CDROMs that emulate a floppy/harddrive. |
| 290 | |
| 291 | config PCIBIOS |
| 292 | bool "PCIBIOS interface" |
| 293 | default y |
| 294 | help |
| 295 | Support int 1a/b1 PCI BIOS calls. |
| 296 | config APMBIOS |
| 297 | bool "APM interface" |
| 298 | default y |
| 299 | help |
| 300 | Support int 15/53 APM BIOS calls. |
| 301 | config PNPBIOS |
| 302 | bool "PnP BIOS interface" |
| 303 | default y |
| 304 | help |
| 305 | Support PnP BIOS entry point. |
| 306 | config OPTIONROMS |
| 307 | bool "Option ROMS" |
| 308 | default y |
| 309 | help |
| 310 | Support finding and running option roms during POST. |
| 311 | config OPTIONROMS_DEPLOYED |
David Woodhouse | 5cf799b | 2013-02-14 08:56:20 +0000 | [diff] [blame] | 312 | depends on OPTIONROMS && QEMU |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 313 | bool "Option roms are already at 0xc0000-0xf0000" |
| 314 | default n |
| 315 | help |
| 316 | Select this if option ROMs are already copied to |
| 317 | 0xc0000-0xf0000. This must only be selected when using |
| 318 | Bochs or QEMU versions older than 0.12. |
| 319 | config PMM |
| 320 | depends on OPTIONROMS |
| 321 | bool "PMM interface" |
| 322 | default y |
| 323 | help |
| 324 | Support Post Memory Manager (PMM) entry point. |
| 325 | config BOOT |
| 326 | bool "Boot interface" |
| 327 | default y |
| 328 | help |
| 329 | Support int 19/18 system bootup support. |
| 330 | config KEYBOARD |
| 331 | bool "Keyboard interface" |
| 332 | default y |
| 333 | help |
| 334 | Support int 16 keyboard calls. |
| 335 | config KBD_CALL_INT15_4F |
| 336 | depends on KEYBOARD |
| 337 | bool "Keyboard hook interface" |
| 338 | default y |
| 339 | help |
| 340 | Support calling int155f on each keyboard event. |
| 341 | config MOUSE |
| 342 | bool "Mouse interface" |
| 343 | default y |
| 344 | help |
| 345 | Support for int15c2 mouse calls. |
| 346 | |
| 347 | config S3_RESUME |
| 348 | bool "S3 resume" |
| 349 | default y |
| 350 | help |
| 351 | Support S3 resume handler. |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 352 | |
Kevin O'Connor | 713be89 | 2011-01-26 21:19:25 -0500 | [diff] [blame] | 353 | config VGAHOOKS |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 354 | bool "Hardware specific VGA helpers" |
| 355 | default y |
| 356 | help |
| 357 | Support int 155f BIOS callbacks specific to some Intel and |
| 358 | VIA on-board vga devices. |
| 359 | |
| 360 | config DISABLE_A20 |
| 361 | bool "Disable A20" |
| 362 | default n |
| 363 | help |
| 364 | Disable A20 on 16bit boot. |
| 365 | endmenu |
| 366 | |
| 367 | menu "BIOS Tables" |
Gerd Hoffmann | 9600c80 | 2012-10-29 11:28:32 +0100 | [diff] [blame] | 368 | depends on QEMU |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 369 | config PIRTABLE |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 370 | bool "PIR table" |
| 371 | default y |
| 372 | help |
| 373 | Support generation of a PIR table in 0xf000 segment. |
| 374 | config MPTABLE |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 375 | bool "MPTable" |
| 376 | default y |
| 377 | help |
| 378 | Support generation of MPTable. |
| 379 | config SMBIOS |
| 380 | bool "SMBIOS" |
| 381 | default y |
| 382 | help |
| 383 | Support generation of SM BIOS tables. This is also |
| 384 | sometimes called DMI. |
| 385 | config ACPI |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 386 | bool "ACPI" |
| 387 | default y |
| 388 | help |
| 389 | Support generation of ACPI tables. |
Michael S. Tsirkin | 5aef563 | 2013-03-18 15:18:25 +0200 | [diff] [blame] | 390 | config ACPI_DSDT |
| 391 | bool "Include default ACPI DSDT" |
| 392 | default y |
| 393 | depends on ACPI |
| 394 | help |
| 395 | Include default DSDT ACPI table in BIOS. |
| 396 | Required for QEMU 1.3 and older. |
| 397 | This option can be disabled for QEMU 1.4 and newer |
| 398 | to save some space in the ROM file. |
| 399 | If unsure, say Y. |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 400 | endmenu |
| 401 | |
Kevin O'Connor | 2321912 | 2013-02-17 10:56:10 -0500 | [diff] [blame] | 402 | source vgasrc/Kconfig |
Julian Pidancet | da08a6d | 2011-12-19 05:07:56 +0000 | [diff] [blame] | 403 | |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 404 | menu "Debugging" |
| 405 | config DEBUG_LEVEL |
| 406 | int "Debug level" |
| 407 | default 1 |
| 408 | help |
| 409 | Control how verbose debug output is. The higher the |
| 410 | number, the more verbose SeaBIOS will be. |
| 411 | |
| 412 | Set to zero to disable debugging. |
| 413 | |
| 414 | config DEBUG_SERIAL |
| 415 | depends on DEBUG_LEVEL != 0 |
| 416 | bool "Serial port debugging" |
| 417 | default n |
| 418 | help |
| 419 | Send debugging information to serial port. |
Kevin O'Connor | d12e8a2 | 2011-05-10 23:36:11 -0400 | [diff] [blame] | 420 | config DEBUG_SERIAL_PORT |
| 421 | depends on DEBUG_SERIAL |
| 422 | hex "Serial port base address" |
| 423 | default 0x3f8 |
| 424 | help |
| 425 | Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8. |
Julian Pidancet | 7123d98 | 2012-02-01 16:03:24 +0000 | [diff] [blame] | 426 | |
| 427 | config DEBUG_IO |
Gerd Hoffmann | 2ca73ed | 2013-06-05 09:37:24 +0200 | [diff] [blame] | 428 | depends on QEMU_HARDWARE && DEBUG_LEVEL != 0 |
Julian Pidancet | 7123d98 | 2012-02-01 16:03:24 +0000 | [diff] [blame] | 429 | bool "Special IO port debugging" |
| 430 | default y |
| 431 | help |
| 432 | Some emulators or hypervisors provide with a way to output debug |
| 433 | information by outputing strings in a special port present in the |
| 434 | IO space. |
| 435 | |
Kevin O'Connor | 1efb10b | 2011-01-29 10:57:20 -0500 | [diff] [blame] | 436 | endmenu |