1 # Kconfig SeaBIOS configuration
3 mainmenu "SeaBIOS Configuration"
5 menu "General Features"
12 bool "Build for coreboot"
14 Configure as a coreboot payload.
17 bool "Build for QEMU/Xen/KVM/Bochs"
20 Configure for an emulated machine (QEMU, Xen, KVM, or Bochs).
23 bool "Build as Compatibility Support Module for EFI BIOS"
25 Configure to be used by EFI firmware as Compatibility Support
26 module (CSM) to provide legacy BIOS services.
31 bool "Support hardware found on emulators (QEMU/Xen/KVM/Bochs)" if !QEMU
34 Support virtual hardware when the code detects it is
35 running on an emulator.
39 bool "Support Xen HVM"
42 Configure to be used by xen hvmloader, for a HVM guest.
45 bool "Parallelize hardware init"
48 Support running hardware initialization in parallel.
51 bool "Copy init code to high memory"
54 Support relocating the one time initialization code to high memory.
61 Support an interactive boot menu at end of post.
64 bool "Graphical boot splash screen"
67 Support showing a graphical boot splash screen.
73 Support controlling of the boot order via the fw_cfg/CBFS
78 bool "coreboot CBFS support"
81 Support searching coreboot flash format.
83 depends on COREBOOT_FLASH
84 bool "CBFS lzma support"
87 Support CBFS files compressed using the lzma decompression
90 depends on COREBOOT_FLASH
91 hex "CBFS memory end location"
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).
101 bool "multiboot support"
104 Add multiboot header in bios.bin.raw and accept files supplied
105 as multiboot modules.
106 config ENTRY_EXTRASTACK
107 bool "Use internal stack for 16bit interrupt entry points"
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.
116 config MALLOC_UPPERMEMORY
117 bool "Allocate memory that needs to be in first Meg above 0xc0000"
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).
126 int "ROM size (in KB)"
129 Set the ROM size. Say '0' here to make seabios figure the
130 needed size automatically.
132 Currently SeaBIOS will easily fit into 256 KB. To make it fit
133 it into 128 KB (which was big enouth for a long time) you'll
134 probably have to disable some featues such as xhci support.
138 menu "Hardware support"
141 bool "ATA controllers"
144 Support for IDE disk code.
150 Detect and try to use ATA bus mastering DMA controllers.
156 Use 32bit PIO accesses on ATA (minor optimization on PCI transfers).
159 bool "AHCI controllers"
162 Support for AHCI disk code.
165 bool "SD controllers"
168 Support for SD cards on PCI host controllers.
170 depends on DRIVES && QEMU_HARDWARE
171 bool "virtio-blk controllers"
174 Support boot from virtio-blk storage.
176 depends on DRIVES && QEMU_HARDWARE
177 bool "virtio-scsi controllers"
180 Support boot from virtio-scsi storage.
182 depends on DRIVES && QEMU_HARDWARE
183 bool "PVSCSI controllers"
186 Support boot from Paravirtualized SCSI storage. This kind of storage
187 is mainly supported by VMware ESX hypervisor. It is commonly used
188 to allow fast storage access by communicating directly with the
189 underlying hypervisor. Enabling this type of boot will allow
190 booting directly from images imported from an ESX platform,
191 without the need to use slower emulation of storage controllers
194 depends on DRIVES && QEMU_HARDWARE
195 bool "AMD PCscsi controllers"
198 Support boot from AMD PCscsi storage.
200 depends on DRIVES && QEMU_HARDWARE
201 bool "lsi53c895a scsi controllers"
204 Support boot from qemu-emulated lsi53c895a scsi storage.
207 bool "LSI MegaRAID SAS controllers"
210 Support boot from LSI MegaRAID SAS scsi storage.
212 depends on DRIVES && HARDWARE_IRQ
213 bool "Floppy controller"
216 Support floppy drive access.
219 bool "Floppy images from CBFS or fw_cfg"
222 Support floppy images stored in coreboot flash or from
226 depends on KEYBOARD || MOUSE
230 Support PS2 ports (keyboard and mouse).
239 bool "USB UHCI controllers"
242 Support USB UHCI controllers.
245 bool "USB OHCI controllers"
248 Support USB OHCI controllers.
251 bool "USB EHCI controllers"
254 Support USB EHCI controllers.
257 bool "USB XHCI controllers"
260 Support USB XHCI controllers.
262 depends on USB && DRIVES
266 Support USB BOT (bulk-only transport) disks.
268 depends on USB && DRIVES
272 Support USB UAS (usb attached scsi) disks.
280 depends on USB && KEYBOARD
284 Support USB keyboards.
286 depends on USB && MOUSE
296 Support serial ports. This also enables int 14 serial port calls.
301 Support parallel ports. This also enables int 17 parallel port calls.
303 bool "Real Time Clock (RTC) scheduling"
304 depends on HARDWARE_IRQ
307 Support MC146818 Real Time Clock chip timer
308 interrupts. This also enables int 1583 and int 1586 calls.
310 Disabling this support does not disable access to the RTC
314 bool "Hardware interrupts"
317 Program and support hardware interrupts using the i8259
318 programmable interrupt controller (PIC). This option must
319 be enabled in order to support most boot loaders. Only
320 disable this option if running on peculiar hardware known
321 not to support irq routing.
325 bool "System Management Mode (SMM)"
328 Support System Management Mode (on emulators).
335 bool "Initialize MTRRs"
338 Initialize the Memory Type Range Registers (on emulators).
340 bool "Support ACPI timer"
343 Detect and use the ACPI timer for timekeeping.
345 bool "Support CPU timestamp counter as timer"
348 Support for using the CPU timestamp counter as an internal
352 menu "BIOS interfaces"
354 bool "Drive interface"
357 Support int13 disk/floppy drive functions.
361 bool "DVD/CDROM booting"
364 Support for booting from a CD. (El Torito spec support.)
366 depends on CDROM_BOOT
367 bool "DVD/CDROM boot drive emulation"
370 Support bootable CDROMs that emulate a floppy/harddrive.
373 bool "PCIBIOS interface"
376 Support int 1a/b1 PCI BIOS calls.
381 Support int 15/53 APM BIOS calls.
383 bool "PnP BIOS interface"
386 Support PnP BIOS entry point.
391 Support finding and running option roms during POST.
392 config OPTIONROMS_DEPLOYED
393 depends on OPTIONROMS && QEMU
394 bool "Option roms are already at 0xc0000-0xf0000"
397 Select this if option ROMs are already copied to
398 0xc0000-0xf0000. This must only be selected when using
399 Bochs or QEMU versions older than 0.12.
401 depends on OPTIONROMS
405 Support Post Memory Manager (PMM) entry point.
407 bool "Boot interface"
410 Support int 19/18 system bootup support.
412 bool "Keyboard interface"
415 Support int 16 keyboard calls.
416 config KBD_CALL_INT15_4F
418 bool "Keyboard hook interface"
421 Support calling int155f on each keyboard event.
423 bool "Mouse interface"
426 Support for int15c2 mouse calls.
432 Support S3 resume handler.
435 bool "Hardware specific VGA helpers"
438 Support int 155f BIOS callbacks specific to some Intel and
439 VIA on-board vga devices.
445 Disable A20 on 16bit boot.
447 config WRITABLE_UPPERMEMORY
449 bool "Make unused UMB memory read/writeable."
452 When selected, the "Upper Memory Block" area
453 (0x90000-0xa0000) that is not used for option roms will be
454 made writable. This allows the ram to be directly
455 modified by programs. However, some old DOS high memory
456 managers may require the UMB region to be read-only.
460 bool "TPM support and TCG BIOS extensions"
463 Provide TPM support along with TCG BIOS extensions
473 Support generation of a PIR table in 0xf000 segment.
478 Support generation of MPTable.
483 Support generation of SM BIOS tables. This is also
484 sometimes called DMI.
489 Support generation of ACPI tables.
491 bool "Include default ACPI DSDT"
495 Include default DSDT ACPI table in BIOS.
496 Required for QEMU 1.3 and older.
497 This option can be disabled for QEMU 1.4 and newer
498 to save some space in the ROM file.
500 config FW_ROMFILE_LOAD
501 bool "Load BIOS tables from ROM files"
502 depends on QEMU_HARDWARE
505 Support loading BIOS firmware tables from ROM files.
506 At the moment, only ACPI tables can be loaded in this way.
507 Required for QEMU 1.7 and newer.
508 This option can be disabled for QEMU 1.6 and older
509 to save some space in the ROM file.
513 source vgasrc/Kconfig
520 Control how verbose debug output is. The higher the
521 number, the more verbose SeaBIOS will be.
523 Set to zero to disable debugging.
526 depends on DEBUG_LEVEL != 0
527 bool "Serial port debugging"
530 Send debugging information to serial port.
531 config DEBUG_SERIAL_PORT
532 depends on DEBUG_SERIAL
533 hex "Serial port base address"
536 Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8.
539 depends on QEMU_HARDWARE && DEBUG_LEVEL != 0
540 bool "Special IO port debugging"
543 Some emulators or hypervisors provide with a way to output debug
544 information by outputing strings in a special port present in the
547 config DEBUG_COREBOOT
548 depends on COREBOOT && DEBUG_LEVEL != 0
549 bool "coreboot cbmem debug logging"
552 Send debugging information to the coreboot cbmem console buffer.
553 Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log
554 after boot using 'cbmem -c'. Only 32bit code (basically every-
555 thing before booting the OS) writes to the log buffer.