blob: d83d551b5f980f26224b11a0ca2b75d3a3f71b91 [file] [log] [blame]
Patrick Georgi0588d192009-08-12 15:00:51 +00001##
2## This file is part of the coreboot project.
3##
Stefan Reinauerd650e992010-02-22 04:33:13 +00004## Copyright (C) 2007-2010 coresystems GmbH
Patrick Georgi0588d192009-08-12 15:00:51 +00005## (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
Uwe Hermannc70e9fc2010-02-15 23:10:19 +00009## the Free Software Foundation; version 2 of the License.
Patrick Georgi0588d192009-08-12 15:00:51 +000010##
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
Uwe Hermann168b11b2009-10-07 16:15:40 +000021# TODO: Explain differences (if any) for onboard cards.
Patrick Georgi0588d192009-08-12 15:00:51 +000022config VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070023 bool "Run VGA Option ROMs"
Uwe Hermann168b11b2009-10-07 16:15:40 +000024 default y
Patrick Georgi0588d192009-08-12 15:00:51 +000025 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070026 Execute VGA Option ROMs, if found. This is required to enable
Uwe Hermann168b11b2009-10-07 16:15:40 +000027 PCI/AGP/PCI-E video cards.
Myles Watsone6804952009-08-28 14:36:12 +000028
Stefan Reinauer0a500842011-09-23 10:33:58 -070029config S3_VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070030 bool "Re-run VGA Option ROMs on S3 resume"
Stefan Reinauer0a500842011-09-23 10:33:58 -070031 default y
32 depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
33 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070034 Execute VGA Option ROMs when coming out of an S3 resume.
Stefan Reinauer0a500842011-09-23 10:33:58 -070035
Myles Watsone6804952009-08-28 14:36:12 +000036config PCI_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070037 bool "Run non-VGA Option ROMs"
Uwe Hermann168b11b2009-10-07 16:15:40 +000038 default y
Myles Watsone6804952009-08-28 14:36:12 +000039 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070040 Execute non-VGA PCI Option ROMs, if found.
Patrick Georgi0588d192009-08-12 15:00:51 +000041
Stefan Reinauerafaa2572011-10-06 16:47:51 -070042 Examples include IDE/SATA controller Option ROMs and Option ROMs
Uwe Hermann168b11b2009-10-07 16:15:40 +000043 for network cards (NICs).
44
Stefan Reinauerafaa2572011-10-06 16:47:51 -070045config ON_DEVICE_ROM_RUN
46 bool "Run Option ROMs on PCI devices"
47 default y
48 help
49 Execute Option ROMs that are stored on PCI/PCIe/AGP devices.
50
51 If disabled, only Option ROMs stored in CBFS will be executed. If
52 you are concerned about security, you might want to disable this
53 option, but it might leave your system in a state of degraded
54 functionality.
55
56 If unsure, say Y
57
Patrick Georgi0588d192009-08-12 15:00:51 +000058choice
Uwe Hermann168b11b2009-10-07 16:15:40 +000059 prompt "Option ROM execution type"
Stefan Reinauer14be4d02010-01-31 21:46:12 +000060 default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
61 default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
Myles Watsone3df1212010-06-04 15:55:12 +000062 depends on PCI_ROM_RUN || VGA_ROM_RUN || GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +000063
64config PCI_OPTION_ROM_RUN_REALMODE
Stefan Reinauerd650e992010-02-22 04:33:13 +000065 prompt "Native mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +000066 bool
Stefan Reinauer14be4d02010-01-31 21:46:12 +000067 depends on ARCH_X86
Myles Watson28412f52009-09-17 16:54:46 +000068 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070069 If you select this option, PCI Option ROMs will be executed
Stefan Reinauer14be4d02010-01-31 21:46:12 +000070 natively on the CPU in real mode. No CPU emulation is involved,
71 so this is the fastest, but also the least secure option.
72 (only works on x86/x64 systems)
Patrick Georgi0588d192009-08-12 15:00:51 +000073
Stefan Reinauerd650e992010-02-22 04:33:13 +000074config PCI_OPTION_ROM_RUN_YABEL
Uwe Hermann548dbe72010-02-22 16:41:49 +000075 prompt "Secure mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +000076 bool
Myles Watsone3df1212010-06-04 15:55:12 +000077 depends on !GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +000078 help
Stefan Reinauer14be4d02010-01-31 21:46:12 +000079 If you select this option, the x86emu CPU emulator will be used to
Stefan Reinauerafaa2572011-10-06 16:47:51 -070080 execute PCI Option ROMs.
Uwe Hermann548dbe72010-02-22 16:41:49 +000081
Stefan Reinauerafaa2572011-10-06 16:47:51 -070082 This option prevents Option ROMs from doing dirty tricks with the
Uwe Hermann548dbe72010-02-22 16:41:49 +000083 system (such as installing SMM modules or hypervisors), but it is
Stefan Reinauerafaa2572011-10-06 16:47:51 -070084 also significantly slower than the native Option ROM initialization
Uwe Hermann548dbe72010-02-22 16:41:49 +000085 method.
86
Stefan Reinauerd650e992010-02-22 04:33:13 +000087 This is the default choice for non-x86 systems.
Uwe Hermann548dbe72010-02-22 16:41:49 +000088
Patrick Georgi0588d192009-08-12 15:00:51 +000089endchoice
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +000090
Stefan Reinauer9a358532010-02-12 09:32:17 +000091config YABEL_PCI_ACCESS_OTHER_DEVICES
Stefan Reinauerafaa2572011-10-06 16:47:51 -070092 prompt "Allow Option ROMs to access other devices"
Stefan Reinauer9a358532010-02-12 09:32:17 +000093 bool
94 depends on PCI_OPTION_ROM_RUN_YABEL
95 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070096 Per default, YABEL only allows Option ROMs to access the PCI device
Stefan Reinauer9a358532010-02-12 09:32:17 +000097 that they are associated with. However, this causes trouble for some
Stefan Reinauerafaa2572011-10-06 16:47:51 -070098 onboard graphics chips whose Option ROM needs to reconfigure the
Uwe Hermann548dbe72010-02-22 16:41:49 +000099 north bridge.
Stefan Reinauer9a358532010-02-12 09:32:17 +0000100
Patrick Georgic4b2a1b2012-07-20 13:44:50 +0200101config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
102 prompt "Fake success on writing other device's config space"
103 bool
104 depends on YABEL_PCI_ACCESS_OTHER_DEVICES
105 help
106 By default, YABEL aborts when the Option ROM tries to write to other
107 devices' config spaces. With this option enabled, the write doesn't
108 follow through, but the Option ROM is allowed to go on.
109 This can create issues such as hanging Option ROMs (if it depends on
110 that other register changing to the written value), so test for
111 impact before using this option.
112
Stefan Reinauer9a358532010-02-12 09:32:17 +0000113config YABEL_VIRTMEM_LOCATION
114 prompt "Location of YABEL's virtual memory"
115 hex
Stefan Reinauerd650e992010-02-22 04:33:13 +0000116 depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
Stefan Reinauer9a358532010-02-12 09:32:17 +0000117 default 0x1000000
118 help
119 YABEL requires 1MB memory for its CPU emulation. This memory is
120 normally located at 16MB.
121
Uwe Hermann01ce6012010-03-05 10:03:50 +0000122config YABEL_VIRTMEM_LOCATION
123 hex
124 depends on PCI_OPTION_ROM_RUN_YABEL && !EXPERT
125 default 0x1000000
126
Stefan Reinauerd650e992010-02-22 04:33:13 +0000127config YABEL_DIRECTHW
Uwe Hermann548dbe72010-02-22 16:41:49 +0000128 prompt "Direct hardware access"
Stefan Reinauerd650e992010-02-22 04:33:13 +0000129 bool
Myles Watsone6804952009-08-28 14:36:12 +0000130 depends on PCI_OPTION_ROM_RUN_YABEL
131 help
Stefan Reinauerd650e992010-02-22 04:33:13 +0000132 YABEL consists of two parts: It uses x86emu for the CPU emulation and
Uwe Hermann548dbe72010-02-22 16:41:49 +0000133 additionally provides a PC system emulation that filters bad device
134 and memory access (such as PCI config space access to other devices
135 than the initialized one).
136
Stefan Reinauerd650e992010-02-22 04:33:13 +0000137 When choosing this option, x86emu will pass through all hardware
Uwe Hermann548dbe72010-02-22 16:41:49 +0000138 accesses to memory and I/O devices to the underlying memory and I/O
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700139 addresses. While this option prevents Option ROMs from doing dirty
Stefan Reinauerd650e992010-02-22 04:33:13 +0000140 tricks with the CPU (such as installing SMM modules or hypervisors),
141 they can still access all devices in the system.
142 Enable this option for a good compromise between security and speed.
143
Stefan Reinauerabc0c852010-11-22 08:09:50 +0000144config MULTIPLE_VGA_ADAPTERS
Myles Watson28412f52009-09-17 16:54:46 +0000145 bool
146 default n
147
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000148config PCI_64BIT_PREF_MEM
149 bool
150 default n
151
152config HYPERTRANSPORT_PLUGIN_SUPPORT
153 bool
Myles Watson74fb8f22009-09-24 15:09:11 +0000154 default n
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000155
156config PCIX_PLUGIN_SUPPORT
157 bool
Myles Watsoned035562009-09-22 21:29:32 +0000158 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000159
160config PCIEXP_PLUGIN_SUPPORT
161 bool
Myles Watsoned035562009-09-22 21:29:32 +0000162 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000163
164config AGP_PLUGIN_SUPPORT
165 bool
Myles Watsoned035562009-09-22 21:29:32 +0000166 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000167
168config CARDBUS_PLUGIN_SUPPORT
169 bool
Myles Watsoned035562009-09-22 21:29:32 +0000170 default y
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700171
172config PCIEXP_COMMON_CLOCK
173 prompt "Enable PCIe Common Clock"
174 bool
175 default n
176 help
177 Detect and enable Common Clock on PCIe links.
178
179config PCIEXP_ASPM
180 prompt "Enable PCIe ASPM"
181 bool
182 default n
183 help
184 Detect and enable ASPM on PCIe links.