2 ## This file is part of the coreboot project.
4 ## Copyright (C) 2007-2010 coresystems GmbH
5 ## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
7 ## This program is free software; you can redistribute it and/or modify
8 ## it under the terms of the GNU General Public License as published by
9 ## the Free Software Foundation; version 2 of the License.
11 ## This program is distributed in the hope that it will be useful,
12 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ## GNU General Public License for more details.
16 ## You should have received a copy of the GNU General Public License
17 ## along with this program; if not, write to the Free Software
18 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 config VGA_BRIDGE_SETUP
22 bool "Setup bridges on path to VGA adapter"
25 Allow bridges to set up legacy decoding ranges for VGA. Don't disable
26 this unless you're sure you don't want the briges setup for VGA.
28 # TODO: Explain differences (if any) for onboard cards.
30 bool "Run VGA option ROMs"
33 Execute VGA option ROMs, if found. This is required to enable
34 PCI/AGP/PCI-E video cards.
37 bool "Run non-VGA option ROMs"
40 Execute non-VGA PCI option ROMs, if found.
42 Examples include IDE/SATA controller option ROMs and option ROMs
43 for network cards (NICs).
46 prompt "Option ROM execution type"
47 default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
48 default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
49 depends on PCI_ROM_RUN || VGA_ROM_RUN
51 config PCI_OPTION_ROM_RUN_REALMODE
56 If you select this option, PCI option ROMs will be executed
57 natively on the CPU in real mode. No CPU emulation is involved,
58 so this is the fastest, but also the least secure option.
59 (only works on x86/x64 systems)
61 config PCI_OPTION_ROM_RUN_YABEL
65 If you select this option, the x86emu CPU emulator will be used to
66 execute PCI option ROMs.
68 This option prevents option ROMs from doing dirty tricks with the
69 system (such as installing SMM modules or hypervisors), but it is
70 also significantly slower than the native option ROM initialization
73 This is the default choice for non-x86 systems.
77 # TODO: Describe better, and/or make a "choice" selection for this.
78 config YABEL_DEBUG_FLAGS
79 prompt "Hex value for YABEL debug flags"
82 depends on PCI_OPTION_ROM_RUN_YABEL
84 CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
85 to select the following items to debug. 1=on 0=off. After you
86 decide what you want to debug create the binary value, convert to
87 hex and set the option.
89 Example for "debug all":
90 CONFIG_YABEL_DEBUG_FLAGS = 0x31FF
92 |-DEBUG_JMP - Print info about JMP and RETF opcodes from x86emu
93 ||-DEBUG_TRACE_X86EMU - Print _all_ opcodes that are executed by
94 || x86emu (WARNING: this will produce a LOT
98 |||||-Currently unused
99 ||||||-DEBUG_PNP - Print Plug And Play accesses made by option ROM
100 |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
101 ||||||||-DEBUG_PMM - Print messages related to POST Memory
102 |||||||| Manager (PMM)
103 |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension
104 ||||||||| (VBE) functions
105 ||||||||||-DEBUG_PRINT_INT10 - Let INT10 (i.e. character output)
106 |||||||||| calls print messages to debug output
107 |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
108 ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to
109 |||||||||||| accesses to certain areas of
110 |||||||||||| the virtual memory (e.g. BDA
111 |||||||||||| (BIOS Data Area) or interrupt
112 |||||||||||| vectors)
113 |||||||||||||-DEBUG_MEM - Print memory accesses made by option ROM
114 ||||||||||||| (NOTE: this also includes accesses to
115 ||||||||||||| fetch instructions)
116 ||||||||||||||-DEBUG_IO - Print I/O accesses made by option ROM
117 11000111111111 - Maximum binary value, i.e. "debug all"
118 (WARNING: This could run for hours)
122 DEBUG_CHECK_VMEM_ACCESS 0x0004
124 DEBUG_PRINT_INT10 0x0010
129 DEBUG_TRACE_X86EMU 0x1000
132 See debug.h for values. 0 is no debug output, 0x31ff is _verbose_.
134 config YABEL_PCI_ACCESS_OTHER_DEVICES
135 prompt "Allow option ROMs to access other devices"
137 depends on PCI_OPTION_ROM_RUN_YABEL
139 Per default, YABEL only allows option ROMs to access the PCI device
140 that they are associated with. However, this causes trouble for some
141 onboard graphics chips whose option ROM needs to reconfigure the
144 config YABEL_VIRTMEM_LOCATION
145 prompt "Location of YABEL's virtual memory"
147 depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
150 YABEL requires 1MB memory for its CPU emulation. This memory is
151 normally located at 16MB.
153 config YABEL_DIRECTHW
154 prompt "Direct hardware access"
156 depends on PCI_OPTION_ROM_RUN_YABEL
158 YABEL consists of two parts: It uses x86emu for the CPU emulation and
159 additionally provides a PC system emulation that filters bad device
160 and memory access (such as PCI config space access to other devices
161 than the initialized one).
163 When choosing this option, x86emu will pass through all hardware
164 accesses to memory and I/O devices to the underlying memory and I/O
165 addresses. While this option prevents option ROMs from doing dirty
166 tricks with the CPU (such as installing SMM modules or hypervisors),
167 they can still access all devices in the system.
168 Enable this option for a good compromise between security and speed.
170 config CONSOLE_VGA_MULTI
174 config PCI_64BIT_PREF_MEM
178 config HYPERTRANSPORT_PLUGIN_SUPPORT
182 config PCIX_PLUGIN_SUPPORT
186 config PCIEXP_PLUGIN_SUPPORT
190 config AGP_PLUGIN_SUPPORT
194 config CARDBUS_PLUGIN_SUPPORT