Add support for enabling PCIe Common Clock and ASPM
[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 S3_VGA_ROM_RUN
37         bool "Re-run VGA Option ROMs on S3 resume"
38         default y
39         depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
40         help
41           Execute VGA Option ROMs when coming out of an S3 resume.
42
43 config PCI_ROM_RUN
44         bool "Run non-VGA Option ROMs"
45         default y
46         help
47           Execute non-VGA PCI Option ROMs, if found.
48
49           Examples include IDE/SATA controller Option ROMs and Option ROMs
50           for network cards (NICs).
51
52 config ON_DEVICE_ROM_RUN
53         bool "Run Option ROMs on PCI devices"
54         default y
55         help
56           Execute Option ROMs that are stored on PCI/PCIe/AGP devices.
57
58           If disabled, only Option ROMs stored in CBFS will be executed. If
59           you are concerned about security, you might want to disable this
60           option, but it might leave your system in a state of degraded
61           functionality.
62
63           If unsure, say Y
64
65 choice
66         prompt "Option ROM execution type"
67         default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
68         default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
69         depends on PCI_ROM_RUN || VGA_ROM_RUN || GEODE_VSA
70
71 config PCI_OPTION_ROM_RUN_REALMODE
72         prompt "Native mode"
73         bool
74         depends on ARCH_X86
75         help
76           If you select this option, PCI Option ROMs will be executed
77           natively on the CPU in real mode. No CPU emulation is involved,
78           so this is the fastest, but also the least secure option.
79           (only works on x86/x64 systems)
80
81 config PCI_OPTION_ROM_RUN_YABEL
82         prompt "Secure mode"
83         bool
84         depends on !GEODE_VSA
85         help
86           If you select this option, the x86emu CPU emulator will be used to
87           execute PCI Option ROMs.
88
89           This option prevents Option ROMs from doing dirty tricks with the
90           system (such as installing SMM modules or hypervisors), but it is
91           also significantly slower than the native Option ROM initialization
92           method.
93
94           This is the default choice for non-x86 systems.
95
96 endchoice
97
98 config YABEL_PCI_ACCESS_OTHER_DEVICES
99         prompt "Allow Option ROMs to access other devices"
100         bool
101         depends on PCI_OPTION_ROM_RUN_YABEL
102         help
103           Per default, YABEL only allows Option ROMs to access the PCI device
104           that they are associated with. However, this causes trouble for some
105           onboard graphics chips whose Option ROM needs to reconfigure the
106           north bridge.
107
108 config YABEL_VIRTMEM_LOCATION
109         prompt "Location of YABEL's virtual memory"
110         hex
111         depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
112         default 0x1000000
113         help
114           YABEL requires 1MB memory for its CPU emulation. This memory is
115           normally located at 16MB.
116
117 config YABEL_VIRTMEM_LOCATION
118         hex
119         depends on PCI_OPTION_ROM_RUN_YABEL && !EXPERT
120         default 0x1000000
121
122 config YABEL_DIRECTHW
123         prompt "Direct hardware access"
124         bool
125         depends on PCI_OPTION_ROM_RUN_YABEL
126         help
127           YABEL consists of two parts: It uses x86emu for the CPU emulation and
128           additionally provides a PC system emulation that filters bad device
129           and memory access (such as PCI config space access to other devices
130           than the initialized one).
131
132           When choosing this option, x86emu will pass through all hardware
133           accesses to memory and I/O devices to the underlying memory and I/O
134           addresses. While this option prevents Option ROMs from doing dirty
135           tricks with the CPU (such as installing SMM modules or hypervisors),
136           they can still access all devices in the system.
137           Enable this option for a good compromise between security and speed.
138
139 config MULTIPLE_VGA_ADAPTERS
140         bool
141         default n
142
143 config PCI_64BIT_PREF_MEM
144         bool
145         default n
146
147 config HYPERTRANSPORT_PLUGIN_SUPPORT
148         bool
149         default n
150
151 config PCIX_PLUGIN_SUPPORT
152         bool
153         default y
154
155 config PCIEXP_PLUGIN_SUPPORT
156         bool
157         default y
158
159 config AGP_PLUGIN_SUPPORT
160         bool
161         default y
162
163 config CARDBUS_PLUGIN_SUPPORT
164         bool
165         default y
166
167 config PCIEXP_COMMON_CLOCK
168         prompt "Enable PCIe Common Clock"
169         bool
170         default n
171         help
172           Detect and enable Common Clock on PCIe links.
173
174 config PCIEXP_ASPM
175         prompt "Enable PCIe ASPM"
176         bool
177         default n
178         help
179           Detect and enable ASPM on PCIe links.