| # Kconfig SeaBIOS configuration | |
| mainmenu "SeaBIOS Configuration" | |
| menu "General Features" | |
| choice | |
| prompt "Build Target" | |
| default QEMU | |
| config COREBOOT | |
| bool "Build for coreboot" | |
| help | |
| Configure as a coreboot payload. | |
| config QEMU | |
| bool "Build for QEMU/Xen/KVM/Bochs" | |
| select QEMU_HARDWARE | |
| help | |
| Configure for an emulated machine (QEMU, Xen, KVM, or Bochs). | |
| config CSM | |
| bool "Build as Compatibility Support Module for EFI BIOS" | |
| help | |
| Configure to be used by EFI firmware as Compatibility Support | |
| module (CSM) to provide legacy BIOS services. | |
| endchoice | |
| config QEMU_HARDWARE | |
| bool "Support hardware found on emulators (QEMU/Xen/KVM/Bochs)" if !QEMU | |
| default n | |
| help | |
| Support virtual hardware when the code detects it is | |
| running on an emulator. | |
| config XEN | |
| depends on QEMU | |
| bool "Support Xen HVM" | |
| default y | |
| help | |
| Configure to be used by xen hvmloader, for a HVM guest. | |
| config THREADS | |
| bool "Parallelize hardware init" | |
| default y | |
| help | |
| Support running hardware initialization in parallel. | |
| config RELOCATE_INIT | |
| bool "Copy init code to high memory" | |
| default y | |
| help | |
| Support relocating the one time initialization code to high memory. | |
| config BOOTMENU | |
| depends on BOOT | |
| bool "Bootmenu" | |
| default y | |
| help | |
| Support an interactive boot menu at end of post. | |
| config BOOTSPLASH | |
| depends on BOOTMENU | |
| bool "Graphical boot splash screen" | |
| default y | |
| help | |
| Support showing a graphical boot splash screen. | |
| config BOOTORDER | |
| depends on BOOT | |
| bool "Boot ordering" | |
| default y | |
| help | |
| Support controlling of the boot order via the fw_cfg/CBFS | |
| "bootorder" file. | |
| config HOST_BIOS_GEOMETRY | |
| depends on BOOT | |
| bool "Boot device bios geometry override" | |
| default y | |
| help | |
| Support overriding bios (logical) geometry of boot devices via the | |
| fw_cfg/CBFS "bios-geometry" file. | |
| config COREBOOT_FLASH | |
| depends on COREBOOT | |
| bool "coreboot CBFS support" | |
| default y | |
| help | |
| Support searching coreboot flash format. | |
| config LZMA | |
| depends on COREBOOT_FLASH | |
| bool "CBFS lzma support" | |
| default y | |
| help | |
| Support CBFS files compressed using the lzma decompression | |
| algorithm. | |
| config CBFS_LOCATION | |
| depends on COREBOOT_FLASH | |
| hex "CBFS memory end location" | |
| default 0 | |
| help | |
| Memory address of where the CBFS data ends. This should | |
| be zero for normal builds. It may be a non-zero value if | |
| the CBFS filesystem is at a non-standard location (eg, | |
| 0xffe00000 if CBFS ends 2Meg below the end of flash). | |
| config MULTIBOOT | |
| depends on COREBOOT | |
| bool "multiboot support" | |
| default y | |
| help | |
| Add multiboot header in bios.bin.raw and accept files supplied | |
| as multiboot modules. | |
| config ENTRY_EXTRASTACK | |
| bool "Use internal stack for 16bit interrupt entry points" | |
| default y | |
| help | |
| Utilize an internal stack for all the legacy 16bit | |
| interrupt entry points. This reduces the amount of space | |
| on the caller's stack that SeaBIOS uses. This may | |
| adversely impact any legacy operating systems that call | |
| the BIOS in 16bit protected mode. | |
| config MALLOC_UPPERMEMORY | |
| bool "Allocate memory that needs to be in first Meg above 0xc0000" | |
| default y | |
| help | |
| Use the "Upper Memory Block" area (0xc0000-0xf0000) for | |
| internal "low memory" allocations. If this is not | |
| selected, the memory is instead allocated from the | |
| "9-segment" (0x90000-0xa0000). | |
| config ROM_SIZE | |
| int "ROM size (in KB)" | |
| default 0 | |
| help | |
| Set the ROM size. Say '0' here to make seabios figure the | |
| needed size automatically. | |
| Currently SeaBIOS will easily fit into 256 KB. To make it fit | |
| it into 128 KB (which was big enouth for a long time) you'll | |
| probably have to disable some featues such as xhci support. | |
| endmenu | |
| menu "Hardware support" | |
| config ATA | |
| depends on DRIVES | |
| bool "ATA controllers" | |
| default y | |
| help | |
| Support for IDE disk code. | |
| config ATA_DMA | |
| depends on ATA | |
| bool "ATA DMA" | |
| default n | |
| help | |
| Detect and try to use ATA bus mastering DMA controllers. | |
| config ATA_PIO32 | |
| depends on ATA | |
| bool "ATA 32bit PIO" | |
| default n | |
| help | |
| Use 32bit PIO accesses on ATA (minor optimization on PCI transfers). | |
| config AHCI | |
| depends on DRIVES | |
| bool "AHCI controllers" | |
| default y | |
| help | |
| Support for AHCI disk code. | |
| config SDCARD | |
| depends on DRIVES | |
| bool "SD controllers" | |
| default y | |
| help | |
| Support for SD cards on PCI host controllers. | |
| config VIRTIO_BLK | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "virtio-blk controllers" | |
| default y | |
| help | |
| Support boot from virtio-blk storage. | |
| config VIRTIO_SCSI | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "virtio-scsi controllers" | |
| default y | |
| help | |
| Support boot from virtio-scsi storage. | |
| config PVSCSI | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "PVSCSI controllers" | |
| default y | |
| help | |
| Support boot from Paravirtualized SCSI storage. This kind of storage | |
| is mainly supported by VMware ESX hypervisor. It is commonly used | |
| to allow fast storage access by communicating directly with the | |
| underlying hypervisor. Enabling this type of boot will allow | |
| booting directly from images imported from an ESX platform, | |
| without the need to use slower emulation of storage controllers | |
| such as IDE. | |
| config ESP_SCSI | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "AMD PCscsi controllers" | |
| default y | |
| help | |
| Support boot from AMD PCscsi storage. | |
| config LSI_SCSI | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "lsi53c895a scsi controllers" | |
| default y | |
| help | |
| Support boot from qemu-emulated lsi53c895a scsi storage. | |
| config MEGASAS | |
| depends on DRIVES | |
| bool "LSI MegaRAID SAS controllers" | |
| default y | |
| help | |
| Support boot from LSI MegaRAID SAS scsi storage. | |
| config MPT_SCSI | |
| depends on DRIVES && QEMU_HARDWARE | |
| bool "LSI MPT Fusion controllers" | |
| default y | |
| help | |
| Support boot from LSI MPT Fusion scsi storage. | |
| config FLOPPY | |
| depends on DRIVES && HARDWARE_IRQ | |
| bool "Floppy controller" | |
| default y | |
| help | |
| Support floppy drive access. | |
| config FLASH_FLOPPY | |
| depends on DRIVES | |
| bool "Floppy images from CBFS or fw_cfg" | |
| default y | |
| help | |
| Support floppy images stored in coreboot flash or from | |
| QEMU fw_cfg. | |
| config NVME | |
| depends on DRIVES | |
| bool "NVMe controllers" | |
| default y | |
| help | |
| Support for NVMe disk code. | |
| config PS2PORT | |
| depends on KEYBOARD || MOUSE | |
| bool "PS/2 port" | |
| default y | |
| help | |
| Support PS2 ports (keyboard and mouse). | |
| config USB | |
| bool "USB" | |
| default y | |
| help | |
| Support USB devices. | |
| config USB_UHCI | |
| depends on USB | |
| bool "USB UHCI controllers" | |
| default y | |
| help | |
| Support USB UHCI controllers. | |
| config USB_OHCI | |
| depends on USB | |
| bool "USB OHCI controllers" | |
| default y | |
| help | |
| Support USB OHCI controllers. | |
| config USB_EHCI | |
| depends on USB | |
| bool "USB EHCI controllers" | |
| default y | |
| help | |
| Support USB EHCI controllers. | |
| config USB_XHCI | |
| depends on USB | |
| bool "USB XHCI controllers" | |
| default y | |
| help | |
| Support USB XHCI controllers. | |
| config USB_MSC | |
| depends on USB && DRIVES | |
| bool "USB drives" | |
| default y | |
| help | |
| Support USB BOT (bulk-only transport) disks. | |
| config USB_UAS | |
| depends on USB && DRIVES | |
| bool "UAS drives" | |
| default y | |
| help | |
| Support USB UAS (usb attached scsi) disks. | |
| config USB_HUB | |
| depends on USB | |
| bool "USB hubs" | |
| default y | |
| help | |
| Support USB hubs. | |
| config USB_KEYBOARD | |
| depends on USB && KEYBOARD | |
| bool "USB keyboards" | |
| default y | |
| help | |
| Support USB keyboards. | |
| config USB_MOUSE | |
| depends on USB && MOUSE | |
| bool "USB mice" | |
| default y | |
| help | |
| Support USB mice. | |
| config SERIAL | |
| bool "Serial port" | |
| default y | |
| help | |
| Support serial ports. This also enables int 14 serial port calls. | |
| config SERCON | |
| bool "Serial console" | |
| default y | |
| help | |
| Support redirecting vga output to the serial console. | |
| config LPT | |
| bool "Parallel port" | |
| default y | |
| help | |
| Support parallel ports. This also enables int 17 parallel port calls. | |
| config RTC_TIMER | |
| bool "Real Time Clock (RTC) scheduling" | |
| depends on HARDWARE_IRQ | |
| default y | |
| help | |
| Support MC146818 Real Time Clock chip timer | |
| interrupts. This also enables int 1583 and int 1586 calls. | |
| Disabling this support does not disable access to the RTC | |
| cmos registers. | |
| config HARDWARE_IRQ | |
| bool "Hardware interrupts" | |
| default y | |
| help | |
| Program and support hardware interrupts using the i8259 | |
| programmable interrupt controller (PIC). This option must | |
| be enabled in order to support most boot loaders. Only | |
| disable this option if running on peculiar hardware known | |
| not to support irq routing. | |
| config USE_SMM | |
| depends on QEMU | |
| bool "System Management Mode (SMM)" | |
| default y | |
| help | |
| Support System Management Mode (on emulators). | |
| config CALL32_SMM | |
| bool | |
| depends on USE_SMM | |
| default y | |
| config MTRR_INIT | |
| depends on QEMU | |
| bool "Initialize MTRRs" | |
| default y | |
| help | |
| Initialize the Memory Type Range Registers (on emulators). | |
| config PMTIMER | |
| bool "Support ACPI timer" | |
| default y | |
| help | |
| Detect and use the ACPI timer for timekeeping. | |
| config TSC_TIMER | |
| bool "Support CPU timestamp counter as timer" | |
| default y | |
| help | |
| Support for using the CPU timestamp counter as an internal | |
| timing source. | |
| endmenu | |
| menu "BIOS interfaces" | |
| config DRIVES | |
| bool "Drive interface" | |
| default y | |
| help | |
| Support int13 disk/floppy drive functions. | |
| config CDROM_BOOT | |
| depends on DRIVES | |
| bool "DVD/CDROM booting" | |
| default y | |
| help | |
| Support for booting from a CD. (El Torito spec support.) | |
| config CDROM_EMU | |
| depends on CDROM_BOOT | |
| bool "DVD/CDROM boot drive emulation" | |
| default y | |
| help | |
| Support bootable CDROMs that emulate a floppy/harddrive. | |
| config PCIBIOS | |
| bool "PCIBIOS interface" | |
| default y | |
| help | |
| Support int 1a/b1 PCI BIOS calls. | |
| config APMBIOS | |
| bool "APM interface" | |
| default y | |
| help | |
| Support int 15/53 APM BIOS calls. | |
| config PNPBIOS | |
| bool "PnP BIOS interface" | |
| default y | |
| help | |
| Support PnP BIOS entry point. | |
| config OPTIONROMS | |
| bool "Option ROMS" | |
| default y | |
| help | |
| Support finding and running option roms during POST. | |
| config PMM | |
| depends on OPTIONROMS | |
| bool "PMM interface" | |
| default y | |
| help | |
| Support Post Memory Manager (PMM) entry point. | |
| config BOOT | |
| bool "Boot interface" | |
| default y | |
| help | |
| Support int 19/18 system bootup support. | |
| config KEYBOARD | |
| bool "Keyboard interface" | |
| default y | |
| help | |
| Support int 16 keyboard calls. | |
| config KBD_CALL_INT15_4F | |
| depends on KEYBOARD | |
| bool "Keyboard hook interface" | |
| default y | |
| help | |
| Support calling int155f on each keyboard event. | |
| config MOUSE | |
| bool "Mouse interface" | |
| default y | |
| help | |
| Support for int15c2 mouse calls. | |
| config S3_RESUME | |
| bool "S3 resume" | |
| default y | |
| help | |
| Support S3 resume handler. | |
| config VGAHOOKS | |
| bool "Hardware specific VGA helpers" | |
| default y | |
| help | |
| Support int 155f BIOS callbacks specific to some Intel and | |
| VIA on-board vga devices. | |
| config DISABLE_A20 | |
| bool "Disable A20" | |
| default n | |
| help | |
| Disable A20 on 16bit boot. | |
| config WRITABLE_UPPERMEMORY | |
| depends on QEMU | |
| bool "Make unused UMB memory read/writeable." | |
| default n | |
| help | |
| When selected, the "Upper Memory Block" area | |
| (0x90000-0xa0000) that is not used for option roms will be | |
| made writable. This allows the ram to be directly | |
| modified by programs. However, some old DOS high memory | |
| managers may require the UMB region to be read-only. | |
| config TCGBIOS | |
| depends on S3_RESUME | |
| bool "TPM support and TCG BIOS extensions" | |
| default y | |
| help | |
| Provide TPM support along with TCG BIOS extensions | |
| endmenu | |
| menu "BIOS Tables" | |
| depends on QEMU | |
| config PIRTABLE | |
| bool "PIR table" | |
| default y | |
| help | |
| Support generation of a PIR table in 0xf000 segment. | |
| config MPTABLE | |
| bool "MPTable" | |
| default y | |
| help | |
| Support generation of MPTable. | |
| config SMBIOS | |
| bool "SMBIOS" | |
| default y | |
| help | |
| Support generation of SM BIOS tables. This is also | |
| sometimes called DMI. | |
| config ACPI | |
| bool "ACPI" | |
| default y | |
| help | |
| Support generation of ACPI tables. | |
| config FW_ROMFILE_LOAD | |
| bool "Load BIOS tables from ROM files" | |
| depends on QEMU_HARDWARE | |
| default y | |
| help | |
| Support loading BIOS firmware tables from ROM files. | |
| At the moment, only ACPI tables can be loaded in this way. | |
| Required for QEMU 1.7 and newer. | |
| This option can be disabled for QEMU 1.6 and older | |
| to save some space in the ROM file. | |
| If unsure, say Y. | |
| config ACPI_PARSE | |
| bool "Include ACPI DSDT parser." | |
| default y | |
| help | |
| Support parsing ACPI DSDT for device probing. | |
| Needed to find virtio-mmio devices. | |
| If unsure, say Y. | |
| endmenu | |
| source vgasrc/Kconfig | |
| menu "Debugging" | |
| config DEBUG_LEVEL | |
| int "Debug level" | |
| default 1 | |
| help | |
| Control how verbose debug output is. The higher the | |
| number, the more verbose SeaBIOS will be. | |
| Set to zero to disable debugging. | |
| config DEBUG_SERIAL | |
| depends on DEBUG_LEVEL != 0 | |
| bool "Serial port debugging" | |
| default n | |
| help | |
| Send debugging information to serial port. | |
| config DEBUG_SERIAL_PORT | |
| depends on DEBUG_SERIAL | |
| hex "Serial port base address" | |
| default 0x3f8 | |
| help | |
| Base port for serial - generally 0x3f8, 0x2f8, 0x3e8, or 0x2e8. | |
| config DEBUG_SERIAL_MMIO | |
| depends on DEBUG_LEVEL != 0 && !DEBUG_SERIAL | |
| bool "Serial port debugging via memory mapped IO" | |
| default n | |
| help | |
| Send debugging information to serial port mapped in memory. | |
| config DEBUG_SERIAL_MEM_ADDRESS | |
| depends on DEBUG_SERIAL_MMIO | |
| hex "Serial port memory mapped IO address" | |
| help | |
| On some chipsets the serial port is memory mapped, in those cases | |
| provide the 32 bit address. E.g. 0xFEDC6000 for the AMD Kern | |
| (a.k.a Hudson UART). | |
| config DEBUG_IO | |
| depends on QEMU_HARDWARE && DEBUG_LEVEL != 0 | |
| bool "Special IO port debugging" | |
| default y | |
| help | |
| Some emulators or hypervisors provide with a way to output debug | |
| information by outputing strings in a special port present in the | |
| IO space. | |
| config DEBUG_COREBOOT | |
| depends on COREBOOT && DEBUG_LEVEL != 0 | |
| bool "coreboot cbmem debug logging" | |
| default y | |
| help | |
| Send debugging information to the coreboot cbmem console buffer. | |
| Needs CONFIG_CONSOLE_CBMEM in coreboot. You can read the log | |
| after boot using 'cbmem -c'. Only 32bit code (basically every- | |
| thing before booting the OS) writes to the log buffer. | |
| endmenu |