Various license header consistency fixes (trivial).
[coreboot.git] / src / devices / Kconfig
index 2b58f91751d25fbb0c5ddbdb8276c34dc6db3712..42c47bc19ceea4896be079c58c44be3bf93f03d3 100644 (file)
@@ -6,7 +6,7 @@
 ##
 ## This program is free software; you can redistribute it and/or modify
 ## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; version 2 of the License
+## the Free Software Foundation; version 2 of the License.
 ##
 ## This program is distributed in the hope that it will be useful,
 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 ##
 
-menu "Devices"
+config VGA_BRIDGE_SETUP
+       bool "Setup bridges on path to VGA adapter"
+       default y
+       help
+         Allow bridges to set up legacy decoding ranges for VGA. Don't disable
+         this unless you're sure you don't want the briges setup for VGA.
 
+# TODO: Explain differences (if any) for onboard cards.
 config VGA_ROM_RUN
-       bool
+       bool "Run VGA option ROMs"
+       default y
        help
-         Execute PCI/AGP option ROMs if available. This is required to
-         enable PCI/AGP VGA plugin cards.
+         Execute VGA option ROMs, if found. This is required to enable
+         PCI/AGP/PCI-E video cards.
 
-choice
-       prompt "Execute PCI option ROMs"
-       default PCI_OPTION_ROM_RUN_REALMODE
+config PCI_ROM_RUN
+       bool "Run non-VGA option ROMs"
+       default y
        help
-         Execute PCI/AGP option ROMs if available. You can choose to
-         execute PCI option ROMs natively (32bit x86 system required),
-         in an emulator (x86emu), or ignore option ROM execution.
+         Execute non-VGA PCI option ROMs, if found.
+
+         Examples include IDE/SATA controller option ROMs and option ROMs
+         for network cards (NICs).
+
+choice
+       prompt "Option ROM execution type"
+       default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
+       default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
+       depends on PCI_ROM_RUN || VGA_ROM_RUN
 
 config PCI_OPTION_ROM_RUN_REALMODE
-       prompt "Run VGA ROMs"
+       prompt "Real mode"
        bool
-       select VGA_ROM_RUN
+       depends on ARCH_X86
        help
-         Execute PCI/AGP option ROMs if available. This is required to
-         enable PCI/AGP VGA plugin cards.
+         If you select this option, PCI option ROMs will be executed
+         natively on the CPU in real mode. No CPU emulation is involved,
+         so this is the fastest, but also the least secure option.
+         (only works on x86/x64 systems)
 
-config NO_RUN
-       prompt "Do NOT run VGA ROMs"
+config PCI_OPTION_ROM_RUN_X86EMU
+       prompt "x86emu"
        bool
        help
-         Do not execute PCI/AGP option ROMs.
+         If you select this option, the x86emu CPU emulator will be used to
+         execute PCI option ROMs. 
+         When choosing this option, x86emu will pass through all hardware
+         accesses to memory and IO devices to the underlying memory and IO
+         addresses. While this option prevents option ROMs from doing dirty
+         tricks with the CPU (such as installing SMM modules or hypervisors),
+         they can still access all devices in the system.
+         Choosing x86emu, option ROM execution is slower than native execution
+         in real mode, but faster than the full system emulation YABEL
+         This is the default choice for non-x86 systems.
+
+config PCI_OPTION_ROM_RUN_YABEL
+       prompt "YABEL"
+       bool
+       help
+         If you select this option, the YABEL system emulator will be used to
+         execute PCI option ROMs.
+         YABEL consists of two parts: It uses x86emu for the CPU emulation and
+         additionally provides a PC system emulation that filters bad device and
+         memory access (such as PCI config space access to other devices than the
+         initialized one).
+         This option best prevents option ROMs from doing dirty tricks with the 
+         system (such as installing SMM modules or hypervisors), but it is also
+         significantly slower than the other option ROM initialization methods.
 
 endchoice
 
-endmenu
+config YABEL_PCI_ACCESS_OTHER_DEVICES
+       prompt "Allow option roms to acces other devices"
+       bool
+       depends on PCI_OPTION_ROM_RUN_YABEL
+       help
+         Per default, YABEL only allows option roms to access the PCI device
+         that they are associated with. However, this causes trouble for some
+         onboard graphics chips whose option rom needs to reconfigure the 
+         north bridge. 
+
+config YABEL_VIRTMEM_LOCATION
+       prompt "Location of YABEL's virtual memory"
+       hex
+       depends on EXPERT
+       default 0x1000000
+       help
+         YABEL requires 1MB memory for its CPU emulation. This memory is
+         normally located at 16MB.
+
+# TODO: Describe better, and/or make a "choice" selection for this.
+config YABEL_DEBUG_FLAGS
+       prompt "Hex value for YABEL debug flags"
+       hex
+       default 0x0
+       depends on PCI_OPTION_ROM_RUN_YABEL
+       help
+         See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
+
+config CONSOLE_VGA_MULTI
+       bool
+       default n
 
 config PCI_64BIT_PREF_MEM
        bool
@@ -62,19 +131,16 @@ config HYPERTRANSPORT_PLUGIN_SUPPORT
 
 config PCIX_PLUGIN_SUPPORT
        bool
-       default n
+       default y
 
 config PCIEXP_PLUGIN_SUPPORT
        bool
-       default n
+       default y
 
 config AGP_PLUGIN_SUPPORT
        bool
-       default n
+       default y
 
 config CARDBUS_PLUGIN_SUPPORT
        bool
-       default n
-
-
-
+       default y