blob: 516881951907b7c5123490af43fce5f1028a19e3 [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
Myles Watson28412f52009-09-17 16:54:46 +000021config VGA_BRIDGE_SETUP
22 bool "Setup bridges on path to VGA adapter"
23 default y
24 help
Uwe Hermann168b11b2009-10-07 16:15:40 +000025 Allow bridges to set up legacy decoding ranges for VGA. Don't disable
Myles Watson28412f52009-09-17 16:54:46 +000026 this unless you're sure you don't want the briges setup for VGA.
27
Uwe Hermann168b11b2009-10-07 16:15:40 +000028# TODO: Explain differences (if any) for onboard cards.
Patrick Georgi0588d192009-08-12 15:00:51 +000029config VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070030 bool "Run VGA Option ROMs"
Uwe Hermann168b11b2009-10-07 16:15:40 +000031 default y
Patrick Georgi0588d192009-08-12 15:00:51 +000032 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070033 Execute VGA Option ROMs, if found. This is required to enable
Uwe Hermann168b11b2009-10-07 16:15:40 +000034 PCI/AGP/PCI-E video cards.
Myles Watsone6804952009-08-28 14:36:12 +000035
Stefan Reinauer0a500842011-09-23 10:33:58 -070036config S3_VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070037 bool "Re-run VGA Option ROMs on S3 resume"
Stefan Reinauer0a500842011-09-23 10:33:58 -070038 default y
39 depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
40 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070041 Execute VGA Option ROMs when coming out of an S3 resume.
Stefan Reinauer0a500842011-09-23 10:33:58 -070042
Myles Watsone6804952009-08-28 14:36:12 +000043config PCI_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070044 bool "Run non-VGA Option ROMs"
Uwe Hermann168b11b2009-10-07 16:15:40 +000045 default y
Myles Watsone6804952009-08-28 14:36:12 +000046 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070047 Execute non-VGA PCI Option ROMs, if found.
Patrick Georgi0588d192009-08-12 15:00:51 +000048
Stefan Reinauerafaa2572011-10-06 16:47:51 -070049 Examples include IDE/SATA controller Option ROMs and Option ROMs
Uwe Hermann168b11b2009-10-07 16:15:40 +000050 for network cards (NICs).
51
Stefan Reinauerafaa2572011-10-06 16:47:51 -070052config 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
Patrick Georgi0588d192009-08-12 15:00:51 +000065choice
Uwe Hermann168b11b2009-10-07 16:15:40 +000066 prompt "Option ROM execution type"
Stefan Reinauer14be4d02010-01-31 21:46:12 +000067 default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
68 default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
Myles Watsone3df1212010-06-04 15:55:12 +000069 depends on PCI_ROM_RUN || VGA_ROM_RUN || GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +000070
71config PCI_OPTION_ROM_RUN_REALMODE
Stefan Reinauerd650e992010-02-22 04:33:13 +000072 prompt "Native mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +000073 bool
Stefan Reinauer14be4d02010-01-31 21:46:12 +000074 depends on ARCH_X86
Myles Watson28412f52009-09-17 16:54:46 +000075 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -070076 If you select this option, PCI Option ROMs will be executed
Stefan Reinauer14be4d02010-01-31 21:46:12 +000077 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)
Patrick Georgi0588d192009-08-12 15:00:51 +000080
Stefan Reinauerd650e992010-02-22 04:33:13 +000081config PCI_OPTION_ROM_RUN_YABEL
Uwe Hermann548dbe72010-02-22 16:41:49 +000082 prompt "Secure mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +000083 bool
Myles Watsone3df1212010-06-04 15:55:12 +000084 depends on !GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +000085 help
Stefan Reinauer14be4d02010-01-31 21:46:12 +000086 If you select this option, the x86emu CPU emulator will be used to
Stefan Reinauerafaa2572011-10-06 16:47:51 -070087 execute PCI Option ROMs.
Uwe Hermann548dbe72010-02-22 16:41:49 +000088
Stefan Reinauerafaa2572011-10-06 16:47:51 -070089 This option prevents Option ROMs from doing dirty tricks with the
Uwe Hermann548dbe72010-02-22 16:41:49 +000090 system (such as installing SMM modules or hypervisors), but it is
Stefan Reinauerafaa2572011-10-06 16:47:51 -070091 also significantly slower than the native Option ROM initialization
Uwe Hermann548dbe72010-02-22 16:41:49 +000092 method.
93
Stefan Reinauerd650e992010-02-22 04:33:13 +000094 This is the default choice for non-x86 systems.
Uwe Hermann548dbe72010-02-22 16:41:49 +000095
Patrick Georgi0588d192009-08-12 15:00:51 +000096endchoice
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +000097
Stefan Reinauer9a358532010-02-12 09:32:17 +000098config YABEL_PCI_ACCESS_OTHER_DEVICES
Stefan Reinauerafaa2572011-10-06 16:47:51 -070099 prompt "Allow Option ROMs to access other devices"
Stefan Reinauer9a358532010-02-12 09:32:17 +0000100 bool
101 depends on PCI_OPTION_ROM_RUN_YABEL
102 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700103 Per default, YABEL only allows Option ROMs to access the PCI device
Stefan Reinauer9a358532010-02-12 09:32:17 +0000104 that they are associated with. However, this causes trouble for some
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700105 onboard graphics chips whose Option ROM needs to reconfigure the
Uwe Hermann548dbe72010-02-22 16:41:49 +0000106 north bridge.
Stefan Reinauer9a358532010-02-12 09:32:17 +0000107
108config YABEL_VIRTMEM_LOCATION
109 prompt "Location of YABEL's virtual memory"
110 hex
Stefan Reinauerd650e992010-02-22 04:33:13 +0000111 depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
Stefan Reinauer9a358532010-02-12 09:32:17 +0000112 default 0x1000000
113 help
114 YABEL requires 1MB memory for its CPU emulation. This memory is
115 normally located at 16MB.
116
Uwe Hermann01ce6012010-03-05 10:03:50 +0000117config YABEL_VIRTMEM_LOCATION
118 hex
119 depends on PCI_OPTION_ROM_RUN_YABEL && !EXPERT
120 default 0x1000000
121
Stefan Reinauerd650e992010-02-22 04:33:13 +0000122config YABEL_DIRECTHW
Uwe Hermann548dbe72010-02-22 16:41:49 +0000123 prompt "Direct hardware access"
Stefan Reinauerd650e992010-02-22 04:33:13 +0000124 bool
Myles Watsone6804952009-08-28 14:36:12 +0000125 depends on PCI_OPTION_ROM_RUN_YABEL
126 help
Stefan Reinauerd650e992010-02-22 04:33:13 +0000127 YABEL consists of two parts: It uses x86emu for the CPU emulation and
Uwe Hermann548dbe72010-02-22 16:41:49 +0000128 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
Stefan Reinauerd650e992010-02-22 04:33:13 +0000132 When choosing this option, x86emu will pass through all hardware
Uwe Hermann548dbe72010-02-22 16:41:49 +0000133 accesses to memory and I/O devices to the underlying memory and I/O
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700134 addresses. While this option prevents Option ROMs from doing dirty
Stefan Reinauerd650e992010-02-22 04:33:13 +0000135 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
Stefan Reinauerabc0c852010-11-22 08:09:50 +0000139config MULTIPLE_VGA_ADAPTERS
Myles Watson28412f52009-09-17 16:54:46 +0000140 bool
141 default n
142
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000143config PCI_64BIT_PREF_MEM
144 bool
145 default n
146
147config HYPERTRANSPORT_PLUGIN_SUPPORT
148 bool
Myles Watson74fb8f22009-09-24 15:09:11 +0000149 default n
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000150
151config PCIX_PLUGIN_SUPPORT
152 bool
Myles Watsoned035562009-09-22 21:29:32 +0000153 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000154
155config PCIEXP_PLUGIN_SUPPORT
156 bool
Myles Watsoned035562009-09-22 21:29:32 +0000157 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000158
159config AGP_PLUGIN_SUPPORT
160 bool
Myles Watsoned035562009-09-22 21:29:32 +0000161 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000162
163config CARDBUS_PLUGIN_SUPPORT
164 bool
Myles Watsoned035562009-09-22 21:29:32 +0000165 default y
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700166
167config 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
174config PCIEXP_ASPM
175 prompt "Enable PCIe ASPM"
176 bool
177 default n
178 help
179 Detect and enable ASPM on PCIe links.