summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2011-01-29 10:57:20 -0500
committerKevin O'Connor <kevin@koconnor.net>2011-01-30 11:05:14 -0500
commit1efb10b9ea30c45a8c9c6230234fefa10d2886ed (patch)
treed7137a30635b504203ae97510e8609bb350ee0f7
parent3dba4c236d1f25dfeb88b01c13b1e87e407a5b11 (diff)
Expand user configurable parameters in Kconfig.
Move most of the config settings in config.h to the Kconfig file. The remaining settings in config.h, are mostly build related.
-rw-r--r--src/Kconfig356
-rw-r--r--src/config.h104
2 files changed, 347 insertions, 113 deletions
diff --git a/src/Kconfig b/src/Kconfig
index f753c63..fca73e4 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -1,15 +1,353 @@
# Kconfig SeaBIOS configuration
mainmenu "SeaBIOS Configuration"
+
+menu "General Features"
+
config COREBOOT
- bool "Configure as a coreboot payload."
- default n
+ bool "Build for coreboot"
+ default n
+ help
+ Configure as a coreboot payload.
+
+ config THREADS
+ bool "Parallelize hardware init"
+ default y
+ help
+ Support running hardware initialization in parallel.
+ config THREAD_OPTIONROMS
+ depends on THREADS
+ bool "Hardware init during option ROM execution"
+ default n
+ help
+ Allow hardware init to run in parallel with optionrom execution.
+
+ 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 BOOTMENU_WAIT
+ depends on BOOTMENU
+ int "Bootmenu delay"
+ default 2500
+ help
+ Amount of time (in ms) to wait at menu before selecting normal boot.
+ config BOOTSPLASH
+ depends on BOOTMENU
+ bool "Graphical boot splash screen"
+ default y
+ help
+ Support showing a graphical boot splash screen.
+
+ 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
+ algorighm.
+ config FLASH_FLOPPY
+ depends on COREBOOT_FLASH
+ bool "Floppy images in CBFS"
+ default y
+ help
+ Support floppy images in coreboot flash.
+
+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 n
+ help
+ Support for AHCI disk code.
+ config VIRTIO_BLK
+ depends on DRIVES && !COREBOOT
+ bool "VirtIO controllers"
+ default y
+ help
+ Support boot from virtio storage.
+ config FLOPPY
+ depends on DRIVES
+ bool "Floppy controller"
+ default y
+ help
+ Support floppy drive access.
+
+ 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_MSC
+ depends on USB && DRIVES
+ bool "USB drives"
+ default y
+ help
+ Support USB 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 LPT
+ bool "Parallel port"
+ default y
+ help
+ Support parallel ports. This also enables int 17 parallel port calls.
+
+ config EXTRA_PCI_ROOTS
+ bool "Extra root buses"
+ default n
+ help
+ If the target machine has multiple independent root buses,
+ the extra buses may be specified here.
+ config PCI_ROOT1
+ depends on EXTRA_PCI_ROOTS
+ hex "Extra primary PCI root bus number"
+ default 0x00
+ config PCI_ROOT2
+ depends on EXTRA_PCI_ROOTS
+ hex "Extra secondary PCI root bus number"
+ default 0x00
+
+ config USE_SMM
+ depends on !COREBOOT
+ bool "System Management Mode (SMM)"
+ default y
+ help
+ Support System Management Mode (on emulators).
+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 OPTIONROMS_DEPLOYED
+ depends on OPTIONROMS
+ bool "Option roms are already at 0xc0000-0xf0000"
+ default n
+ help
+ Select this if option ROMs are already copied to
+ 0xc0000-0xf0000. This must only be selected when using
+ Bochs or QEMU versions older than 0.12.
+ 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 S3_RESUME_VGA_INIT
+ depends on S3_RESUME
+ bool "Run VGA rom on S3 resume"
+ default n
+ help
+ Run the vga rom during S3 resume.
+
+ config VGAHOOKS
+ depends on COREBOOT
+ 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.
+endmenu
+
+menu "BIOS Tables"
+ config PIRTABLE
+ depends on !COREBOOT
+ bool "PIR table"
+ default y
+ help
+ Support generation of a PIR table in 0xf000 segment.
+ config MPTABLE
+ depends on !COREBOOT
+ 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
+ depends on !COREBOOT
+ bool "ACPI"
+ default y
+ help
+ Support generation of ACPI tables.
+endmenu
+
+menu "Debugging"
config DEBUG_LEVEL
- int "Control how verbose debug output is."
- default 1
+ 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
- bool "Send debugging information to serial port"
- default n
- config VGAHOOKS
- bool "Support bios callbacks specific to via vgabios."
- default n
+ depends on DEBUG_LEVEL != 0
+ bool "Serial port debugging"
+ default n
+ help
+ Send debugging information to serial port.
+
+ config SCREEN_AND_DEBUG
+ depends on DEBUG_LEVEL != 0
+ bool "Show screen writes on debug ports"
+ default y
+ help
+ Send characters that SeaBIOS writes to the screen to the
+ debug ports.
+endmenu
diff --git a/src/config.h b/src/config.h
index 467ea89..5b40488 100644
--- a/src/config.h
+++ b/src/config.h
@@ -14,89 +14,6 @@
#define CONFIG_APPNAME6 "BOCHS "
#define CONFIG_APPNAME4 "BXPC"
-// Screen writes are also sent to debug ports.
-#define CONFIG_SCREEN_AND_DEBUG 1
-
-// Support running hardware initialization in parallel
-#define CONFIG_THREADS 1
-// Allow hardware init to run in parallel with optionrom execution
-#define CONFIG_THREAD_OPTIONROMS 0
-// Support relocating the one time initialization code to high memory
-#define CONFIG_RELOCATE_INIT 1
-// Support int13 disk/floppy drive functions
-#define CONFIG_DRIVES 1
-// Support floppy drive access
-#define CONFIG_FLOPPY 1
-// Support USB devices
-#define CONFIG_USB 1
-// Support USB UHCI controllers
-#define CONFIG_USB_UHCI 1
-// Support USB OHCI controllers
-#define CONFIG_USB_OHCI 1
-// Support USB EHCI controllers
-#define CONFIG_USB_EHCI 1
-// Support USB disks
-#define CONFIG_USB_MSC 1
-// Support USB hubs
-#define CONFIG_USB_HUB 1
-// Support USB keyboards
-#define CONFIG_USB_KEYBOARD 1
-// Support USB mice
-#define CONFIG_USB_MOUSE 1
-// Support PS2 ports (keyboard and mouse)
-#define CONFIG_PS2PORT 1
-// Support for IDE disk code
-#define CONFIG_ATA 1
-// Detect and try to use ATA bus mastering DMA controllers.
-#define CONFIG_ATA_DMA 0
-// Use 32bit PIO accesses on ATA (minor optimization on PCI transfers)
-#define CONFIG_ATA_PIO32 0
-// Support for AHCI disk code
-#define CONFIG_AHCI 0
-// Support for booting from a CD
-#define CONFIG_CDROM_BOOT 1
-// Support for emulating a boot CD as a floppy/harddrive
-#define CONFIG_CDROM_EMU 1
-// Support int 1a/b1 PCI BIOS calls
-#define CONFIG_PCIBIOS 1
-// Support int 15/53 APM BIOS calls
-#define CONFIG_APMBIOS 1
-// Support PnP BIOS entry point.
-#define CONFIG_PNPBIOS 1
-// Support Post Memory Manager (PMM) entry point.
-#define CONFIG_PMM 1
-// Support int 19/18 system bootup support
-#define CONFIG_BOOT 1
-// Support an interactive boot menu at end of post.
-#define CONFIG_BOOTMENU 1
-// Amount of time (in ms) to wait at menu before selecting normal boot.
-#define CONFIG_BOOTMENU_WAIT 2500
-// Support int 14 serial port calls
-#define CONFIG_SERIAL 1
-// Support int 17 parallel port calls
-#define CONFIG_LPT 1
-// Support int 16 keyboard calls
-#define CONFIG_KEYBOARD 1
-// Support calling int155f on each keyboard event
-#define CONFIG_KBD_CALL_INT15_4F 1
-// Disable A20 on 16bit boot
-#define CONFIG_DISABLE_A20 0
-// Support for int15c2 mouse calls
-#define CONFIG_MOUSE 1
-// If the target machine has multiple independent root buses, the
-// extra buses may be specified here.
-#define CONFIG_PCI_ROOT1 0x00
-#define CONFIG_PCI_ROOT2 0x00
-// Support searching coreboot flash format.
-#define CONFIG_COREBOOT_FLASH 1
-// Support floppy images in the coreboot flash.
-#define CONFIG_FLASH_FLOPPY 1
-// Support the lzma decompression algorighm.
-#define CONFIG_LZMA 1
-// Support finding and running option roms during post.
-#define CONFIG_OPTIONROMS 1
-// Set if option roms are already copied to 0xc0000-0xf0000
-#define CONFIG_OPTIONROMS_DEPLOYED 0
// When option roms are not pre-deployed, SeaBIOS can copy an optionrom
// from flash for up to 2 devices.
#define OPTIONROM_VENDEV_1 0x00000000
@@ -104,24 +21,6 @@
#define OPTIONROM_VENDEV_2 0x00000000
#define OPTIONROM_MEM_2 0x00000000
-// Support generation of a PIR table in 0xf000 segment (for emulators)
-#define CONFIG_PIRTABLE 1
-// Support generation of MPTable (for emulators)
-#define CONFIG_MPTABLE 1
-// Support generation of SM BIOS tables (for emulators)
-#define CONFIG_SMBIOS 1
-// Support finding a UUID (for smbios) via "magic" outl sequence.
-#define CONFIG_UUID_BACKDOOR 1
-// Support generation of ACPI tables (for emulators)
-#define CONFIG_ACPI 1
-// Support S3 resume handler.
-#define CONFIG_S3_RESUME 1
-// Run the vga rom during S3 resume.
-#define CONFIG_S3_RESUME_VGA_INIT 0
-// Support boot splash
-#define CONFIG_BOOTSPLASH 1
-// define it if the (emulated) hardware supports SMM mode
-#define CONFIG_USE_SMM 1
// Maximum number of map entries in the e820 map
#define CONFIG_MAX_E820 32
// Space to reserve in f-segment for dynamic allocations
@@ -135,9 +34,6 @@
#define CONFIG_SUBMODEL_ID 0x00
#define CONFIG_BIOS_REVISION 0x01
-// Support boot from virtio storage
-#define CONFIG_VIRTIO_BLK 1
-
// Various memory addresses used by the code.
#define BUILD_STACK_ADDR 0x7000
#define BUILD_S3RESUME_STACK_ADDR 0x1000