src/: Replace GPL boilerplate with SPDX headers
[coreboot.git] / src / device / Kconfig
blob97eae506a389c3172af236287abd80e11e95a210
1 ##
2 ## This file is part of the coreboot project.
3 ##
4 ## SPDX-License-Identifier: GPL-2.0-only
6 menu "Devices"
8 config HAVE_VGA_TEXT_FRAMEBUFFER
9         bool
10         depends on !NO_GFX_INIT
11         help
12           Selected by graphics drivers that support legacy VGA text mode.
14 config HAVE_VBE_LINEAR_FRAMEBUFFER
15         bool
16         depends on !NO_GFX_INIT
17         help
18           Selected by graphics drivers that can set up a VBE linear-framebuffer
19           mode.
21 config HAVE_LINEAR_FRAMEBUFFER
22         bool
23         depends on !NO_GFX_INIT
24         help
25           Selected by graphics drivers that can set up a generic linear
26           framebuffer.
28 config HAVE_FSP_GOP
29         bool
30         help
31           Selected by drivers that support to run a blob that implements
32           the Graphics Output Protocol (GOP).
34 config MAINBOARD_NO_FSP_GOP
35         bool
36         help
37           Selected by mainboards that do not have any graphics ports connected to the SoC.
39 config MAINBOARD_HAS_NATIVE_VGA_INIT
40         def_bool n
41         help
42           Selected by mainboards / drivers that provide native graphics
43           init within coreboot.
45 config MAINBOARD_FORCE_NATIVE_VGA_INIT
46         def_bool n
47         depends on MAINBOARD_HAS_NATIVE_VGA_INIT || MAINBOARD_HAS_LIBGFXINIT
48         help
49           Selected by mainboards / chipsets whose graphics driver can't or
50           shouldn't be disabled.
52 config MAINBOARD_HAS_LIBGFXINIT
53         def_bool n
54         help
55           Selected by mainboards that implement support for `libgfxinit`.
56           Usually this requires a list of ports to be probed for displays.
58 choice
59         prompt "Graphics initialization"
60         default NO_GFX_INIT if VGA_BIOS && PAYLOAD_SEABIOS
61         default VGA_ROM_RUN if VGA_BIOS
62         default MAINBOARD_DO_NATIVE_VGA_INIT
63         default MAINBOARD_USE_LIBGFXINIT
64         default RUN_FSP_GOP if INTEL_GMA_HAVE_VBT
66 config MAINBOARD_DO_NATIVE_VGA_INIT
67         bool "Use native graphics init"
68         depends on MAINBOARD_HAS_NATIVE_VGA_INIT
69         help
70           Some mainboards, such as the Google Link, allow initializing the
71           display without the need of a binary only VGA OPROM. Enabling this
72           option may be faster, but also lacks flexibility in setting modes.
74 config MAINBOARD_USE_LIBGFXINIT
75         bool "Use libgfxinit"
76         depends on MAINBOARD_HAS_LIBGFXINIT
77         select HAVE_VGA_TEXT_FRAMEBUFFER
78         select HAVE_LINEAR_FRAMEBUFFER
79         select VGA if VGA_TEXT_FRAMEBUFFER
80         help
81           Use the SPARK library `libgfxinit` for the native graphics
82           initialization. This requires an Ada toolchain.
84 # TODO: Explain differences (if any) for onboard cards.
85 config VGA_ROM_RUN
86         bool "Run VGA Option ROMs"
87         depends on PCI && (ARCH_X86 || ARCH_PPC64) && !MAINBOARD_FORCE_NATIVE_VGA_INIT
88         select HAVE_VGA_TEXT_FRAMEBUFFER
89         help
90           Execute VGA Option ROMs in coreboot if found. This can be used
91           to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS
92           payload.
94           When using a SeaBIOS payload it runs all option ROMs with much
95           more complete BIOS interrupt services available than coreboot,
96           which some option ROMs require in order to function correctly.
98 config RUN_FSP_GOP
99         bool "Run a GOP driver"
100         depends on HAVE_FSP_GOP && !MAINBOARD_NO_FSP_GOP
101         select HAVE_LINEAR_FRAMEBUFFER
102         help
103           Some platforms (e.g. Intel Braswell and Skylake/Kaby Lake) support
104           to run a GOP blob. This option enables graphics initialization with
105           such a blob.
107 config NO_GFX_INIT
108         bool "None"
109         depends on !MAINBOARD_FORCE_NATIVE_VGA_INIT
110         help
111           Select this to not perform any graphics initialization in
112           coreboot. This is useful if the payload (e.g. SeaBIOS) can
113           initialize graphics or if pre-boot graphics are not required.
115 endchoice
117 config ONBOARD_VGA_IS_PRIMARY
118         bool "Use onboard VGA as primary video device"
119         default n
120         depends on PCI
121         help
122           This option lets you select which VGA device will be used
123           to decode legacy VGA cycles. Not all chipsets implement this
124           however. If not selected, the last adapter found will be used,
125           else the onboard adapter is used.
127 config S3_VGA_ROM_RUN
128         bool "Re-run VGA Option ROMs on S3 resume"
129         default y
130         depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
131         help
132           Execute VGA Option ROMs in coreboot when resuming from S3 suspend.
134           When using a SeaBIOS payload it runs all option ROMs with much
135           more complete BIOS interrupt services available than coreboot,
136           which some option ROMs require in order to function correctly.
138           If unsure, say N when using SeaBIOS as payload, Y otherwise.
140 config ALWAYS_LOAD_OPROM
141         def_bool n
142         depends on VGA_ROM_RUN
143         help
144           Always load option ROMs if any are found. The decision to run
145           the ROM is still determined at runtime, but the distinction
146           between loading and not running comes into play for CHROMEOS.
148           An example where this is required is that VBT (Video BIOS Tables)
149           are needed for the kernel's display driver to know how a piece of
150           hardware is configured to be used.
152 config ALWAYS_RUN_OPROM
153         def_bool n
154         depends on VGA_ROM_RUN && ALWAYS_LOAD_OPROM
155         help
156           Always uncondtionally run the option regardless of other
157           policies.
159 config ON_DEVICE_ROM_LOAD
160         bool "Load Option ROMs on PCI devices"
161         default n if PAYLOAD_SEABIOS
162         default y if !PAYLOAD_SEABIOS
163         depends on VGA_ROM_RUN
164         help
165           Load Option ROMs stored on PCI/PCIe/AGP VGA devices in coreboot.
167           If disabled, only Option ROMs stored in CBFS will be executed by
168           coreboot. If you are concerned about security, you might want to
169           disable this option, but it might leave your system in a state of
170           degraded functionality.
172           When using a SeaBIOS payload it runs all option ROMs with much
173           more complete BIOS interrupt services available than coreboot,
174           which some option ROMs require in order to function correctly.
176           If unsure, say N when using SeaBIOS as payload, Y otherwise.
178 choice
179         prompt "Option ROM execution type"
180         default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
181         default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
182         depends on VGA_ROM_RUN
184 config PCI_OPTION_ROM_RUN_REALMODE
185         prompt "Native mode"
186         bool
187         depends on ARCH_X86
188         help
189           If you select this option, PCI Option ROMs will be executed
190           natively on the CPU in real mode. No CPU emulation is involved,
191           so this is the fastest, but also the least secure option.
192           (only works on x86/x64 systems)
194 config PCI_OPTION_ROM_RUN_YABEL
195         prompt "Secure mode"
196         bool
197         help
198           If you select this option, the x86emu CPU emulator will be used to
199           execute PCI Option ROMs.
201           This option prevents Option ROMs from doing dirty tricks with the
202           system (such as installing SMM modules or hypervisors), but it is
203           also significantly slower than the native Option ROM initialization
204           method.
206           This is the default choice for non-x86 systems.
208 endchoice
210 config YABEL_PCI_ACCESS_OTHER_DEVICES
211         prompt "Allow Option ROMs to access other devices"
212         bool
213         depends on PCI_OPTION_ROM_RUN_YABEL
214         help
215           Per default, YABEL only allows Option ROMs to access the PCI device
216           that they are associated with. However, this causes trouble for some
217           onboard graphics chips whose Option ROM needs to reconfigure the
218           north bridge.
220 config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
221         prompt "Fake success on writing other device's config space"
222         bool
223         depends on YABEL_PCI_ACCESS_OTHER_DEVICES
224         help
225           By default, YABEL aborts when the Option ROM tries to write to other
226           devices' config spaces. With this option enabled, the write doesn't
227           follow through, but the Option ROM is allowed to go on.
228           This can create issues such as hanging Option ROMs (if it depends on
229           that other register changing to the written value), so test for
230           impact before using this option.
232 config YABEL_VIRTMEM_LOCATION
233         prompt "Location of YABEL's virtual memory"
234         hex
235         depends on PCI_OPTION_ROM_RUN_YABEL
236         default 0x1000000
237         help
238           YABEL requires 1MB memory for its CPU emulation. This memory is
239           normally located at 16MB.
241 config YABEL_DIRECTHW
242         prompt "Direct hardware access"
243         bool
244         depends on PCI_OPTION_ROM_RUN_YABEL && ARCH_X86
245         help
246           YABEL consists of two parts: It uses x86emu for the CPU emulation and
247           additionally provides a PC system emulation that filters bad device
248           and memory access (such as PCI config space access to other devices
249           than the initialized one).
251           When choosing this option, x86emu will pass through all hardware
252           accesses to memory and I/O devices to the underlying memory and I/O
253           addresses. While this option prevents Option ROMs from doing dirty
254           tricks with the CPU (such as installing SMM modules or hypervisors),
255           they can still access all devices in the system.
256           Enable this option for a good compromise between security and speed.
258 config MULTIPLE_VGA_ADAPTERS
259         bool
260         default n
262 menu "Display"
263         depends on HAVE_VGA_TEXT_FRAMEBUFFER || HAVE_LINEAR_FRAMEBUFFER
265 config FRAMEBUFFER_SET_VESA_MODE
266         prompt "Set framebuffer graphics resolution"
267         bool
268         default y if CHROMEOS
269         depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE
270         select HAVE_VBE_LINEAR_FRAMEBUFFER
271         help
272           Set VESA/native framebuffer mode (needed for bootsplash and graphical framebuffer console)
274 if FRAMEBUFFER_SET_VESA_MODE
276 choice
277         prompt "framebuffer graphics resolution"
278         default FRAMEBUFFER_VESA_MODE_118
279         help
280           This option sets the resolution used for the coreboot framebuffer (and
281           bootsplash screen).
283 config FRAMEBUFFER_VESA_MODE_100
284         bool "640x400 256-color"
286 config FRAMEBUFFER_VESA_MODE_101
287         bool "640x480 256-color"
289 config FRAMEBUFFER_VESA_MODE_102
290         bool "800x600 16-color"
292 config FRAMEBUFFER_VESA_MODE_103
293         bool "800x600 256-color"
295 config FRAMEBUFFER_VESA_MODE_104
296         bool "1024x768 16-color"
298 config FRAMEBUFFER_VESA_MODE_105
299         bool "1024x768 256-color"
301 config FRAMEBUFFER_VESA_MODE_106
302         bool "1280x1024 16-color"
304 config FRAMEBUFFER_VESA_MODE_107
305         bool "1280x1024 256-color"
307 config FRAMEBUFFER_VESA_MODE_108
308         bool "80x60 text"
310 config FRAMEBUFFER_VESA_MODE_109
311         bool "132x25 text"
313 config FRAMEBUFFER_VESA_MODE_10A
314         bool "132x43 text"
316 config FRAMEBUFFER_VESA_MODE_10B
317         bool "132x50 text"
319 config FRAMEBUFFER_VESA_MODE_10C
320         bool "132x60 text"
322 config FRAMEBUFFER_VESA_MODE_10D
323         bool "320x200 32k-color (1:5:5:5)"
325 config FRAMEBUFFER_VESA_MODE_10E
326         bool "320x200 64k-color (5:6:5)"
328 config FRAMEBUFFER_VESA_MODE_10F
329         bool "320x200 16.8M-color (8:8:8)"
331 config FRAMEBUFFER_VESA_MODE_110
332         bool "640x480 32k-color (1:5:5:5)"
334 config FRAMEBUFFER_VESA_MODE_111
335         bool "640x480 64k-color (5:6:5)"
337 config FRAMEBUFFER_VESA_MODE_112
338         bool "640x480 16.8M-color (8:8:8)"
340 config FRAMEBUFFER_VESA_MODE_113
341         bool "800x600 32k-color (1:5:5:5)"
343 config FRAMEBUFFER_VESA_MODE_114
344         bool "800x600 64k-color (5:6:5)"
346 config FRAMEBUFFER_VESA_MODE_115
347         bool "800x600 16.8M-color (8:8:8)"
349 config FRAMEBUFFER_VESA_MODE_116
350         bool "1024x768 32k-color (1:5:5:5)"
352 config FRAMEBUFFER_VESA_MODE_117
353         bool "1024x768 64k-color (5:6:5)"
355 config FRAMEBUFFER_VESA_MODE_118
356         bool "1024x768 16.8M-color (8:8:8)"
358 config FRAMEBUFFER_VESA_MODE_119
359         bool "1280x1024 32k-color (1:5:5:5)"
361 config FRAMEBUFFER_VESA_MODE_11A
362         bool "1280x1024 64k-color (5:6:5)"
364 config FRAMEBUFFER_VESA_MODE_11B
365         bool "1280x1024 16.8M-color (8:8:8)"
367 config FRAMEBUFFER_VESA_MODE_USER
368         bool "Manually select VESA mode"
370 endchoice
372 # Map the config names to an integer (KB).
373 config FRAMEBUFFER_VESA_MODE
374         prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
375         hex
376         default 0x100 if FRAMEBUFFER_VESA_MODE_100
377         default 0x101 if FRAMEBUFFER_VESA_MODE_101
378         default 0x102 if FRAMEBUFFER_VESA_MODE_102
379         default 0x103 if FRAMEBUFFER_VESA_MODE_103
380         default 0x104 if FRAMEBUFFER_VESA_MODE_104
381         default 0x105 if FRAMEBUFFER_VESA_MODE_105
382         default 0x106 if FRAMEBUFFER_VESA_MODE_106
383         default 0x107 if FRAMEBUFFER_VESA_MODE_107
384         default 0x108 if FRAMEBUFFER_VESA_MODE_108
385         default 0x109 if FRAMEBUFFER_VESA_MODE_109
386         default 0x10A if FRAMEBUFFER_VESA_MODE_10A
387         default 0x10B if FRAMEBUFFER_VESA_MODE_10B
388         default 0x10C if FRAMEBUFFER_VESA_MODE_10C
389         default 0x10D if FRAMEBUFFER_VESA_MODE_10D
390         default 0x10E if FRAMEBUFFER_VESA_MODE_10E
391         default 0x10F if FRAMEBUFFER_VESA_MODE_10F
392         default 0x110 if FRAMEBUFFER_VESA_MODE_110
393         default 0x111 if FRAMEBUFFER_VESA_MODE_111
394         default 0x112 if FRAMEBUFFER_VESA_MODE_112
395         default 0x113 if FRAMEBUFFER_VESA_MODE_113
396         default 0x114 if FRAMEBUFFER_VESA_MODE_114
397         default 0x115 if FRAMEBUFFER_VESA_MODE_115
398         default 0x116 if FRAMEBUFFER_VESA_MODE_116
399         default 0x117 if FRAMEBUFFER_VESA_MODE_117
400         default 0x118 if FRAMEBUFFER_VESA_MODE_118
401         default 0x119 if FRAMEBUFFER_VESA_MODE_119
402         default 0x11A if FRAMEBUFFER_VESA_MODE_11A
403         default 0x11B if FRAMEBUFFER_VESA_MODE_11B
404         default 0x118 if FRAMEBUFFER_VESA_MODE_USER
405 endif # FRAMEBUFFER_SET_VESA_MODE
407 choice
408         prompt "Framebuffer mode"
409         default VBE_LINEAR_FRAMEBUFFER if HAVE_VBE_LINEAR_FRAMEBUFFER && CHROMEOS
410         default GENERIC_LINEAR_FRAMEBUFFER if HAVE_LINEAR_FRAMEBUFFER && CHROMEOS
411         default VBE_LINEAR_FRAMEBUFFER if HAVE_VBE_LINEAR_FRAMEBUFFER && PAYLOAD_TIANOCORE
412         default GENERIC_LINEAR_FRAMEBUFFER if HAVE_LINEAR_FRAMEBUFFER && PAYLOAD_TIANOCORE
413         default VGA_TEXT_FRAMEBUFFER
415 config VGA_TEXT_FRAMEBUFFER
416         bool "Legacy VGA text mode"
417         depends on HAVE_VGA_TEXT_FRAMEBUFFER
418         help
419           If this option is enabled, coreboot will initialize graphics in
420           legacy VGA text mode or, if a VGA BIOS is used and a VESA mode set,
421           switch to text mode before handing control to a payload.
423 config VBE_LINEAR_FRAMEBUFFER
424         bool "VESA framebuffer"
425         depends on HAVE_VBE_LINEAR_FRAMEBUFFER
426         help
427           This option keeps the framebuffer mode set after coreboot finishes
428           execution. If this option is enabled, coreboot will pass a
429           framebuffer entry in its coreboot table and the payload will need a
430           compatible driver.
432 config GENERIC_LINEAR_FRAMEBUFFER
433         bool "Linear \"high-resolution\" framebuffer"
434         depends on HAVE_LINEAR_FRAMEBUFFER
435         help
436           This option enables a high-resolution, linear framebuffer. If this
437           option is enabled, coreboot will pass a framebuffer entry in its
438           coreboot table and the payload will need a compatible driver.
440 endchoice
442 # Workaround to have LINEAR_FRAMEBUFFER set in both cases
443 # VBE_LINEAR_FRAMEBUFFER and GENERIC_LINEAR_FRAMEBUFFER.
444 # `kconfig_lint` doesn't let us use the same name with
445 # different texts in the choice above.
446 config LINEAR_FRAMEBUFFER
447         def_bool y
448         depends on VBE_LINEAR_FRAMEBUFFER || GENERIC_LINEAR_FRAMEBUFFER
450 config BOOTSPLASH
451         prompt "Show graphical bootsplash"
452         bool
453         depends on LINEAR_FRAMEBUFFER
454         help
455           This option shows a graphical bootsplash screen. The graphics are
456           loaded from the CBFS file bootsplash.jpg.
458           You can either specify the location and file name of the
459           image in the 'General' section or add it manually to CBFS, using,
460           for example, cbfstool.
462 config LINEAR_FRAMEBUFFER_MAX_WIDTH
463         int "Maximum width in pixels"
464         depends on LINEAR_FRAMEBUFFER && MAINBOARD_USE_LIBGFXINIT
465         default 2560
466         help
467           Set the maximum width of the framebuffer. This may help with
468           default fonts too tiny for high-resolution displays.
470 config LINEAR_FRAMEBUFFER_MAX_HEIGHT
471         int "Maximum height in pixels"
472         depends on LINEAR_FRAMEBUFFER && MAINBOARD_USE_LIBGFXINIT
473         default 1600
474         help
475           Set the maximum height of the framebuffer. This may help with
476           default fonts too tiny for high-resolution displays.
478 endmenu # "Display"
480 config PCI
481         bool
482         default n
484 if PCI
486 config NO_MMCONF_SUPPORT
487         bool
488         default n
490 config MMCONF_SUPPORT
491         bool
492         default !NO_MMCONF_SUPPORT
494 config HYPERTRANSPORT_PLUGIN_SUPPORT
495         bool
496         default n
498 config HT_CHAIN_UNITID_BASE
499         int
500         default 0
502 config HT_CHAIN_END_UNITID_BASE
503         int
504         default 0
506 config PCIX_PLUGIN_SUPPORT
507         bool
508         default y
510 config CARDBUS_PLUGIN_SUPPORT
511         bool
512         default y
514 config AZALIA_PLUGIN_SUPPORT
515         bool
516         default n
518 config PCIEXP_PLUGIN_SUPPORT
519         bool
520         default y
522 endif # PCI
524 if PCIEXP_PLUGIN_SUPPORT
526 config PCIEXP_COMMON_CLOCK
527         prompt "Enable PCIe Common Clock"
528         bool
529         default n
530         help
531           Detect and enable Common Clock on PCIe links.
533 config PCIEXP_ASPM
534         prompt "Enable PCIe ASPM"
535         bool
536         default n
537         help
538           Detect and enable ASPM (Active State Power Management) on PCIe links.
540 config PCIEXP_CLK_PM
541         prompt "Enable PCIe Clock Power Management"
542         bool
543         default n
544         help
545           Detect and enable Clock Power Management on PCIe.
547 config PCIEXP_L1_SUB_STATE
548         prompt "Enable PCIe ASPM L1 SubState"
549         bool
550         depends on (MMCONF_SUPPORT || PCI_IO_CFG_EXT)
551         default n
552         help
553           Detect and enable ASPM on PCIe links.
555 config PCIEXP_HOTPLUG
556         prompt "Enable PCIe Hotplug Support"
557         bool
558         default n
559         help
560           Allocate resources for PCIe hotplug bridges
562 if PCIEXP_HOTPLUG
564 config PCIEXP_HOTPLUG_BUSES
565         int "PCI Express Hotplug Buses"
566         default 32
567         help
568           This is the number of buses allocated for hotplug PCI express
569           bridges, for use by hotplugged child devices. The default is 32
570           buses.
572 config PCIEXP_HOTPLUG_MEM
573         hex "PCI Express Hotplug Memory"
574         default 0x800000
575         help
576           This is the amount of memory space, in bytes, to allocate to
577           hotplug PCI express bridges, for use by hotplugged child devices.
578           This size should be page-aligned. The default is 8 MiB.
580 config PCIEXP_HOTPLUG_PREFETCH_MEM
581         hex "PCI Express Hotplug Prefetch Memory"
582         default 0x10000000
583         help
584           This is the amount of pre-fetchable memory space, in bytes, to
585           allocate to hot-plug PCI express bridges, for use by hotplugged
586           child devices. This size should be page-aligned. The default is
587           256 MiB.
589 config PCIEXP_HOTPLUG_IO
590         hex "PCI Express Hotplug I/O Space"
591         default 0x2000
592         help
593           This is the amount of I/O space to allocate to hot-plug PCI
594           express bridges, for use by hotplugged child devices. The default
595           is 8 KiB.
597 endif # PCIEXP_HOTPLUG
599 endif # PCIEXP_PLUGIN_SUPPORT
601 config EARLY_PCI_BRIDGE
602         bool "Early PCI bridge"
603         depends on PCI
604         default n
605         help
606           While coreboot is executing code from ROM, the coreboot resource
607           allocator has not been running yet. Hence PCI devices living behind
608           a bridge are not yet visible to the system.
610           This option enables static configuration for a single pre-defined
611           PCI bridge function on bus 0.
613 if EARLY_PCI_BRIDGE
615 config EARLY_PCI_BRIDGE_DEVICE
616         hex "bridge device"
617         default 0x0
619 config EARLY_PCI_BRIDGE_FUNCTION
620         hex "bridge function"
621         default 0x0
623 config EARLY_PCI_MMIO_BASE
624         hex "MMIO window base"
625         default 0x0
627 endif # EARLY_PCI_BRIDGE
629 config SUBSYSTEM_VENDOR_ID
630         hex "Override PCI Subsystem Vendor ID"
631         depends on PCI
632         default 0x0000
633         help
634           This config option will override the devicetree settings for
635           PCI Subsystem Vendor ID.
637 config SUBSYSTEM_DEVICE_ID
638         hex "Override PCI Subsystem Device ID"
639         depends on PCI
640         default 0x0000
641         help
642           This config option will override the devicetree settings for
643           PCI Subsystem Device ID.
645 config VGA_BIOS
646         bool "Add a VGA BIOS image"
647         depends on ARCH_X86
648         help
649           Select this option if you have a VGA BIOS image that you would
650           like to add to your ROM.
652           You will be able to specify the location and file name of the
653           image later.
655 config VGA_BIOS_FILE
656         string "VGA BIOS path and filename"
657         depends on VGA_BIOS
658         default "vgabios.bin"
659         help
660           The path and filename of the file to use as VGA BIOS.
662 config VGA_BIOS_ID
663         string "VGA device PCI IDs"
664         depends on VGA_BIOS
665         default "1106,3230"
666         help
667           The comma-separated PCI vendor and device ID with optional revision if that
668           feature is enabled that would associate your vBIOS to your video card.
670           Example: 1106,3230 or 1106,3230,a3
672           In the above example 1106 is the PCI vendor ID (in hex, but without
673           the "0x" prefix) and 3230 specifies the PCI device ID of the
674           video card (also in hex, without "0x" prefix). a3 specifies the revision.
676           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
678 config VGA_BIOS_SECOND
679         bool "Add a 2nd video BIOS image"
680         depends on ARCH_X86 && VGA_BIOS
681         help
682           Select this option if you have a 2nd video BIOS image that you would
683           like to add to your ROM.
685 config VGA_BIOS_SECOND_FILE
686         string "2nd video BIOS path and filename"
687         depends on VGA_BIOS_SECOND
688         default "vbios2.bin"
689         help
690           The path and filename of the file to use as video BIOS.
692 config VGA_BIOS_SECOND_ID
693         string "Graphics device PCI IDs"
694         depends on VGA_BIOS_SECOND
695         help
696           The comma-separated PCI vendor and device ID with optional revision if that
697           feature is enabled that would associate your vBIOS to your video card.
699           Example: 1106,3230 or 1106,3230,a3
701           In the above example 1106 is the PCI vendor ID (in hex, but without
702           the "0x" prefix) and 3230 specifies the PCI device ID of the
703           video card (also in hex, without "0x" prefix). a3 specifies the revision.
705           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
707 config CHECK_REV_IN_OPROM_NAME
708         def_bool n
709         help
710           Select this in the platform BIOS or chipset if the option rom has a revision
711           that needs to be checked when searching CBFS.
713 config VGA_BIOS_DGPU
714         bool "Add a discrete VGA BIOS image"
715         depends on VGA_BIOS
716         help
717           Select this option if you have a VGA BIOS image for discrete GPU
718           that you would like to add to your ROM.
720           You will be able to specify the location and file name of the
721           image later.
723 config VGA_BIOS_DGPU_FILE
724         string "Discrete VGA BIOS path and filename"
725         depends on VGA_BIOS_DGPU
726         default "vgabios_dgpu.bin"
727         help
728           The path and filename of the file to use as VGA BIOS for discrete GPU.
730 config VGA_BIOS_DGPU_ID
731         string "Discrete VGA device PCI IDs"
732         depends on VGA_BIOS_DGPU
733         default "1002,6663"
734         help
735           The comma-separated PCI vendor and device ID that would associate
736           your VGA BIOS to your discrete video card.
738           Examples:
739               1002,6663 for HD 8570M
740               1002,6665 for R5 M230
742           In the above examples 1002 is the PCI vendor ID (in hex, but without
743           the "0x" prefix) and 6663 / 6665 specifies the PCI device ID of the
744           discrete video card (also in hex, without "0x" prefix).
746           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
748 config INTEL_GMA_HAVE_VBT
749         bool
750         help
751           Select this in the mainboard Kconfig to indicate the board has
752           a data.vbt file.
754 config INTEL_GMA_ADD_VBT
755         depends on SOC_INTEL_COMMON || CPU_INTEL_COMMON
756         bool "Add a Video BIOS Table (VBT) binary to CBFS"
757         default y if INTEL_GMA_HAVE_VBT
758         help
759           Add a VBT data file to CBFS. The VBT describes the integrated
760           GPU and connections, and is needed by the GOP driver integrated into
761           FSP and the OS driver in order to initialize the display.
763 config INTEL_GMA_VBT_FILE
764         string "VBT binary path and filename"
765         depends on INTEL_GMA_ADD_VBT
766         default "src/mainboard/$(MAINBOARDDIR)/variants/$(VARIANT_DIR)/data.vbt" \
767                 if INTEL_GMA_HAVE_VBT && VARIANT_DIR != ""
768         default "src/mainboard/$(MAINBOARDDIR)/data.vbt" if INTEL_GMA_HAVE_VBT
769         default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/vbt.bin"
770         help
771           The path and filename of the VBT binary.
773 config SOFTWARE_I2C
774         bool "Enable I2C controller emulation in software"
775         default n
776         help
777           This config option will enable code to override the i2c_transfer
778           routine with a (simple) software emulation of the protocol. This may
779           be useful for debugging or on platforms where a driver for the real
780           I2C controller is not (yet) available. The platform code needs to
781           provide bindings to manually toggle I2C lines.
783 endmenu