blob: 64f1693e99e2e14571cb5f54a67482ab25d23543 [file] [log] [blame]
Patrick Georgi0588d192009-08-12 15:00:51 +00001##
2## This file is part of the coreboot project.
3##
Patrick Georgi0588d192009-08-12 15:00:51 +00004## This program is free software; you can redistribute it and/or modify
5## it under the terms of the GNU General Public License as published by
Uwe Hermannc70e9fc2010-02-15 23:10:19 +00006## the Free Software Foundation; version 2 of the License.
Patrick Georgi0588d192009-08-12 15:00:51 +00007##
8## This program is distributed in the hope that it will be useful,
9## but WITHOUT ANY WARRANTY; without even the implied warranty of
10## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11## GNU General Public License for more details.
12##
Patrick Georgi0588d192009-08-12 15:00:51 +000013
Stefan Reinauer95a63962012-11-13 17:00:01 -080014menu "Devices"
Ronald G. Minnich69efaa02013-02-26 10:07:40 -080015
Nico Huberce642f02017-05-19 15:08:21 +020016config HAVE_VGA_TEXT_FRAMEBUFFER
Vladimir Serbinenko160e9a02014-02-22 10:34:47 +010017 bool
Michael Niewöhner1513d722019-10-29 20:38:10 +010018 depends on !NO_GFX_INIT
Nico Huber7971582e2017-05-20 01:07:48 +020019 help
20 Selected by graphics drivers that support legacy VGA text mode.
21
22config HAVE_VBE_LINEAR_FRAMEBUFFER
23 bool
Michael Niewöhner1513d722019-10-29 20:38:10 +010024 depends on !NO_GFX_INIT
Nico Huber7971582e2017-05-20 01:07:48 +020025 help
26 Selected by graphics drivers that can set up a VBE linear-framebuffer
27 mode.
28
29config HAVE_LINEAR_FRAMEBUFFER
30 bool
Michael Niewöhner1513d722019-10-29 20:38:10 +010031 depends on !NO_GFX_INIT
Nico Huber7971582e2017-05-20 01:07:48 +020032 help
33 Selected by graphics drivers that can set up a generic linear
34 framebuffer.
Vladimir Serbinenko160e9a02014-02-22 10:34:47 +010035
Nico Huber2e7f6cc2017-05-22 15:58:03 +020036config HAVE_FSP_GOP
37 bool
38 help
39 Selected by drivers that support to run a blob that implements
40 the Graphics Output Protocol (GOP).
41
Michael Niewöhnerd61a40e2019-10-26 10:37:42 +020042config MAINBOARD_NO_FSP_GOP
43 bool
44 help
45 Selected by mainboards that do not have any graphics ports connected to the SoC.
46
Nico Huber26ce9af2017-05-22 13:22:09 +020047config MAINBOARD_HAS_NATIVE_VGA_INIT
48 def_bool n
49 help
50 Selected by mainboards / drivers that provide native graphics
51 init within coreboot.
52
53config MAINBOARD_FORCE_NATIVE_VGA_INIT
54 def_bool n
55 depends on MAINBOARD_HAS_NATIVE_VGA_INIT || MAINBOARD_HAS_LIBGFXINIT
Nico Huber26ce9af2017-05-22 13:22:09 +020056 help
57 Selected by mainboards / chipsets whose graphics driver can't or
58 shouldn't be disabled.
59
Nico Huber542e9482016-10-05 17:47:32 +020060config MAINBOARD_HAS_LIBGFXINIT
61 def_bool n
Nico Huber542e9482016-10-05 17:47:32 +020062 help
63 Selected by mainboards that implement support for `libgfxinit`.
64 Usually this requires a list of ports to be probed for displays.
65
Nico Huberd4ebeaf2017-05-22 13:49:22 +020066choice
67 prompt "Graphics initialization"
68 default NO_GFX_INIT if VGA_BIOS && PAYLOAD_SEABIOS
69 default VGA_ROM_RUN if VGA_BIOS
Matt DeVillier8107c812020-03-27 03:09:21 -050070 default MAINBOARD_DO_NATIVE_VGA_INIT
71 default MAINBOARD_USE_LIBGFXINIT
72 default RUN_FSP_GOP if INTEL_GMA_ADD_VBT
Nico Huberd4ebeaf2017-05-22 13:49:22 +020073
74config MAINBOARD_DO_NATIVE_VGA_INIT
75 bool "Use native graphics init"
76 depends on MAINBOARD_HAS_NATIVE_VGA_INIT
77 help
78 Some mainboards, such as the Google Link, allow initializing the
79 display without the need of a binary only VGA OPROM. Enabling this
80 option may be faster, but also lacks flexibility in setting modes.
81
Nico Huber542e9482016-10-05 17:47:32 +020082config MAINBOARD_USE_LIBGFXINIT
Nico Huberd4ebeaf2017-05-22 13:49:22 +020083 bool "Use libgfxinit"
Nico Huber542e9482016-10-05 17:47:32 +020084 depends on MAINBOARD_HAS_LIBGFXINIT
Nico Huberce642f02017-05-19 15:08:21 +020085 select HAVE_VGA_TEXT_FRAMEBUFFER
Nico Huber7971582e2017-05-20 01:07:48 +020086 select HAVE_LINEAR_FRAMEBUFFER
Nico Huber6d8266b2017-05-20 16:46:01 +020087 select VGA if VGA_TEXT_FRAMEBUFFER
Nico Huber542e9482016-10-05 17:47:32 +020088 help
89 Use the SPARK library `libgfxinit` for the native graphics
90 initialization. This requires an Ada toolchain.
91
Uwe Hermann168b11b2009-10-07 16:15:40 +000092# TODO: Explain differences (if any) for onboard cards.
Patrick Georgi0588d192009-08-12 15:00:51 +000093config VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070094 bool "Run VGA Option ROMs"
Jonathan Neuschäferc22ad582018-11-30 00:06:50 +010095 depends on PCI && (ARCH_X86 || ARCH_PPC64) && !MAINBOARD_FORCE_NATIVE_VGA_INIT
Nico Huberce642f02017-05-19 15:08:21 +020096 select HAVE_VGA_TEXT_FRAMEBUFFER
Patrick Georgi0588d192009-08-12 15:00:51 +000097 help
Nico Huberd4ebeaf2017-05-22 13:49:22 +020098 Execute VGA Option ROMs in coreboot if found. This can be used
Peter Stugeb6fa47c2012-10-27 13:45:51 +020099 to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS
100 payload.
101
102 When using a SeaBIOS payload it runs all option ROMs with much
103 more complete BIOS interrupt services available than coreboot,
104 which some option ROMs require in order to function correctly.
105
Arthur Heymans4ad1f7d2018-01-16 17:22:20 +0100106config RUN_FSP_GOP
107 bool "Run a GOP driver"
Michael Niewöhnerd61a40e2019-10-26 10:37:42 +0200108 depends on HAVE_FSP_GOP && !MAINBOARD_NO_FSP_GOP
Arthur Heymans4ad1f7d2018-01-16 17:22:20 +0100109 select HAVE_LINEAR_FRAMEBUFFER
110 help
111 Some platforms (e.g. Intel Braswell and Skylake/Kaby Lake) support
112 to run a GOP blob. This option enables graphics initialization with
113 such a blob.
114
Nico Huberd4ebeaf2017-05-22 13:49:22 +0200115config NO_GFX_INIT
116 bool "None"
117 depends on !MAINBOARD_FORCE_NATIVE_VGA_INIT
118 help
119 Select this to not perform any graphics initialization in
120 coreboot. This is useful if the payload (e.g. SeaBIOS) can
121 initialize graphics or if pre-boot graphics are not required.
122
123endchoice
Myles Watsone6804952009-08-28 14:36:12 +0000124
Arthur Heymansb43ec472019-03-24 20:39:45 +0100125config ONBOARD_VGA_IS_PRIMARY
126 bool "Use onboard VGA as primary video device"
127 default n
128 depends on PCI
129 help
130 This option lets you select which VGA device will be used
131 to decode legacy VGA cycles. Not all chipsets implement this
132 however. If not selected, the last adapter found will be used,
133 else the onboard adapter is used.
134
Stefan Reinauer0a500842011-09-23 10:33:58 -0700135config S3_VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700136 bool "Re-run VGA Option ROMs on S3 resume"
Stefan Reinauer0a500842011-09-23 10:33:58 -0700137 default y
138 depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
139 help
Peter Stugeb6fa47c2012-10-27 13:45:51 +0200140 Execute VGA Option ROMs in coreboot when resuming from S3 suspend.
141
142 When using a SeaBIOS payload it runs all option ROMs with much
143 more complete BIOS interrupt services available than coreboot,
144 which some option ROMs require in order to function correctly.
145
146 If unsure, say N when using SeaBIOS as payload, Y otherwise.
Stefan Reinauer0a500842011-09-23 10:33:58 -0700147
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300148config ALWAYS_LOAD_OPROM
149 def_bool n
150 depends on VGA_ROM_RUN
151 help
Daniele Forsi53847a22014-07-22 18:00:56 +0200152 Always load option ROMs if any are found. The decision to run
153 the ROM is still determined at runtime, but the distinction
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300154 between loading and not running comes into play for CHROMEOS.
155
Daniele Forsi53847a22014-07-22 18:00:56 +0200156 An example where this is required is that VBT (Video BIOS Tables)
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300157 are needed for the kernel's display driver to know how a piece of
158 hardware is configured to be used.
159
Aaron Durbin10510252018-01-30 10:04:02 -0700160config ALWAYS_RUN_OPROM
161 def_bool n
162 depends on VGA_ROM_RUN && ALWAYS_LOAD_OPROM
163 help
164 Always uncondtionally run the option regardless of other
165 policies.
166
Patrick Rudolph647e34d2016-02-11 08:36:50 +0100167config ON_DEVICE_ROM_LOAD
168 bool "Load Option ROMs on PCI devices"
Peter Stugebe0ede42012-10-27 14:17:04 +0200169 default n if PAYLOAD_SEABIOS
170 default y if !PAYLOAD_SEABIOS
Nico Huber49d99fc2017-05-20 17:56:02 +0200171 depends on VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700172 help
Nico Huber49d99fc2017-05-20 17:56:02 +0200173 Load Option ROMs stored on PCI/PCIe/AGP VGA devices in coreboot.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700174
Peter Stugeb6fa47c2012-10-27 13:45:51 +0200175 If disabled, only Option ROMs stored in CBFS will be executed by
176 coreboot. If you are concerned about security, you might want to
177 disable this option, but it might leave your system in a state of
178 degraded functionality.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700179
Peter Stugeb6fa47c2012-10-27 13:45:51 +0200180 When using a SeaBIOS payload it runs all option ROMs with much
181 more complete BIOS interrupt services available than coreboot,
182 which some option ROMs require in order to function correctly.
183
184 If unsure, say N when using SeaBIOS as payload, Y otherwise.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700185
Patrick Georgi0588d192009-08-12 15:00:51 +0000186choice
Uwe Hermann168b11b2009-10-07 16:15:40 +0000187 prompt "Option ROM execution type"
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000188 default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
189 default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
Arthur Heymans57f70a12018-12-20 10:27:19 +0100190 depends on VGA_ROM_RUN
Uwe Hermann168b11b2009-10-07 16:15:40 +0000191
192config PCI_OPTION_ROM_RUN_REALMODE
Stefan Reinauerd650e992010-02-22 04:33:13 +0000193 prompt "Native mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +0000194 bool
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000195 depends on ARCH_X86
Myles Watson28412f52009-09-17 16:54:46 +0000196 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700197 If you select this option, PCI Option ROMs will be executed
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000198 natively on the CPU in real mode. No CPU emulation is involved,
199 so this is the fastest, but also the least secure option.
200 (only works on x86/x64 systems)
Patrick Georgi0588d192009-08-12 15:00:51 +0000201
Stefan Reinauerd650e992010-02-22 04:33:13 +0000202config PCI_OPTION_ROM_RUN_YABEL
Uwe Hermann548dbe72010-02-22 16:41:49 +0000203 prompt "Secure mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +0000204 bool
205 help
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000206 If you select this option, the x86emu CPU emulator will be used to
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700207 execute PCI Option ROMs.
Uwe Hermann548dbe72010-02-22 16:41:49 +0000208
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700209 This option prevents Option ROMs from doing dirty tricks with the
Uwe Hermann548dbe72010-02-22 16:41:49 +0000210 system (such as installing SMM modules or hypervisors), but it is
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700211 also significantly slower than the native Option ROM initialization
Uwe Hermann548dbe72010-02-22 16:41:49 +0000212 method.
213
Stefan Reinauerd650e992010-02-22 04:33:13 +0000214 This is the default choice for non-x86 systems.
Uwe Hermann548dbe72010-02-22 16:41:49 +0000215
Patrick Georgi0588d192009-08-12 15:00:51 +0000216endchoice
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +0000217
Stefan Reinauer9a358532010-02-12 09:32:17 +0000218config YABEL_PCI_ACCESS_OTHER_DEVICES
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700219 prompt "Allow Option ROMs to access other devices"
Stefan Reinauer9a358532010-02-12 09:32:17 +0000220 bool
221 depends on PCI_OPTION_ROM_RUN_YABEL
222 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700223 Per default, YABEL only allows Option ROMs to access the PCI device
Stefan Reinauer9a358532010-02-12 09:32:17 +0000224 that they are associated with. However, this causes trouble for some
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700225 onboard graphics chips whose Option ROM needs to reconfigure the
Uwe Hermann548dbe72010-02-22 16:41:49 +0000226 north bridge.
Stefan Reinauer9a358532010-02-12 09:32:17 +0000227
Patrick Georgic4b2a1b2012-07-20 13:44:50 +0200228config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
229 prompt "Fake success on writing other device's config space"
230 bool
231 depends on YABEL_PCI_ACCESS_OTHER_DEVICES
232 help
233 By default, YABEL aborts when the Option ROM tries to write to other
234 devices' config spaces. With this option enabled, the write doesn't
235 follow through, but the Option ROM is allowed to go on.
236 This can create issues such as hanging Option ROMs (if it depends on
237 that other register changing to the written value), so test for
238 impact before using this option.
239
Stefan Reinauer9a358532010-02-12 09:32:17 +0000240config YABEL_VIRTMEM_LOCATION
241 prompt "Location of YABEL's virtual memory"
242 hex
Alexandru Gagniucfdbc1af2015-08-26 10:11:02 -0400243 depends on PCI_OPTION_ROM_RUN_YABEL
Stefan Reinauer9a358532010-02-12 09:32:17 +0000244 default 0x1000000
245 help
246 YABEL requires 1MB memory for its CPU emulation. This memory is
247 normally located at 16MB.
248
Stefan Reinauerd650e992010-02-22 04:33:13 +0000249config YABEL_DIRECTHW
Uwe Hermann548dbe72010-02-22 16:41:49 +0000250 prompt "Direct hardware access"
Stefan Reinauerd650e992010-02-22 04:33:13 +0000251 bool
Stefan Reinauer91f14232012-12-07 16:55:12 -0800252 depends on PCI_OPTION_ROM_RUN_YABEL && ARCH_X86
Myles Watsone6804952009-08-28 14:36:12 +0000253 help
Stefan Reinauerd650e992010-02-22 04:33:13 +0000254 YABEL consists of two parts: It uses x86emu for the CPU emulation and
Uwe Hermann548dbe72010-02-22 16:41:49 +0000255 additionally provides a PC system emulation that filters bad device
256 and memory access (such as PCI config space access to other devices
257 than the initialized one).
258
Stefan Reinauerd650e992010-02-22 04:33:13 +0000259 When choosing this option, x86emu will pass through all hardware
Uwe Hermann548dbe72010-02-22 16:41:49 +0000260 accesses to memory and I/O devices to the underlying memory and I/O
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700261 addresses. While this option prevents Option ROMs from doing dirty
Stefan Reinauerd650e992010-02-22 04:33:13 +0000262 tricks with the CPU (such as installing SMM modules or hypervisors),
263 they can still access all devices in the system.
264 Enable this option for a good compromise between security and speed.
265
Stefan Reinauerabc0c852010-11-22 08:09:50 +0000266config MULTIPLE_VGA_ADAPTERS
Myles Watson28412f52009-09-17 16:54:46 +0000267 bool
268 default n
269
Nico Hubera2cf6862017-05-20 17:57:01 +0200270menu "Display"
271 depends on HAVE_VGA_TEXT_FRAMEBUFFER || HAVE_LINEAR_FRAMEBUFFER
272
273config FRAMEBUFFER_SET_VESA_MODE
274 prompt "Set framebuffer graphics resolution"
275 bool
Nico Huber7ebb0182019-07-22 18:17:40 +0200276 default y if CHROMEOS
Nico Hubera2cf6862017-05-20 17:57:01 +0200277 depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE
278 select HAVE_VBE_LINEAR_FRAMEBUFFER
279 help
280 Set VESA/native framebuffer mode (needed for bootsplash and graphical framebuffer console)
281
282if FRAMEBUFFER_SET_VESA_MODE
283
284choice
285 prompt "framebuffer graphics resolution"
Mike Banon749fe1e2019-02-23 21:43:05 +0300286 default FRAMEBUFFER_VESA_MODE_118
Nico Hubera2cf6862017-05-20 17:57:01 +0200287 help
288 This option sets the resolution used for the coreboot framebuffer (and
289 bootsplash screen).
290
291config FRAMEBUFFER_VESA_MODE_100
292 bool "640x400 256-color"
293
294config FRAMEBUFFER_VESA_MODE_101
295 bool "640x480 256-color"
296
297config FRAMEBUFFER_VESA_MODE_102
298 bool "800x600 16-color"
299
300config FRAMEBUFFER_VESA_MODE_103
301 bool "800x600 256-color"
302
303config FRAMEBUFFER_VESA_MODE_104
304 bool "1024x768 16-color"
305
306config FRAMEBUFFER_VESA_MODE_105
307 bool "1024x768 256-color"
308
309config FRAMEBUFFER_VESA_MODE_106
310 bool "1280x1024 16-color"
311
312config FRAMEBUFFER_VESA_MODE_107
313 bool "1280x1024 256-color"
314
315config FRAMEBUFFER_VESA_MODE_108
316 bool "80x60 text"
317
318config FRAMEBUFFER_VESA_MODE_109
319 bool "132x25 text"
320
321config FRAMEBUFFER_VESA_MODE_10A
322 bool "132x43 text"
323
324config FRAMEBUFFER_VESA_MODE_10B
325 bool "132x50 text"
326
327config FRAMEBUFFER_VESA_MODE_10C
328 bool "132x60 text"
329
330config FRAMEBUFFER_VESA_MODE_10D
331 bool "320x200 32k-color (1:5:5:5)"
332
333config FRAMEBUFFER_VESA_MODE_10E
334 bool "320x200 64k-color (5:6:5)"
335
336config FRAMEBUFFER_VESA_MODE_10F
337 bool "320x200 16.8M-color (8:8:8)"
338
339config FRAMEBUFFER_VESA_MODE_110
340 bool "640x480 32k-color (1:5:5:5)"
341
342config FRAMEBUFFER_VESA_MODE_111
343 bool "640x480 64k-color (5:6:5)"
344
345config FRAMEBUFFER_VESA_MODE_112
346 bool "640x480 16.8M-color (8:8:8)"
347
348config FRAMEBUFFER_VESA_MODE_113
349 bool "800x600 32k-color (1:5:5:5)"
350
351config FRAMEBUFFER_VESA_MODE_114
352 bool "800x600 64k-color (5:6:5)"
353
354config FRAMEBUFFER_VESA_MODE_115
355 bool "800x600 16.8M-color (8:8:8)"
356
357config FRAMEBUFFER_VESA_MODE_116
358 bool "1024x768 32k-color (1:5:5:5)"
359
360config FRAMEBUFFER_VESA_MODE_117
361 bool "1024x768 64k-color (5:6:5)"
362
363config FRAMEBUFFER_VESA_MODE_118
364 bool "1024x768 16.8M-color (8:8:8)"
365
366config FRAMEBUFFER_VESA_MODE_119
367 bool "1280x1024 32k-color (1:5:5:5)"
368
369config FRAMEBUFFER_VESA_MODE_11A
370 bool "1280x1024 64k-color (5:6:5)"
371
372config FRAMEBUFFER_VESA_MODE_11B
373 bool "1280x1024 16.8M-color (8:8:8)"
374
375config FRAMEBUFFER_VESA_MODE_USER
376 bool "Manually select VESA mode"
377
378endchoice
379
380# Map the config names to an integer (KB).
381config FRAMEBUFFER_VESA_MODE
382 prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
383 hex
384 default 0x100 if FRAMEBUFFER_VESA_MODE_100
385 default 0x101 if FRAMEBUFFER_VESA_MODE_101
386 default 0x102 if FRAMEBUFFER_VESA_MODE_102
387 default 0x103 if FRAMEBUFFER_VESA_MODE_103
388 default 0x104 if FRAMEBUFFER_VESA_MODE_104
389 default 0x105 if FRAMEBUFFER_VESA_MODE_105
390 default 0x106 if FRAMEBUFFER_VESA_MODE_106
391 default 0x107 if FRAMEBUFFER_VESA_MODE_107
392 default 0x108 if FRAMEBUFFER_VESA_MODE_108
393 default 0x109 if FRAMEBUFFER_VESA_MODE_109
394 default 0x10A if FRAMEBUFFER_VESA_MODE_10A
395 default 0x10B if FRAMEBUFFER_VESA_MODE_10B
396 default 0x10C if FRAMEBUFFER_VESA_MODE_10C
397 default 0x10D if FRAMEBUFFER_VESA_MODE_10D
398 default 0x10E if FRAMEBUFFER_VESA_MODE_10E
399 default 0x10F if FRAMEBUFFER_VESA_MODE_10F
400 default 0x110 if FRAMEBUFFER_VESA_MODE_110
401 default 0x111 if FRAMEBUFFER_VESA_MODE_111
402 default 0x112 if FRAMEBUFFER_VESA_MODE_112
403 default 0x113 if FRAMEBUFFER_VESA_MODE_113
404 default 0x114 if FRAMEBUFFER_VESA_MODE_114
405 default 0x115 if FRAMEBUFFER_VESA_MODE_115
406 default 0x116 if FRAMEBUFFER_VESA_MODE_116
407 default 0x117 if FRAMEBUFFER_VESA_MODE_117
408 default 0x118 if FRAMEBUFFER_VESA_MODE_118
409 default 0x119 if FRAMEBUFFER_VESA_MODE_119
410 default 0x11A if FRAMEBUFFER_VESA_MODE_11A
411 default 0x11B if FRAMEBUFFER_VESA_MODE_11B
Mike Banon749fe1e2019-02-23 21:43:05 +0300412 default 0x118 if FRAMEBUFFER_VESA_MODE_USER
Nico Hubera2cf6862017-05-20 17:57:01 +0200413endif # FRAMEBUFFER_SET_VESA_MODE
414
415choice
416 prompt "Framebuffer mode"
Nico Huber7ebb0182019-07-22 18:17:40 +0200417 default VBE_LINEAR_FRAMEBUFFER if HAVE_VBE_LINEAR_FRAMEBUFFER && CHROMEOS
418 default GENERIC_LINEAR_FRAMEBUFFER if HAVE_LINEAR_FRAMEBUFFER && CHROMEOS
Matt DeVillier672a4fe2020-02-21 14:11:29 -0600419 default VBE_LINEAR_FRAMEBUFFER if HAVE_VBE_LINEAR_FRAMEBUFFER && PAYLOAD_TIANOCORE
420 default GENERIC_LINEAR_FRAMEBUFFER if HAVE_LINEAR_FRAMEBUFFER && PAYLOAD_TIANOCORE
Nico Hubera2cf6862017-05-20 17:57:01 +0200421 default VGA_TEXT_FRAMEBUFFER
422
423config VGA_TEXT_FRAMEBUFFER
424 bool "Legacy VGA text mode"
425 depends on HAVE_VGA_TEXT_FRAMEBUFFER
426 help
427 If this option is enabled, coreboot will initialize graphics in
428 legacy VGA text mode or, if a VGA BIOS is used and a VESA mode set,
429 switch to text mode before handing control to a payload.
430
431config VBE_LINEAR_FRAMEBUFFER
432 bool "VESA framebuffer"
433 depends on HAVE_VBE_LINEAR_FRAMEBUFFER
434 help
435 This option keeps the framebuffer mode set after coreboot finishes
436 execution. If this option is enabled, coreboot will pass a
437 framebuffer entry in its coreboot table and the payload will need a
438 compatible driver.
439
440config GENERIC_LINEAR_FRAMEBUFFER
441 bool "Linear \"high-resolution\" framebuffer"
442 depends on HAVE_LINEAR_FRAMEBUFFER
443 help
444 This option enables a high-resolution, linear framebuffer. If this
445 option is enabled, coreboot will pass a framebuffer entry in its
446 coreboot table and the payload will need a compatible driver.
447
448endchoice
449
450# Workaround to have LINEAR_FRAMEBUFFER set in both cases
451# VBE_LINEAR_FRAMEBUFFER and GENERIC_LINEAR_FRAMEBUFFER.
452# `kconfig_lint` doesn't let us use the same name with
453# different texts in the choice above.
454config LINEAR_FRAMEBUFFER
455 def_bool y
456 depends on VBE_LINEAR_FRAMEBUFFER || GENERIC_LINEAR_FRAMEBUFFER
457
Johanna Schanderc544a852019-07-28 09:28:33 +0200458config BOOTSPLASH
459 prompt "Show graphical bootsplash"
460 bool
461 depends on LINEAR_FRAMEBUFFER
462 help
463 This option shows a graphical bootsplash screen. The graphics are
464 loaded from the CBFS file bootsplash.jpg.
465
466 You can either specify the location and file name of the
467 image in the 'General' section or add it manually to CBFS, using,
468 for example, cbfstool.
469
Nico Huber2bc892c2019-01-01 22:28:47 +0100470config LINEAR_FRAMEBUFFER_MAX_WIDTH
471 int "Maximum width in pixels"
472 depends on LINEAR_FRAMEBUFFER && MAINBOARD_USE_LIBGFXINIT
473 default 2560
474 help
475 Set the maximum width of the framebuffer. This may help with
476 default fonts too tiny for high-resolution displays.
477
478config LINEAR_FRAMEBUFFER_MAX_HEIGHT
479 int "Maximum height in pixels"
480 depends on LINEAR_FRAMEBUFFER && MAINBOARD_USE_LIBGFXINIT
481 default 1600
482 help
483 Set the maximum height of the framebuffer. This may help with
484 default fonts too tiny for high-resolution displays.
485
Nico Hubera2cf6862017-05-20 17:57:01 +0200486endmenu # "Display"
487
Ronald G. Minnich78a16672012-11-29 16:28:21 -0800488config PCI
489 bool
490 default n
491
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200492if PCI
493
494config NO_MMCONF_SUPPORT
495 bool
Kyösti Mälkki3d15e102016-11-29 16:46:56 +0200496 default n
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200497
498config MMCONF_SUPPORT
499 bool
Kyösti Mälkki3d15e102016-11-29 16:46:56 +0200500 default !NO_MMCONF_SUPPORT
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200501
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000502config HYPERTRANSPORT_PLUGIN_SUPPORT
503 bool
Myles Watson74fb8f22009-09-24 15:09:11 +0000504 default n
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000505
Kyösti Mälkkibc29bd02019-11-20 22:26:54 +0200506config HT_CHAIN_UNITID_BASE
507 int
508 default 0
509
510config HT_CHAIN_END_UNITID_BASE
511 int
512 default 0
513
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000514config PCIX_PLUGIN_SUPPORT
515 bool
Myles Watsoned035562009-09-22 21:29:32 +0000516 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000517
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000518config CARDBUS_PLUGIN_SUPPORT
519 bool
Myles Watsoned035562009-09-22 21:29:32 +0000520 default y
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700521
Andrew Wub7bb70d2013-08-12 20:07:47 +0800522config AZALIA_PLUGIN_SUPPORT
523 bool
Andrew Wub7bb70d2013-08-12 20:07:47 +0800524 default n
525
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200526config PCIEXP_PLUGIN_SUPPORT
527 bool
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200528 default y
529
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200530endif # PCI
531
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200532if PCIEXP_PLUGIN_SUPPORT
533
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700534config PCIEXP_COMMON_CLOCK
535 prompt "Enable PCIe Common Clock"
536 bool
537 default n
538 help
539 Detect and enable Common Clock on PCIe links.
540
541config PCIEXP_ASPM
542 prompt "Enable PCIe ASPM"
543 bool
544 default n
545 help
Jonathan Neuschäfer8c50e682016-12-27 16:31:28 +0100546 Detect and enable ASPM (Active State Power Management) on PCIe links.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800547
Kane Chen18cb1342014-10-01 11:13:54 +0800548config PCIEXP_CLK_PM
549 prompt "Enable PCIe Clock Power Management"
550 bool
Kane Chen18cb1342014-10-01 11:13:54 +0800551 default n
552 help
553 Detect and enable Clock Power Management on PCIe.
554
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200555config PCIEXP_L1_SUB_STATE
556 prompt "Enable PCIe ASPM L1 SubState"
557 bool
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200558 depends on (MMCONF_SUPPORT || PCI_IO_CFG_EXT)
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200559 default n
560 help
561 Detect and enable ASPM on PCIe links.
562
Jeremy Sollercf2ac542019-10-09 21:40:36 -0600563config PCIEXP_HOTPLUG
564 prompt "Enable PCIe Hotplug Support"
565 bool
566 default n
567 help
568 Allocate resources for PCIe hotplug bridges
569
570if PCIEXP_HOTPLUG
571
572config PCIEXP_HOTPLUG_BUSES
573 int "PCI Express Hotplug Buses"
574 default 32
575 help
576 This is the number of buses allocated for hotplug PCI express
577 bridges, for use by hotplugged child devices. The default is 32
578 buses.
579
580config PCIEXP_HOTPLUG_MEM
581 hex "PCI Express Hotplug Memory"
582 default 0x800000
583 help
584 This is the amount of memory space, in bytes, to allocate to
585 hotplug PCI express bridges, for use by hotplugged child devices.
586 This size should be page-aligned. The default is 8 MiB.
587
588config PCIEXP_HOTPLUG_PREFETCH_MEM
589 hex "PCI Express Hotplug Prefetch Memory"
590 default 0x10000000
591 help
592 This is the amount of pre-fetchable memory space, in bytes, to
593 allocate to hot-plug PCI express bridges, for use by hotplugged
594 child devices. This size should be page-aligned. The default is
595 256 MiB.
596
597config PCIEXP_HOTPLUG_IO
598 hex "PCI Express Hotplug I/O Space"
599 default 0x2000
600 help
601 This is the amount of I/O space to allocate to hot-plug PCI
602 express bridges, for use by hotplugged child devices. The default
603 is 8 KiB.
604
605endif # PCIEXP_HOTPLUG
606
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200607endif # PCIEXP_PLUGIN_SUPPORT
608
Kyösti Mälkki4c686f22014-02-14 12:45:09 +0200609config EARLY_PCI_BRIDGE
610 bool "Early PCI bridge"
611 depends on PCI
612 default n
613 help
614 While coreboot is executing code from ROM, the coreboot resource
615 allocator has not been running yet. Hence PCI devices living behind
616 a bridge are not yet visible to the system.
617
618 This option enables static configuration for a single pre-defined
619 PCI bridge function on bus 0.
620
621if EARLY_PCI_BRIDGE
622
623config EARLY_PCI_BRIDGE_DEVICE
624 hex "bridge device"
625 default 0x0
626
627config EARLY_PCI_BRIDGE_FUNCTION
628 hex "bridge function"
629 default 0x0
630
631config EARLY_PCI_MMIO_BASE
632 hex "MMIO window base"
633 default 0x0
634
635endif # EARLY_PCI_BRIDGE
636
Stefan Reinauer58470e32014-10-17 13:08:36 +0200637config SUBSYSTEM_VENDOR_ID
638 hex "Override PCI Subsystem Vendor ID"
639 depends on PCI
Martin Roth3b878122016-09-30 14:43:01 -0600640 default 0x0000
Stefan Reinauer58470e32014-10-17 13:08:36 +0200641 help
642 This config option will override the devicetree settings for
643 PCI Subsystem Vendor ID.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800644
Stefan Reinauer58470e32014-10-17 13:08:36 +0200645config SUBSYSTEM_DEVICE_ID
646 hex "Override PCI Subsystem Device ID"
647 depends on PCI
Martin Roth3b878122016-09-30 14:43:01 -0600648 default 0x0000
Stefan Reinauer58470e32014-10-17 13:08:36 +0200649 help
650 This config option will override the devicetree settings for
651 PCI Subsystem Device ID.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800652
653config VGA_BIOS
654 bool "Add a VGA BIOS image"
Vladimir Serbinenkod51a0892016-03-04 09:20:20 +0100655 depends on ARCH_X86
Stefan Reinauer95a63962012-11-13 17:00:01 -0800656 help
657 Select this option if you have a VGA BIOS image that you would
658 like to add to your ROM.
659
660 You will be able to specify the location and file name of the
661 image later.
662
663config VGA_BIOS_FILE
664 string "VGA BIOS path and filename"
665 depends on VGA_BIOS
666 default "vgabios.bin"
667 help
668 The path and filename of the file to use as VGA BIOS.
669
670config VGA_BIOS_ID
671 string "VGA device PCI IDs"
672 depends on VGA_BIOS
673 default "1106,3230"
674 help
Martin Rotha616a4b2020-01-21 09:28:40 -0700675 The comma-separated PCI vendor and device ID with optional revision if that
676 feature is enabled that would associate your vBIOS to your video card.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800677
Martin Rotha616a4b2020-01-21 09:28:40 -0700678 Example: 1106,3230 or 1106,3230,a3
Stefan Reinauer95a63962012-11-13 17:00:01 -0800679
680 In the above example 1106 is the PCI vendor ID (in hex, but without
681 the "0x" prefix) and 3230 specifies the PCI device ID of the
Martin Rotha616a4b2020-01-21 09:28:40 -0700682 video card (also in hex, without "0x" prefix). a3 specifies the revision.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800683
Daniele Forsif2fb7d92014-07-17 11:59:41 +0200684 Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
685
Martin Roth4cc2cac2019-12-06 19:11:08 -0700686config VGA_BIOS_SECOND
687 bool "Add a 2nd video BIOS image"
688 depends on ARCH_X86 && VGA_BIOS
689 help
690 Select this option if you have a 2nd video BIOS image that you would
691 like to add to your ROM.
692
693config VGA_BIOS_SECOND_FILE
694 string "2nd video BIOS path and filename"
695 depends on VGA_BIOS_SECOND
696 default "vbios2.bin"
697 help
698 The path and filename of the file to use as video BIOS.
699
700config VGA_BIOS_SECOND_ID
701 string "Graphics device PCI IDs"
702 depends on VGA_BIOS_SECOND
703 help
Martin Rotha616a4b2020-01-21 09:28:40 -0700704 The comma-separated PCI vendor and device ID with optional revision if that
705 feature is enabled that would associate your vBIOS to your video card.
Martin Roth4cc2cac2019-12-06 19:11:08 -0700706
Martin Rotha616a4b2020-01-21 09:28:40 -0700707 Example: 1106,3230 or 1106,3230,a3
Martin Roth4cc2cac2019-12-06 19:11:08 -0700708
709 In the above example 1106 is the PCI vendor ID (in hex, but without
710 the "0x" prefix) and 3230 specifies the PCI device ID of the
Martin Rotha616a4b2020-01-21 09:28:40 -0700711 video card (also in hex, without "0x" prefix). a3 specifies the revision.
Martin Roth4cc2cac2019-12-06 19:11:08 -0700712
713 Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
714
Martin Rotha616a4b2020-01-21 09:28:40 -0700715config CHECK_REV_IN_OPROM_NAME
716 def_bool n
717 help
718 Select this in the platform BIOS or chipset if the option rom has a revision
719 that needs to be checked when searching CBFS.
720
Mike Banon0f8547e2019-02-17 19:51:53 +0300721config VGA_BIOS_DGPU
722 bool "Add a discrete VGA BIOS image"
723 depends on VGA_BIOS
724 help
725 Select this option if you have a VGA BIOS image for discrete GPU
726 that you would like to add to your ROM.
727
728 You will be able to specify the location and file name of the
729 image later.
730
731config VGA_BIOS_DGPU_FILE
732 string "Discrete VGA BIOS path and filename"
733 depends on VGA_BIOS_DGPU
734 default "vgabios_dgpu.bin"
735 help
736 The path and filename of the file to use as VGA BIOS for discrete GPU.
737
738config VGA_BIOS_DGPU_ID
739 string "Discrete VGA device PCI IDs"
740 depends on VGA_BIOS_DGPU
741 default "1002,6663"
742 help
743 The comma-separated PCI vendor and device ID that would associate
744 your VGA BIOS to your discrete video card.
745
746 Examples:
747 1002,6663 for HD 8570M
748 1002,6665 for R5 M230
749
750 In the above examples 1002 is the PCI vendor ID (in hex, but without
751 the "0x" prefix) and 6663 / 6665 specifies the PCI device ID of the
752 discrete video card (also in hex, without "0x" prefix).
753
754 Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
755
Nico Huber29cc3312018-06-06 17:40:02 +0200756config INTEL_GMA_HAVE_VBT
Arthur Heymans7225a362018-05-28 21:09:21 +0200757 bool
758 help
759 Select this in the mainboard Kconfig to indicate the board has
760 a data.vbt file.
761
Nico Huber29cc3312018-06-06 17:40:02 +0200762config INTEL_GMA_ADD_VBT
Patrick Rudolph4c170982017-07-17 19:53:56 +0200763 depends on SOC_INTEL_COMMON || CPU_INTEL_COMMON
Elyes HAOUAS6dc9d032020-02-16 16:22:52 +0100764 bool "Add a Video BIOS Table (VBT) binary to CBFS"
Nico Huber29cc3312018-06-06 17:40:02 +0200765 default y if INTEL_GMA_HAVE_VBT
Patrick Rudolph4c170982017-07-17 19:53:56 +0200766 help
767 Add a VBT data file to CBFS. The VBT describes the integrated
768 GPU and connections, and is needed by the GOP driver integrated into
769 FSP and the OS driver in order to initialize the display.
770
771config INTEL_GMA_VBT_FILE
772 string "VBT binary path and filename"
Nico Huber29cc3312018-06-06 17:40:02 +0200773 depends on INTEL_GMA_ADD_VBT
Arthur Heymans7225a362018-05-28 21:09:21 +0200774 default "src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" \
Nico Huber29cc3312018-06-06 17:40:02 +0200775 if INTEL_GMA_HAVE_VBT && VARIANT_DIR != ""
776 default "src/mainboard/$(MAINBOARDDIR)/data.vbt" if INTEL_GMA_HAVE_VBT
Arthur Heymans4ad1f7d2018-01-16 17:22:20 +0100777 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/vbt.bin"
Patrick Rudolph4c170982017-07-17 19:53:56 +0200778 help
779 The path and filename of the VBT binary.
780
Julius Werner37d7ac82014-05-05 18:03:46 -0700781config SOFTWARE_I2C
782 bool "Enable I2C controller emulation in software"
783 default n
784 help
785 This config option will enable code to override the i2c_transfer
786 routine with a (simple) software emulation of the protocol. This may
787 be useful for debugging or on platforms where a driver for the real
788 I2C controller is not (yet) available. The platform code needs to
789 provide bindings to manually toggle I2C lines.
Kyösti Mälkkia91e1e62014-12-31 10:36:08 +0200790
Stefan Reinauer95a63962012-11-13 17:00:01 -0800791endmenu