Random cosmetic fixes (trivial).
[coreboot.git] / src / devices / Kconfig
index e43458af8fe1b72572828d622da5eb4751a88c1b..08e532d12c7221be61f9fc2daf482e0d21bb8ff6 100644 (file)
@@ -1,12 +1,12 @@
 ##
 ## This file is part of the coreboot project.
 ##
-## Copyright (C) 2007 coresystems GmbH
+## Copyright (C) 2007-2010 coresystems GmbH
 ## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
 ##
 ## 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
+         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 "Run VGA Option ROMs"
+       bool "Run VGA option ROMs"
+       default y
        help
-         Execute VGA option ROMs if found. 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.
 
 config PCI_ROM_RUN
-       bool "Run non-VGA Option ROMs"
+       bool "Run non-VGA option ROMs"
+       default y
        help
-         Execute non-VGA PCI option ROMs if found.
+         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"
-       default  PCI_OPTION_ROM_RUN_REALMODE
+       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 "Native mode"
+       bool
+       depends on ARCH_X86
        help
-         You can choose to execute PCI option ROMs natively (32bit x86 system
-         required) or in an emulator (x86emu or YABEL).
+         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 PCI_OPTION_ROM_RUN_REALMODE
-               prompt "Real mode"
-               bool
+config PCI_OPTION_ROM_RUN_YABEL
+       prompt "Secure mode"
+       bool
+       help
+         If you select this option, the x86emu CPU emulator will be used to
+         execute PCI option ROMs.
 
-       config PCI_OPTION_ROM_RUN_YABEL
-               prompt "YABEL"
-               bool
+         This option 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 native option ROM initialization
+         method.
+
+         This is the default choice for non-x86 systems.
 
-       config PCI_OPTION_ROM_RUN_X86EMU
-               prompt "X86EMU"
-               bool
 endchoice
 
+# TODO: Describe better, and/or make a "choice" selection for this.
 config YABEL_DEBUG_FLAGS
-       prompt "Hex value for 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_YABEL_DEBUG_FLAGS is a binary switch that allows you
+         to select the following items to debug. 1=on 0=off. After you
+         decide what you want to debug create the binary value, convert to
+         hex and set the option.
+
+         Example for "debug all":
+           CONFIG_YABEL_DEBUG_FLAGS = 0x31FF
+
+         |-DEBUG_JMP - Print info about JMP and RETF opcodes from x86emu
+         ||-DEBUG_TRACE_X86EMU - Print _all_ opcodes that are executed by
+         ||                      x86emu (WARNING: this will produce a LOT
+         ||                      of output)
+         |||-Currently unused
+         ||||-Currently unused
+         |||||-Currently unused
+         ||||||-DEBUG_PNP - Print Plug And Play accesses made by option ROM
+         |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
+         ||||||||-DEBUG_PMM - Print messages related to POST Memory
+         ||||||||             Manager (PMM)
+         |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension
+         |||||||||             (VBE) functions
+         ||||||||||-DEBUG_PRINT_INT10 - Let INT10 (i.e. character output)
+         ||||||||||                     calls print messages to debug output
+         |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
+         ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to
+         ||||||||||||                           accesses to certain areas of
+         ||||||||||||                           the virtual memory (e.g. BDA
+         ||||||||||||                           (BIOS Data Area) or interrupt
+         ||||||||||||                           vectors)
+         |||||||||||||-DEBUG_MEM - Print memory accesses made by option ROM
+         |||||||||||||             (NOTE: this also includes accesses to
+         |||||||||||||             fetch instructions)
+         ||||||||||||||-DEBUG_IO - Print I/O accesses made by option ROM
+         11000111111111 - Maximum binary value, i.e. "debug all"
+                          (WARNING: This could run for hours)
+
+         DEBUG_IO                      0x0001
+         DEBUG_MEM                     0x0002
+         DEBUG_CHECK_VMEM_ACCESS       0x0004
+         DEBUG_INTR                    0x0008
+         DEBUG_PRINT_INT10             0x0010
+         DEBUG_VBE                     0x0020
+         DEBUG_PMM                     0x0040
+         DEBUG_DISK                    0x0080
+         DEBUG_PNP                     0x0100
+         DEBUG_TRACE_X86EMU            0x1000
+         DEBUG_JMP                     0x2000
+
+         See debug.h for values. 0 is no debug output, 0x31ff is _verbose_.
+
+config YABEL_PCI_ACCESS_OTHER_DEVICES
+       prompt "Allow option ROMs to access 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.
 
-endmenu
+config YABEL_VIRTMEM_LOCATION
+       prompt "Location of YABEL's virtual memory"
+       hex
+       depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
+       default 0x1000000
+       help
+         YABEL requires 1MB memory for its CPU emulation. This memory is
+         normally located at 16MB.
+
+config YABEL_DIRECTHW
+       prompt "Direct hardware access"
+       bool
+       depends on PCI_OPTION_ROM_RUN_YABEL
+       help
+         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).
+
+         When choosing this option, x86emu will pass through all hardware
+         accesses to memory and I/O devices to the underlying memory and I/O
+         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.
+         Enable this option for a good compromise between security and speed.
+
+config BOOTSPLASH
+       prompt "Show graphical bootsplash"
+       bool
+       depends on PCI_OPTION_ROM_RUN_YABEL
+       help
+         This option shows a graphical bootsplash screen. The grapics are
+         loaded from the CBFS file bootsplash.jpg.
+
+# TODO: Turn this into a "choice".
+config FRAMEBUFFER_VESA_MODE
+       prompt "VESA framebuffer video mode"
+       hex
+       default 0x117
+       depends on BOOTSPLASH
+       help
+         This option sets the resolution used for the coreboot framebuffer and
+         bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
+         some day make this a "choice".
+
+config COREBOOT_KEEP_FRAMEBUFFER
+       prompt "Keep VESA framebuffer"
+       bool
+       depends on BOOTSPLASH
+       help
+         This option keeps the framebuffer mode set after coreboot finishes
+         execution. If this option is enabled, coreboot will pass a
+         framebuffer entry in its coreboot table and the payload will need a
+         framebuffer driver. If this option is disabled, coreboot will switch
+         back to text mode before handing control to a payload.
 
 config CONSOLE_VGA_MULTI
        bool
@@ -79,7 +207,7 @@ config PCI_64BIT_PREF_MEM
 
 config HYPERTRANSPORT_PLUGIN_SUPPORT
        bool
-       default y
+       default n
 
 config PCIX_PLUGIN_SUPPORT
        bool