blob: c727fba85410c8861bdf35338f7da373de9fde2a [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##
Patrick Georgi0588d192009-08-12 15:00:51 +000016
Stefan Reinauer95a63962012-11-13 17:00:01 -080017menu "Devices"
Ronald G. Minnich69efaa02013-02-26 10:07:40 -080018
19# Only set this in the mainboard
20config MAINBOARD_HAS_NATIVE_VGA_INIT
21 bool
22 default n
23
Nico Huberce642f02017-05-19 15:08:21 +020024config HAVE_VGA_TEXT_FRAMEBUFFER
Vladimir Serbinenko160e9a02014-02-22 10:34:47 +010025 bool
Nico Huber7971582e2017-05-20 01:07:48 +020026 help
27 Selected by graphics drivers that support legacy VGA text mode.
28
29config HAVE_VBE_LINEAR_FRAMEBUFFER
30 bool
31 help
32 Selected by graphics drivers that can set up a VBE linear-framebuffer
33 mode.
34
35config HAVE_LINEAR_FRAMEBUFFER
36 bool
37 help
38 Selected by graphics drivers that can set up a generic linear
39 framebuffer.
Vladimir Serbinenko160e9a02014-02-22 10:34:47 +010040
Ronald G. Minnich69efaa02013-02-26 10:07:40 -080041config MAINBOARD_DO_NATIVE_VGA_INIT
42 bool "Use native graphics initialization"
43 depends on MAINBOARD_HAS_NATIVE_VGA_INIT
44 default n
45 help
46 Some mainboards, such as the Google Link, allow initializing the display
47 without the need of a binary only VGA OPROM. Enabling this option may be
Paul Menzelfd3451d2014-01-03 09:45:57 +010048 faster, but also lacks flexibility in setting modes.
Ronald G. Minnich69efaa02013-02-26 10:07:40 -080049
50 If unsure, say N.
51
Nico Huber542e9482016-10-05 17:47:32 +020052config MAINBOARD_HAS_LIBGFXINIT
53 def_bool n
54 select MAINBOARD_HAS_NATIVE_VGA_INIT
55 help
56 Selected by mainboards that implement support for `libgfxinit`.
57 Usually this requires a list of ports to be probed for displays.
58
59config MAINBOARD_USE_LIBGFXINIT
60 bool "Use libgfxinit for native graphics initialization"
61 depends on MAINBOARD_DO_NATIVE_VGA_INIT
62 depends on MAINBOARD_HAS_LIBGFXINIT
Nico Huberce642f02017-05-19 15:08:21 +020063 select HAVE_VGA_TEXT_FRAMEBUFFER
Nico Huber7971582e2017-05-20 01:07:48 +020064 select HAVE_LINEAR_FRAMEBUFFER
Nico Huber542e9482016-10-05 17:47:32 +020065 select RAMSTAGE_LIBHWBASE
Nico Huber6d8266b2017-05-20 16:46:01 +020066 select VGA if VGA_TEXT_FRAMEBUFFER
Nico Huber3db76532017-05-18 18:07:34 +020067 select NO_EDID_FILL_FB
Nico Huber542e9482016-10-05 17:47:32 +020068 default n
69 help
70 Use the SPARK library `libgfxinit` for the native graphics
71 initialization. This requires an Ada toolchain.
72
Uwe Hermann168b11b2009-10-07 16:15:40 +000073# TODO: Explain differences (if any) for onboard cards.
Patrick Georgi0588d192009-08-12 15:00:51 +000074config VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070075 bool "Run VGA Option ROMs"
Peter Stugebe0ede42012-10-27 14:17:04 +020076 default n if PAYLOAD_SEABIOS
77 default y if !PAYLOAD_SEABIOS
Alexandru Gagniucfdbc1af2015-08-26 10:11:02 -040078 depends on PCI && !MAINBOARD_DO_NATIVE_VGA_INIT
Nico Huberce642f02017-05-19 15:08:21 +020079 select HAVE_VGA_TEXT_FRAMEBUFFER
Patrick Georgi0588d192009-08-12 15:00:51 +000080 help
Peter Stugeb6fa47c2012-10-27 13:45:51 +020081 Execute VGA Option ROMs in coreboot if found. This is required
82 to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS
83 payload.
84
85 When using a SeaBIOS payload it runs all option ROMs with much
86 more complete BIOS interrupt services available than coreboot,
87 which some option ROMs require in order to function correctly.
88
89 If unsure, say N when using SeaBIOS as payload, Y otherwise.
Myles Watsone6804952009-08-28 14:36:12 +000090
Stefan Reinauer0a500842011-09-23 10:33:58 -070091config S3_VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -070092 bool "Re-run VGA Option ROMs on S3 resume"
Stefan Reinauer0a500842011-09-23 10:33:58 -070093 default y
94 depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
95 help
Peter Stugeb6fa47c2012-10-27 13:45:51 +020096 Execute VGA Option ROMs in coreboot when resuming from S3 suspend.
97
98 When using a SeaBIOS payload it runs all option ROMs with much
99 more complete BIOS interrupt services available than coreboot,
100 which some option ROMs require in order to function correctly.
101
102 If unsure, say N when using SeaBIOS as payload, Y otherwise.
Stefan Reinauer0a500842011-09-23 10:33:58 -0700103
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300104config ALWAYS_LOAD_OPROM
105 def_bool n
106 depends on VGA_ROM_RUN
107 help
Daniele Forsi53847a22014-07-22 18:00:56 +0200108 Always load option ROMs if any are found. The decision to run
109 the ROM is still determined at runtime, but the distinction
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300110 between loading and not running comes into play for CHROMEOS.
111
Daniele Forsi53847a22014-07-22 18:00:56 +0200112 An example where this is required is that VBT (Video BIOS Tables)
Kyösti Mälkki580e5642014-05-01 16:31:34 +0300113 are needed for the kernel's display driver to know how a piece of
114 hardware is configured to be used.
115
Patrick Rudolph647e34d2016-02-11 08:36:50 +0100116config ON_DEVICE_ROM_LOAD
117 bool "Load Option ROMs on PCI devices"
Peter Stugebe0ede42012-10-27 14:17:04 +0200118 default n if PAYLOAD_SEABIOS
119 default y if !PAYLOAD_SEABIOS
Nico Huber49d99fc2017-05-20 17:56:02 +0200120 depends on VGA_ROM_RUN
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700121 help
Nico Huber49d99fc2017-05-20 17:56:02 +0200122 Load Option ROMs stored on PCI/PCIe/AGP VGA devices in coreboot.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700123
Peter Stugeb6fa47c2012-10-27 13:45:51 +0200124 If disabled, only Option ROMs stored in CBFS will be executed by
125 coreboot. If you are concerned about security, you might want to
126 disable this option, but it might leave your system in a state of
127 degraded functionality.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700128
Peter Stugeb6fa47c2012-10-27 13:45:51 +0200129 When using a SeaBIOS payload it runs all option ROMs with much
130 more complete BIOS interrupt services available than coreboot,
131 which some option ROMs require in order to function correctly.
132
133 If unsure, say N when using SeaBIOS as payload, Y otherwise.
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700134
Patrick Georgi0588d192009-08-12 15:00:51 +0000135choice
Uwe Hermann168b11b2009-10-07 16:15:40 +0000136 prompt "Option ROM execution type"
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000137 default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
138 default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
Vladimir Serbinenkob32816e2013-12-20 17:47:19 +0100139 depends on VGA_ROM_RUN || GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +0000140
141config PCI_OPTION_ROM_RUN_REALMODE
Stefan Reinauerd650e992010-02-22 04:33:13 +0000142 prompt "Native mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +0000143 bool
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000144 depends on ARCH_X86
Myles Watson28412f52009-09-17 16:54:46 +0000145 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700146 If you select this option, PCI Option ROMs will be executed
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000147 natively on the CPU in real mode. No CPU emulation is involved,
148 so this is the fastest, but also the least secure option.
149 (only works on x86/x64 systems)
Patrick Georgi0588d192009-08-12 15:00:51 +0000150
Stefan Reinauerd650e992010-02-22 04:33:13 +0000151config PCI_OPTION_ROM_RUN_YABEL
Uwe Hermann548dbe72010-02-22 16:41:49 +0000152 prompt "Secure mode"
Uwe Hermann168b11b2009-10-07 16:15:40 +0000153 bool
Myles Watsone3df1212010-06-04 15:55:12 +0000154 depends on !GEODE_VSA
Uwe Hermann168b11b2009-10-07 16:15:40 +0000155 help
Stefan Reinauer14be4d02010-01-31 21:46:12 +0000156 If you select this option, the x86emu CPU emulator will be used to
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700157 execute PCI Option ROMs.
Uwe Hermann548dbe72010-02-22 16:41:49 +0000158
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700159 This option prevents Option ROMs from doing dirty tricks with the
Uwe Hermann548dbe72010-02-22 16:41:49 +0000160 system (such as installing SMM modules or hypervisors), but it is
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700161 also significantly slower than the native Option ROM initialization
Uwe Hermann548dbe72010-02-22 16:41:49 +0000162 method.
163
Stefan Reinauerd650e992010-02-22 04:33:13 +0000164 This is the default choice for non-x86 systems.
Uwe Hermann548dbe72010-02-22 16:41:49 +0000165
Patrick Georgi0588d192009-08-12 15:00:51 +0000166endchoice
Uwe Hermann5ec2c2b2009-08-25 00:53:22 +0000167
Stefan Reinauer9a358532010-02-12 09:32:17 +0000168config YABEL_PCI_ACCESS_OTHER_DEVICES
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700169 prompt "Allow Option ROMs to access other devices"
Stefan Reinauer9a358532010-02-12 09:32:17 +0000170 bool
171 depends on PCI_OPTION_ROM_RUN_YABEL
172 help
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700173 Per default, YABEL only allows Option ROMs to access the PCI device
Stefan Reinauer9a358532010-02-12 09:32:17 +0000174 that they are associated with. However, this causes trouble for some
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700175 onboard graphics chips whose Option ROM needs to reconfigure the
Uwe Hermann548dbe72010-02-22 16:41:49 +0000176 north bridge.
Stefan Reinauer9a358532010-02-12 09:32:17 +0000177
Patrick Georgic4b2a1b2012-07-20 13:44:50 +0200178config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
179 prompt "Fake success on writing other device's config space"
180 bool
181 depends on YABEL_PCI_ACCESS_OTHER_DEVICES
182 help
183 By default, YABEL aborts when the Option ROM tries to write to other
184 devices' config spaces. With this option enabled, the write doesn't
185 follow through, but the Option ROM is allowed to go on.
186 This can create issues such as hanging Option ROMs (if it depends on
187 that other register changing to the written value), so test for
188 impact before using this option.
189
Stefan Reinauer9a358532010-02-12 09:32:17 +0000190config YABEL_VIRTMEM_LOCATION
191 prompt "Location of YABEL's virtual memory"
192 hex
Alexandru Gagniucfdbc1af2015-08-26 10:11:02 -0400193 depends on PCI_OPTION_ROM_RUN_YABEL
Stefan Reinauer9a358532010-02-12 09:32:17 +0000194 default 0x1000000
195 help
196 YABEL requires 1MB memory for its CPU emulation. This memory is
197 normally located at 16MB.
198
Stefan Reinauerd650e992010-02-22 04:33:13 +0000199config YABEL_DIRECTHW
Uwe Hermann548dbe72010-02-22 16:41:49 +0000200 prompt "Direct hardware access"
Stefan Reinauerd650e992010-02-22 04:33:13 +0000201 bool
Stefan Reinauer91f14232012-12-07 16:55:12 -0800202 depends on PCI_OPTION_ROM_RUN_YABEL && ARCH_X86
Myles Watsone6804952009-08-28 14:36:12 +0000203 help
Stefan Reinauerd650e992010-02-22 04:33:13 +0000204 YABEL consists of two parts: It uses x86emu for the CPU emulation and
Uwe Hermann548dbe72010-02-22 16:41:49 +0000205 additionally provides a PC system emulation that filters bad device
206 and memory access (such as PCI config space access to other devices
207 than the initialized one).
208
Stefan Reinauerd650e992010-02-22 04:33:13 +0000209 When choosing this option, x86emu will pass through all hardware
Uwe Hermann548dbe72010-02-22 16:41:49 +0000210 accesses to memory and I/O devices to the underlying memory and I/O
Stefan Reinauerafaa2572011-10-06 16:47:51 -0700211 addresses. While this option prevents Option ROMs from doing dirty
Stefan Reinauerd650e992010-02-22 04:33:13 +0000212 tricks with the CPU (such as installing SMM modules or hypervisors),
213 they can still access all devices in the system.
214 Enable this option for a good compromise between security and speed.
215
Stefan Reinauerabc0c852010-11-22 08:09:50 +0000216config MULTIPLE_VGA_ADAPTERS
Myles Watson28412f52009-09-17 16:54:46 +0000217 bool
218 default n
219
Timothy Pearsonacbdade2015-10-17 04:36:47 -0500220config SMBUS_HAS_AUX_CHANNELS
221 bool
222 default n
223
Ronald G. Minnich78a16672012-11-29 16:28:21 -0800224config PCI
225 bool
226 default n
227
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200228if PCI
229
230config NO_MMCONF_SUPPORT
231 bool
Kyösti Mälkki3d15e102016-11-29 16:46:56 +0200232 default n
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200233
234config MMCONF_SUPPORT
235 bool
Kyösti Mälkki3d15e102016-11-29 16:46:56 +0200236 default !NO_MMCONF_SUPPORT
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200237
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000238config HYPERTRANSPORT_PLUGIN_SUPPORT
239 bool
Myles Watson74fb8f22009-09-24 15:09:11 +0000240 default n
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000241
242config PCIX_PLUGIN_SUPPORT
243 bool
Myles Watsoned035562009-09-22 21:29:32 +0000244 default y
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000245
Ronald G. Minnich876d7e92009-08-28 14:23:38 +0000246config CARDBUS_PLUGIN_SUPPORT
247 bool
Myles Watsoned035562009-09-22 21:29:32 +0000248 default y
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700249
Andrew Wub7bb70d2013-08-12 20:07:47 +0800250config AZALIA_PLUGIN_SUPPORT
251 bool
Andrew Wub7bb70d2013-08-12 20:07:47 +0800252 default n
253
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200254config PCIEXP_PLUGIN_SUPPORT
255 bool
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200256 default y
257
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200258endif # PCI
259
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200260if PCIEXP_PLUGIN_SUPPORT
261
Duncan Laurie90dcdd42011-10-25 14:15:11 -0700262config PCIEXP_COMMON_CLOCK
263 prompt "Enable PCIe Common Clock"
264 bool
265 default n
266 help
267 Detect and enable Common Clock on PCIe links.
268
269config PCIEXP_ASPM
270 prompt "Enable PCIe ASPM"
271 bool
272 default n
273 help
Jonathan Neuschäfer8c50e682016-12-27 16:31:28 +0100274 Detect and enable ASPM (Active State Power Management) on PCIe links.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800275
Kane Chen18cb1342014-10-01 11:13:54 +0800276config PCIEXP_CLK_PM
277 prompt "Enable PCIe Clock Power Management"
278 bool
Kane Chen18cb1342014-10-01 11:13:54 +0800279 default n
280 help
281 Detect and enable Clock Power Management on PCIe.
282
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200283config PCIEXP_L1_SUB_STATE
284 prompt "Enable PCIe ASPM L1 SubState"
285 bool
Kyösti Mälkki6f66f412016-12-01 22:08:18 +0200286 depends on (MMCONF_SUPPORT || PCI_IO_CFG_EXT)
Kyösti Mälkki91bfa8e2016-11-20 20:39:56 +0200287 default n
288 help
289 Detect and enable ASPM on PCIe links.
290
291endif # PCIEXP_PLUGIN_SUPPORT
292
Kyösti Mälkki4c686f22014-02-14 12:45:09 +0200293config EARLY_PCI_BRIDGE
294 bool "Early PCI bridge"
295 depends on PCI
296 default n
297 help
298 While coreboot is executing code from ROM, the coreboot resource
299 allocator has not been running yet. Hence PCI devices living behind
300 a bridge are not yet visible to the system.
301
302 This option enables static configuration for a single pre-defined
303 PCI bridge function on bus 0.
304
305if EARLY_PCI_BRIDGE
306
307config EARLY_PCI_BRIDGE_DEVICE
308 hex "bridge device"
309 default 0x0
310
311config EARLY_PCI_BRIDGE_FUNCTION
312 hex "bridge function"
313 default 0x0
314
315config EARLY_PCI_MMIO_BASE
316 hex "MMIO window base"
317 default 0x0
318
319endif # EARLY_PCI_BRIDGE
320
Stefan Reinauer58470e32014-10-17 13:08:36 +0200321config SUBSYSTEM_VENDOR_ID
322 hex "Override PCI Subsystem Vendor ID"
323 depends on PCI
Martin Roth3b878122016-09-30 14:43:01 -0600324 default 0x0000
Stefan Reinauer58470e32014-10-17 13:08:36 +0200325 help
326 This config option will override the devicetree settings for
327 PCI Subsystem Vendor ID.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800328
Stefan Reinauer58470e32014-10-17 13:08:36 +0200329config SUBSYSTEM_DEVICE_ID
330 hex "Override PCI Subsystem Device ID"
331 depends on PCI
Martin Roth3b878122016-09-30 14:43:01 -0600332 default 0x0000
Stefan Reinauer58470e32014-10-17 13:08:36 +0200333 help
334 This config option will override the devicetree settings for
335 PCI Subsystem Device ID.
Stefan Reinauer95a63962012-11-13 17:00:01 -0800336
337config VGA_BIOS
338 bool "Add a VGA BIOS image"
Vladimir Serbinenkod51a0892016-03-04 09:20:20 +0100339 depends on ARCH_X86
Stefan Reinauer95a63962012-11-13 17:00:01 -0800340 help
341 Select this option if you have a VGA BIOS image that you would
342 like to add to your ROM.
343
344 You will be able to specify the location and file name of the
345 image later.
346
347config VGA_BIOS_FILE
348 string "VGA BIOS path and filename"
349 depends on VGA_BIOS
350 default "vgabios.bin"
351 help
352 The path and filename of the file to use as VGA BIOS.
353
354config VGA_BIOS_ID
355 string "VGA device PCI IDs"
356 depends on VGA_BIOS
357 default "1106,3230"
358 help
359 The comma-separated PCI vendor and device ID that would associate
360 your VGA BIOS to your video card.
361
362 Example: 1106,3230
363
364 In the above example 1106 is the PCI vendor ID (in hex, but without
365 the "0x" prefix) and 3230 specifies the PCI device ID of the
366 video card (also in hex, without "0x" prefix).
367
Daniele Forsif2fb7d92014-07-17 11:59:41 +0200368 Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
369
Stefan Reinauer95a63962012-11-13 17:00:01 -0800370config INTEL_MBI
371 bool "Add an MBI image"
372 depends on NORTHBRIDGE_INTEL_I82830
373 help
374 Select this option if you have an Intel MBI image that you would
375 like to add to your ROM.
376
377 You will be able to specify the location and file name of the
378 image later.
379
380config MBI_FILE
381 string "Intel MBI path and filename"
382 depends on INTEL_MBI
383 default "mbi.bin"
384 help
385 The path and filename of the file to use as VGA BIOS.
386
Julius Werner37d7ac82014-05-05 18:03:46 -0700387config SOFTWARE_I2C
388 bool "Enable I2C controller emulation in software"
389 default n
390 help
391 This config option will enable code to override the i2c_transfer
392 routine with a (simple) software emulation of the protocol. This may
393 be useful for debugging or on platforms where a driver for the real
394 I2C controller is not (yet) available. The platform code needs to
395 provide bindings to manually toggle I2C lines.
Kyösti Mälkkia91e1e62014-12-31 10:36:08 +0200396
Stefan Reinauer95a63962012-11-13 17:00:01 -0800397endmenu
398
399menu "Display"
Nico Huber7971582e2017-05-20 01:07:48 +0200400 depends on HAVE_VGA_TEXT_FRAMEBUFFER || HAVE_LINEAR_FRAMEBUFFER
Stefan Reinauer95a63962012-11-13 17:00:01 -0800401
402config FRAMEBUFFER_SET_VESA_MODE
Ronald G. Minnich69efaa02013-02-26 10:07:40 -0800403 prompt "Set framebuffer graphics resolution"
Stefan Reinauer95a63962012-11-13 17:00:01 -0800404 bool
405 depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE
Nico Huber7971582e2017-05-20 01:07:48 +0200406 select HAVE_VBE_LINEAR_FRAMEBUFFER
Stefan Reinauer95a63962012-11-13 17:00:01 -0800407 help
Ronald G. Minnich69efaa02013-02-26 10:07:40 -0800408 Set VESA/native framebuffer mode (needed for bootsplash and graphical framebuffer console)
Stefan Reinauer95a63962012-11-13 17:00:01 -0800409
410choice
Ronald G. Minnich69efaa02013-02-26 10:07:40 -0800411 prompt "framebuffer graphics resolution"
Stefan Reinauer95a63962012-11-13 17:00:01 -0800412 default FRAMEBUFFER_VESA_MODE_117
Vladimir Serbinenkofb6d25f2014-02-21 08:38:27 +0100413 depends on FRAMEBUFFER_SET_VESA_MODE
Stefan Reinauer95a63962012-11-13 17:00:01 -0800414 help
415 This option sets the resolution used for the coreboot framebuffer (and
416 bootsplash screen).
417
418config FRAMEBUFFER_VESA_MODE_100
419 bool "640x400 256-color"
420
421config FRAMEBUFFER_VESA_MODE_101
422 bool "640x480 256-color"
423
424config FRAMEBUFFER_VESA_MODE_102
425 bool "800x600 16-color"
426
427config FRAMEBUFFER_VESA_MODE_103
428 bool "800x600 256-color"
429
430config FRAMEBUFFER_VESA_MODE_104
431 bool "1024x768 16-color"
432
433config FRAMEBUFFER_VESA_MODE_105
Daniele Forsied3d0e82014-07-19 15:40:40 +0200434 bool "1024x768 256-color"
Stefan Reinauer95a63962012-11-13 17:00:01 -0800435
436config FRAMEBUFFER_VESA_MODE_106
437 bool "1280x1024 16-color"
438
439config FRAMEBUFFER_VESA_MODE_107
440 bool "1280x1024 256-color"
441
442config FRAMEBUFFER_VESA_MODE_108
443 bool "80x60 text"
444
445config FRAMEBUFFER_VESA_MODE_109
446 bool "132x25 text"
447
448config FRAMEBUFFER_VESA_MODE_10A
449 bool "132x43 text"
450
451config FRAMEBUFFER_VESA_MODE_10B
452 bool "132x50 text"
453
454config FRAMEBUFFER_VESA_MODE_10C
455 bool "132x60 text"
456
457config FRAMEBUFFER_VESA_MODE_10D
458 bool "320x200 32k-color (1:5:5:5)"
459
460config FRAMEBUFFER_VESA_MODE_10E
461 bool "320x200 64k-color (5:6:5)"
462
463config FRAMEBUFFER_VESA_MODE_10F
464 bool "320x200 16.8M-color (8:8:8)"
465
466config FRAMEBUFFER_VESA_MODE_110
467 bool "640x480 32k-color (1:5:5:5)"
468
469config FRAMEBUFFER_VESA_MODE_111
470 bool "640x480 64k-color (5:6:5)"
471
472config FRAMEBUFFER_VESA_MODE_112
473 bool "640x480 16.8M-color (8:8:8)"
474
475config FRAMEBUFFER_VESA_MODE_113
476 bool "800x600 32k-color (1:5:5:5)"
477
478config FRAMEBUFFER_VESA_MODE_114
479 bool "800x600 64k-color (5:6:5)"
480
481config FRAMEBUFFER_VESA_MODE_115
482 bool "800x600 16.8M-color (8:8:8)"
483
484config FRAMEBUFFER_VESA_MODE_116
485 bool "1024x768 32k-color (1:5:5:5)"
486
487config FRAMEBUFFER_VESA_MODE_117
488 bool "1024x768 64k-color (5:6:5)"
489
490config FRAMEBUFFER_VESA_MODE_118
491 bool "1024x768 16.8M-color (8:8:8)"
492
493config FRAMEBUFFER_VESA_MODE_119
494 bool "1280x1024 32k-color (1:5:5:5)"
495
496config FRAMEBUFFER_VESA_MODE_11A
497 bool "1280x1024 64k-color (5:6:5)"
498
499config FRAMEBUFFER_VESA_MODE_11B
500 bool "1280x1024 16.8M-color (8:8:8)"
501
502config FRAMEBUFFER_VESA_MODE_USER
503 bool "Manually select VESA mode"
Ronald G. Minnich69efaa02013-02-26 10:07:40 -0800504 depends on !MAINBOARD_DO_NATIVE_VGA_INIT
Stefan Reinauer95a63962012-11-13 17:00:01 -0800505
506endchoice
507
508# Map the config names to an integer (KB).
509config FRAMEBUFFER_VESA_MODE
510 prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
511 hex
512 default 0x100 if FRAMEBUFFER_VESA_MODE_100
513 default 0x101 if FRAMEBUFFER_VESA_MODE_101
514 default 0x102 if FRAMEBUFFER_VESA_MODE_102
515 default 0x103 if FRAMEBUFFER_VESA_MODE_103
516 default 0x104 if FRAMEBUFFER_VESA_MODE_104
517 default 0x105 if FRAMEBUFFER_VESA_MODE_105
518 default 0x106 if FRAMEBUFFER_VESA_MODE_106
519 default 0x107 if FRAMEBUFFER_VESA_MODE_107
520 default 0x108 if FRAMEBUFFER_VESA_MODE_108
521 default 0x109 if FRAMEBUFFER_VESA_MODE_109
522 default 0x10A if FRAMEBUFFER_VESA_MODE_10A
523 default 0x10B if FRAMEBUFFER_VESA_MODE_10B
524 default 0x10C if FRAMEBUFFER_VESA_MODE_10C
525 default 0x10D if FRAMEBUFFER_VESA_MODE_10D
526 default 0x10E if FRAMEBUFFER_VESA_MODE_10E
527 default 0x10F if FRAMEBUFFER_VESA_MODE_10F
528 default 0x110 if FRAMEBUFFER_VESA_MODE_110
529 default 0x111 if FRAMEBUFFER_VESA_MODE_111
530 default 0x112 if FRAMEBUFFER_VESA_MODE_112
531 default 0x113 if FRAMEBUFFER_VESA_MODE_113
532 default 0x114 if FRAMEBUFFER_VESA_MODE_114
533 default 0x115 if FRAMEBUFFER_VESA_MODE_115
534 default 0x116 if FRAMEBUFFER_VESA_MODE_116
535 default 0x117 if FRAMEBUFFER_VESA_MODE_117
536 default 0x118 if FRAMEBUFFER_VESA_MODE_118
537 default 0x119 if FRAMEBUFFER_VESA_MODE_119
538 default 0x11A if FRAMEBUFFER_VESA_MODE_11A
539 default 0x11B if FRAMEBUFFER_VESA_MODE_11B
540 default 0x117 if FRAMEBUFFER_VESA_MODE_USER
541
Nico Huber6d8266b2017-05-20 16:46:01 +0200542choice
543 prompt "Framebuffer mode"
544 default VGA_TEXT_FRAMEBUFFER
545
546config VGA_TEXT_FRAMEBUFFER
547 bool "Legacy VGA text mode"
548 depends on HAVE_VGA_TEXT_FRAMEBUFFER
549 help
550 If this option is enabled, coreboot will initialize graphics in
551 legacy VGA text mode or, if a VGA BIOS is used and a VESA mode set,
552 switch to text mode before handing control to a payload.
553
554config VBE_LINEAR_FRAMEBUFFER
555 bool "VESA framebuffer"
556 depends on HAVE_VBE_LINEAR_FRAMEBUFFER
Stefan Reinauer95a63962012-11-13 17:00:01 -0800557 help
558 This option keeps the framebuffer mode set after coreboot finishes
559 execution. If this option is enabled, coreboot will pass a
560 framebuffer entry in its coreboot table and the payload will need a
Nico Huber6d8266b2017-05-20 16:46:01 +0200561 compatible driver.
562
563config GENERIC_LINEAR_FRAMEBUFFER
564 bool "Linear \"high-resolution\" framebuffer"
565 depends on HAVE_LINEAR_FRAMEBUFFER
566 help
567 This option enables a high-resolution, linear framebuffer. If this
568 option is enabled, coreboot will pass a framebuffer entry in its
569 coreboot table and the payload will need a compatible driver.
570
571endchoice
572
573# Workaround to have LINEAR_FRAMEBUFFER set in both cases
574# VBE_LINEAR_FRAMEBUFFER and GENERIC_LINEAR_FRAMEBUFFER.
575# `kconfig_lint` doesn't let us use the same name with
576# different texts in the choice above.
577config LINEAR_FRAMEBUFFER
578 def_bool y
579 depends on VBE_LINEAR_FRAMEBUFFER || GENERIC_LINEAR_FRAMEBUFFER
Stefan Reinauer95a63962012-11-13 17:00:01 -0800580
581config BOOTSPLASH
582 prompt "Show graphical bootsplash"
583 bool
584 depends on FRAMEBUFFER_SET_VESA_MODE
585 help
Daniele Forsi53847a22014-07-22 18:00:56 +0200586 This option shows a graphical bootsplash screen. The graphics are
Stefan Reinauer95a63962012-11-13 17:00:01 -0800587 loaded from the CBFS file bootsplash.jpg.
588
Konstantin Aladyshev6544cb32015-01-24 18:52:10 +0400589 You can either specify the location and file name of the
590 image in the 'General' section or add it manually to CBFS, using,
591 for example, cbfstool.
Daniele Forsi53847a22014-07-22 18:00:56 +0200592
Stefan Reinauer95a63962012-11-13 17:00:01 -0800593endmenu