YABEL update
[coreboot.git] / src / devices / Kconfig
1 ##
2 ## This file is part of the coreboot project.
3 ##
4 ## Copyright (C) 2007-2010 coresystems GmbH
5 ## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
6 ##
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.
10 ##
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.
15 ##
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
19 ##
20
21 config VGA_BRIDGE_SETUP
22         bool "Setup bridges on path to VGA adapter"
23         default y
24         help
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.
27
28 # TODO: Explain differences (if any) for onboard cards.
29 config VGA_ROM_RUN
30         bool "Run VGA option ROMs"
31         default y
32         help
33           Execute VGA option ROMs, if found. This is required to enable
34           PCI/AGP/PCI-E video cards.
35
36 config PCI_ROM_RUN
37         bool "Run non-VGA option ROMs"
38         default y
39         help
40           Execute non-VGA PCI option ROMs, if found.
41
42           Examples include IDE/SATA controller option ROMs and option ROMs
43           for network cards (NICs).
44
45 choice
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
50
51 config PCI_OPTION_ROM_RUN_REALMODE
52         prompt "Native mode"
53         bool
54         depends on ARCH_X86
55         help
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)
60
61 config PCI_OPTION_ROM_RUN_YABEL
62         prompt "Secure Mode"
63         bool
64         help
65           If you select this option, the x86emu CPU emulator will be used to
66           execute PCI option ROMs.
67           This option prevents option ROMs from doing dirty tricks with the 
68           system (such as installing SMM modules or hypervisors), but it is also
69           significantly slower than the native option ROM initialization method.
70           This is the default choice for non-x86 systems.
71 endchoice
72
73 # TODO: Describe better, and/or make a "choice" selection for this.
74 config YABEL_DEBUG_FLAGS
75         prompt "Hex value for YABEL debug flags"
76         hex
77         default 0x0
78         depends on PCI_OPTION_ROM_RUN_YABEL
79         help
80           Set CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
81           to select the following items to debug. 1=on 0=off. After you
82           decide what you want to debug create the binary value, convert to hex
83           and set the Option (Ex. CONFIG_YABEL_DEBUG_FLAGS = 0x31FF //Debug All).
84
85           |-DEBUG_JMP - print info about JMP and RETF opcodes from x86emu
86           ||-DEBUG_TRACE_X86EMU - print _all_ opcodes that are executed by x86emu (WARNING: this will produce a LOT of output)
87           |||-Currently unused
88           ||||-Currently unused
89           |||||-Currently unused
90           ||||||-DEBUG_PNP - Print Plug And Play access made by option rom 
91           |||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
92           ||||||||-DEBUG_PMM - Print messages related to POST Memory Manager (PMM)
93           |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension (VBE) functions
94           ||||||||||-DEBUG_PRINT_INT10 - let INT10 (i.e. character output) calls print messages to Debug output
95           |||||||||||-DEBUG_INTR - Print messages related to interrupt handling
96           ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to accesse to certain areas of the virtual Memory (e.g. BDA (BIOS Data Area) or Interrupt Vectors)
97           |||||||||||||-DEBUG_MEM - Print memory access made by option rom (NOTE: this also includes accesses to fetch instructions)
98           ||||||||||||||-DEBUG_IO - Print I/O access made by option rom 
99           11000111111111 - Max Binary Value, Debug All (WARNING: - This could run for hours)
100         
101           DEBUG_IO                0x0001
102           DEBUG_MEM               0x0002
103           DEBUG_CHECK_VMEM_ACCESS 0x0004
104           DEBUG_INTR              0x0008
105           DEBUG_PRINT_INT10       0x0010
106           DEBUG_VBE               0x0020
107           DEBUG_PMM               0x0040
108           DEBUG_DISK              0x0080
109           DEBUG_PNP               0x0100
110           DEBUG_TRACE_X86EMU      0x1000
111           DEBUG_JMP               0x2000
112
113           See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
114
115 config YABEL_PCI_ACCESS_OTHER_DEVICES
116         prompt "Allow option roms to acces other devices"
117         bool
118         depends on PCI_OPTION_ROM_RUN_YABEL
119         help
120           Per default, YABEL only allows option roms to access the PCI device
121           that they are associated with. However, this causes trouble for some
122           onboard graphics chips whose option rom needs to reconfigure the 
123           north bridge. 
124
125 config YABEL_VIRTMEM_LOCATION
126         prompt "Location of YABEL's virtual memory"
127         hex
128         depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
129         default 0x1000000
130         help
131           YABEL requires 1MB memory for its CPU emulation. This memory is
132           normally located at 16MB.
133
134 config YABEL_DIRECTHW
135         prompt "Direct Hardware Access"
136         bool
137         depends on PCI_OPTION_ROM_RUN_YABEL
138         help
139           YABEL consists of two parts: It uses x86emu for the CPU emulation and
140           additionally provides a PC system emulation that filters bad device and
141           memory access (such as PCI config space access to other devices than the
142           initialized one).
143           When choosing this option, x86emu will pass through all hardware
144           accesses to memory and IO devices to the underlying memory and IO
145           addresses. While this option prevents option ROMs from doing dirty
146           tricks with the CPU (such as installing SMM modules or hypervisors),
147           they can still access all devices in the system.
148           Enable this option for a good compromise between security and speed.
149
150 config BOOTSPLASH
151         prompt "Show graphical bootsplash"
152         bool
153         depends on PCI_OPTION_ROM_RUN_YABEL
154         help
155           This option shows a graphical bootsplash screen. The grapics are
156           loaded from the CBFS file bootsplash.jpg
157
158 config FRAMEBUFFER_VESA_MODE
159         prompt "VESA framebuffer video mode"
160         hex
161         default 0x117
162         depends on BOOTSPLASH
163         help
164           This option sets the resolution used for the coreboot framebuffer and
165           bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will 
166           some day make this a "choice".
167
168 config COREBOOT_KEEP_FRAMEBUFFER
169         prompt "Keep VESA framebuffer"
170         bool
171         depends on BOOTSPLASH
172         help
173           This option keeps the framebuffer mode set after coreboot finishes
174           execution. If this option is enabled, coreboot will pass a framebuffer
175           entry in its coreboot table and the payload will need a framebuffer
176           driver. If this option is disabled, coreboot will switch back to 
177           text mode before handing control to a payload.
178
179 config CONSOLE_VGA_MULTI
180         bool
181         default n
182
183 config PCI_64BIT_PREF_MEM
184         bool
185         default n
186
187 config HYPERTRANSPORT_PLUGIN_SUPPORT
188         bool
189         default n
190
191 config PCIX_PLUGIN_SUPPORT
192         bool
193         default y
194
195 config PCIEXP_PLUGIN_SUPPORT
196         bool
197         default y
198
199 config AGP_PLUGIN_SUPPORT
200         bool
201         default y
202
203 config CARDBUS_PLUGIN_SUPPORT
204         bool
205         default y