| # Kconfig SeaBIOS configuration |
| |
| mainmenu "SeaBIOS Configuration" |
| |
| choice |
| prompt "Processor architecture" |
| default X86 |
| |
| config X86 |
| bool "Intel/AMD x86" |
| help |
| Build PC BIOS. |
| |
| config PARISC |
| bool "PA-RISC" |
| help |
| Build PA-RISC firmware for QEMU. |
| endchoice |
| |
| menu "General Features" |
| |
| choice |
| prompt "Build Target" |
| default QEMU |
| |
| config COREBOOT |
| bool "Build for coreboot" if X86 |
| 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" if X86 |
| 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 && !PARISC |
| bool "Support Xen HVM" |
| default y |
| help |
| Configure to be used by xen hvmloader, for a HVM guest. |
| |
| config THREADS |
| bool "Parallelize hardware init" |
| depends on !PARISC |
| default y |
| help |
| Support running hardware initialization in parallel. |
| |
| config RELOCATE_INIT |
| bool "Copy init code to high memory" |
| default y |
| depends on X86 |
| 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 && !PARISC |
| 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 |
| depends on X86 |
| 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 |
| depends on X86 |
| 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 && !PARISC |
| bool "SD controllers" |
| default y |
| help |
| Support for SD cards on PCI host controllers. |
| config VIRTIO_BLK |
| depends on DRIVES && QEMU_HARDWARE && !PARISC |
| bool "virtio-blk controllers" |
| default y |
| help |
| Support boot from virtio-blk storage. |
| config VIRTIO_SCSI |
| depends on DRIVES && QEMU_HARDWARE && !PARISC |
| bool "virtio-scsi controllers" |
| default y |
| help |
| Support boot from virtio-scsi storage. |
| config PVSCSI |
| depends on DRIVES && QEMU_HARDWARE && !PARISC |
| 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 && !PARISC |
| bool "Floppy controller" |
| default y |
| help |
| Support floppy drive access. |
| config FLASH_FLOPPY |
| depends on DRIVES && !PARISC |
| 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 && !PARISC |
| 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 && !PARISC |
| 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 && !PARISC |
| 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" |
| depends on X86 |
| 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 && X86 |
| 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 && X86 |
| bool "Initialize MTRRs" |
| default y |
| help |
| Initialize the Memory Type Range Registers (on emulators). |
| config PMTIMER |
| bool "Support ACPI timer" |
| default y |
| depends on X86 |
| 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 |
| depends on !PARISC |
| 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 && X86 |
| 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 ACPI_DSDT |
| bool "Include default ACPI DSDT" |
| default y |
| depends on ACPI |
| help |
| Include default DSDT ACPI table in BIOS. |
| Required for QEMU 1.3 and older. |
| This option can be disabled for QEMU 1.4 and newer |
| to save some space in the ROM file. |
| If unsure, say Y. |
| 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 |