mb/intel: Enable ALC711 Audio codec over SNDW0 link
[coreboot.git] / src / device / Kconfig
blob777f3f50d3ec755fa0ecac8701dd9812432a865f
1 ## SPDX-License-Identifier: GPL-2.0-only
3 menu "Devices"
5 config HAVE_VGA_TEXT_FRAMEBUFFER
6         bool
7         depends on !NO_GFX_INIT
8         help
9           Selected by graphics drivers that support legacy VGA text mode.
11 config HAVE_VBE_LINEAR_FRAMEBUFFER
12         bool
13         depends on !NO_GFX_INIT
14         help
15           Selected by graphics drivers that can set up a VBE linear-framebuffer
16           mode.
18 config HAVE_LINEAR_FRAMEBUFFER
19         bool
20         depends on !NO_GFX_INIT
21         help
22           Selected by graphics drivers that can set up a generic linear
23           framebuffer.
25 config HAVE_FSP_GOP
26         bool
27         help
28           Selected by drivers that support to run a blob that implements
29           the Graphics Output Protocol (GOP).
31 config MAINBOARD_NO_FSP_GOP
32         bool
33         help
34           Selected by mainboards that do not have any graphics ports connected to the SoC.
36 config MAINBOARD_HAS_NATIVE_VGA_INIT
37         def_bool n
38         help
39           Selected by mainboards / drivers that provide native graphics
40           init within coreboot.
42 config MAINBOARD_FORCE_NATIVE_VGA_INIT
43         def_bool n
44         depends on MAINBOARD_HAS_NATIVE_VGA_INIT || MAINBOARD_HAS_LIBGFXINIT
45         help
46           Selected by mainboards / chipsets whose graphics driver can't or
47           shouldn't be disabled.
49 config MAINBOARD_HAS_LIBGFXINIT
50         def_bool n
51         help
52           Selected by mainboards that implement support for `libgfxinit`.
53           Usually this requires a list of ports to be probed for displays.
55 choice
56         prompt "Graphics initialization"
57         default NO_GFX_INIT if VGA_BIOS && PAYLOAD_SEABIOS
58         default VGA_ROM_RUN if VGA_BIOS
59         default MAINBOARD_DO_NATIVE_VGA_INIT
60         default MAINBOARD_USE_LIBGFXINIT
61         default RUN_FSP_GOP if INTEL_GMA_HAVE_VBT
63 config MAINBOARD_DO_NATIVE_VGA_INIT
64         bool "Use native graphics init"
65         depends on MAINBOARD_HAS_NATIVE_VGA_INIT
66         help
67           Some mainboards, such as the Google Link, allow initializing the
68           display without the need of a binary only VGA OPROM. Enabling this
69           option may be faster, but also lacks flexibility in setting modes.
71 config MAINBOARD_USE_LIBGFXINIT
72         bool "Use libgfxinit"
73         depends on MAINBOARD_HAS_LIBGFXINIT
74         select HAVE_VGA_TEXT_FRAMEBUFFER
75         select HAVE_LINEAR_FRAMEBUFFER
76         select VGA if VGA_TEXT_FRAMEBUFFER
77         help
78           Use the SPARK library `libgfxinit` for the native graphics
79           initialization. This requires an Ada toolchain.
81 # TODO: Explain differences (if any) for onboard cards.
82 config VGA_ROM_RUN
83         bool "Run VGA Option ROMs"
84         depends on PCI && (ARCH_X86 || ARCH_PPC64) && !MAINBOARD_FORCE_NATIVE_VGA_INIT
85         select HAVE_VGA_TEXT_FRAMEBUFFER
86         help
87           Execute VGA Option ROMs in coreboot if found. This can be used
88           to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS
89           payload.
91           When using a SeaBIOS payload it runs all option ROMs with much
92           more complete BIOS interrupt services available than coreboot,
93           which some option ROMs require in order to function correctly.
95 config RUN_FSP_GOP
96         bool "Run a GOP driver"
97         depends on HAVE_FSP_GOP && !MAINBOARD_NO_FSP_GOP
98         select HAVE_LINEAR_FRAMEBUFFER
99         help
100           Some platforms (e.g. Intel Braswell and Skylake/Kaby Lake) support
101           to run a GOP blob. This option enables graphics initialization with
102           such a blob.
104 config NO_GFX_INIT
105         bool "None"
106         depends on !MAINBOARD_FORCE_NATIVE_VGA_INIT
107         help
108           Select this to not perform any graphics initialization in
109           coreboot. This is useful if the payload (e.g. SeaBIOS) can
110           initialize graphics or if pre-boot graphics are not required.
112 endchoice
114 config ONBOARD_VGA_IS_PRIMARY
115         bool "Use onboard VGA as primary video device"
116         default n
117         depends on PCI
118         help
119           This option lets you select which VGA device will be used
120           to decode legacy VGA cycles. Not all chipsets implement this
121           however. If not selected, the last adapter found will be used,
122           else the onboard adapter is used.
124 config S3_VGA_ROM_RUN
125         bool "Re-run VGA Option ROMs on S3 resume"
126         default y
127         depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
128         help
129           Execute VGA Option ROMs in coreboot when resuming from S3 suspend.
131           When using a SeaBIOS payload it runs all option ROMs with much
132           more complete BIOS interrupt services available than coreboot,
133           which some option ROMs require in order to function correctly.
135           If unsure, say N when using SeaBIOS as payload, Y otherwise.
137 config ALWAYS_LOAD_OPROM
138         def_bool n
139         depends on VGA_ROM_RUN
140         help
141           Always load option ROMs if any are found. The decision to run
142           the ROM is still determined at runtime, but the distinction
143           between loading and not running comes into play for CHROMEOS.
145           An example where this is required is that VBT (Video BIOS Tables)
146           are needed for the kernel's display driver to know how a piece of
147           hardware is configured to be used.
149 config ALWAYS_RUN_OPROM
150         def_bool n
151         depends on VGA_ROM_RUN && ALWAYS_LOAD_OPROM
152         help
153           Always uncondtionally run the option regardless of other
154           policies.
156 config ON_DEVICE_ROM_LOAD
157         bool "Load Option ROMs on PCI devices"
158         default n if PAYLOAD_SEABIOS
159         default y if !PAYLOAD_SEABIOS
160         depends on VGA_ROM_RUN
161         help
162           Load Option ROMs stored on PCI/PCIe/AGP VGA devices in coreboot.
164           If disabled, only Option ROMs stored in CBFS will be executed by
165           coreboot. If you are concerned about security, you might want to
166           disable this option, but it might leave your system in a state of
167           degraded functionality.
169           When using a SeaBIOS payload it runs all option ROMs with much
170           more complete BIOS interrupt services available than coreboot,
171           which some option ROMs require in order to function correctly.
173           If unsure, say N when using SeaBIOS as payload, Y otherwise.
175 choice
176         prompt "Option ROM execution type"
177         default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
178         default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
179         depends on VGA_ROM_RUN
181 config PCI_OPTION_ROM_RUN_REALMODE
182         prompt "Native mode"
183         bool
184         depends on ARCH_X86
185         help
186           If you select this option, PCI Option ROMs will be executed
187           natively on the CPU in real mode. No CPU emulation is involved,
188           so this is the fastest, but also the least secure option.
189           (only works on x86/x64 systems)
191 config PCI_OPTION_ROM_RUN_YABEL
192         prompt "Secure mode"
193         bool
194         help
195           If you select this option, the x86emu CPU emulator will be used to
196           execute PCI Option ROMs.
198           This option prevents Option ROMs from doing dirty tricks with the
199           system (such as installing SMM modules or hypervisors), but it is
200           also significantly slower than the native Option ROM initialization
201           method.
203           This is the default choice for non-x86 systems.
205 endchoice
207 config YABEL_PCI_ACCESS_OTHER_DEVICES
208         prompt "Allow Option ROMs to access other devices"
209         bool
210         depends on PCI_OPTION_ROM_RUN_YABEL
211         help
212           Per default, YABEL only allows Option ROMs to access the PCI device
213           that they are associated with. However, this causes trouble for some
214           onboard graphics chips whose Option ROM needs to reconfigure the
215           north bridge.
217 config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
218         prompt "Fake success on writing other device's config space"
219         bool
220         depends on YABEL_PCI_ACCESS_OTHER_DEVICES
221         help
222           By default, YABEL aborts when the Option ROM tries to write to other
223           devices' config spaces. With this option enabled, the write doesn't
224           follow through, but the Option ROM is allowed to go on.
225           This can create issues such as hanging Option ROMs (if it depends on
226           that other register changing to the written value), so test for
227           impact before using this option.
229 config YABEL_VIRTMEM_LOCATION
230         prompt "Location of YABEL's virtual memory"
231         hex
232         depends on PCI_OPTION_ROM_RUN_YABEL
233         default 0x1000000
234         help
235           YABEL requires 1MB memory for its CPU emulation. This memory is
236           normally located at 16MB.
238 config YABEL_DIRECTHW
239         prompt "Direct hardware access"
240         bool
241         depends on PCI_OPTION_ROM_RUN_YABEL && ARCH_X86
242         help
243           YABEL consists of two parts: It uses x86emu for the CPU emulation and
244           additionally provides a PC system emulation that filters bad device
245           and memory access (such as PCI config space access to other devices
246           than the initialized one).
248           When choosing this option, x86emu will pass through all hardware
249           accesses to memory and I/O devices to the underlying memory and I/O
250           addresses. While this option prevents Option ROMs from doing dirty
251           tricks with the CPU (such as installing SMM modules or hypervisors),
252           they can still access all devices in the system.
253           Enable this option for a good compromise between security and speed.
255 config MULTIPLE_VGA_ADAPTERS
256         bool
257         default n
259 menu "Display"
260         depends on HAVE_VGA_TEXT_FRAMEBUFFER || HAVE_LINEAR_FRAMEBUFFER
262 config FRAMEBUFFER_SET_VESA_MODE
263         prompt "Set framebuffer graphics resolution"
264         bool
265         default y if CHROMEOS
266         depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE
267         select HAVE_VBE_LINEAR_FRAMEBUFFER
268         help
269           Set VESA/native framebuffer mode (needed for bootsplash and graphical framebuffer console)
271 if FRAMEBUFFER_SET_VESA_MODE
273 choice
274         prompt "framebuffer graphics resolution"
275         default FRAMEBUFFER_VESA_MODE_118
276         help
277           This option sets the resolution used for the coreboot framebuffer (and
278           bootsplash screen).
280 config FRAMEBUFFER_VESA_MODE_100
281         bool "640x400 256-color"
283 config FRAMEBUFFER_VESA_MODE_101
284         bool "640x480 256-color"
286 config FRAMEBUFFER_VESA_MODE_102
287         bool "800x600 16-color"
289 config FRAMEBUFFER_VESA_MODE_103
290         bool "800x600 256-color"
292 config FRAMEBUFFER_VESA_MODE_104
293         bool "1024x768 16-color"
295 config FRAMEBUFFER_VESA_MODE_105
296         bool "1024x768 256-color"
298 config FRAMEBUFFER_VESA_MODE_106
299         bool "1280x1024 16-color"
301 config FRAMEBUFFER_VESA_MODE_107
302         bool "1280x1024 256-color"
304 config FRAMEBUFFER_VESA_MODE_108
305         bool "80x60 text"
307 config FRAMEBUFFER_VESA_MODE_109
308         bool "132x25 text"
310 config FRAMEBUFFER_VESA_MODE_10A
311         bool "132x43 text"
313 config FRAMEBUFFER_VESA_MODE_10B
314         bool "132x50 text"
316 config FRAMEBUFFER_VESA_MODE_10C
317         bool "132x60 text"
319 config FRAMEBUFFER_VESA_MODE_10D
320         bool "320x200 32k-color (1:5:5:5)"
322 config FRAMEBUFFER_VESA_MODE_10E
323         bool "320x200 64k-color (5:6:5)"
325 config FRAMEBUFFER_VESA_MODE_10F
326         bool "320x200 16.8M-color (8:8:8)"
328 config FRAMEBUFFER_VESA_MODE_110
329         bool "640x480 32k-color (1:5:5:5)"
331 config FRAMEBUFFER_VESA_MODE_111
332         bool "640x480 64k-color (5:6:5)"
334 config FRAMEBUFFER_VESA_MODE_112
335         bool "640x480 16.8M-color (8:8:8)"
337 config FRAMEBUFFER_VESA_MODE_113
338         bool "800x600 32k-color (1:5:5:5)"
340 config FRAMEBUFFER_VESA_MODE_114
341         bool "800x600 64k-color (5:6:5)"
343 config FRAMEBUFFER_VESA_MODE_115
344         bool "800x600 16.8M-color (8:8:8)"
346 config FRAMEBUFFER_VESA_MODE_116
347         bool "1024x768 32k-color (1:5:5:5)"
349 config FRAMEBUFFER_VESA_MODE_117
350         bool "1024x768 64k-color (5:6:5)"
352 config FRAMEBUFFER_VESA_MODE_118
353         bool "1024x768 16.8M-color (8:8:8)"
355 config FRAMEBUFFER_VESA_MODE_119
356         bool "1280x1024 32k-color (1:5:5:5)"
358 config FRAMEBUFFER_VESA_MODE_11A
359         bool "1280x1024 64k-color (5:6:5)"
361 config FRAMEBUFFER_VESA_MODE_11B
362         bool "1280x1024 16.8M-color (8:8:8)"
364 config FRAMEBUFFER_VESA_MODE_USER
365         bool "Manually select VESA mode"
367 endchoice
369 # Map the config names to an integer (KB).
370 config FRAMEBUFFER_VESA_MODE
371         prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
372         hex
373         default 0x100 if FRAMEBUFFER_VESA_MODE_100
374         default 0x101 if FRAMEBUFFER_VESA_MODE_101
375         default 0x102 if FRAMEBUFFER_VESA_MODE_102
376         default 0x103 if FRAMEBUFFER_VESA_MODE_103
377         default 0x104 if FRAMEBUFFER_VESA_MODE_104
378         default 0x105 if FRAMEBUFFER_VESA_MODE_105
379         default 0x106 if FRAMEBUFFER_VESA_MODE_106
380         default 0x107 if FRAMEBUFFER_VESA_MODE_107
381         default 0x108 if FRAMEBUFFER_VESA_MODE_108
382         default 0x109 if FRAMEBUFFER_VESA_MODE_109
383         default 0x10A if FRAMEBUFFER_VESA_MODE_10A
384         default 0x10B if FRAMEBUFFER_VESA_MODE_10B
385         default 0x10C if FRAMEBUFFER_VESA_MODE_10C
386         default 0x10D if FRAMEBUFFER_VESA_MODE_10D
387         default 0x10E if FRAMEBUFFER_VESA_MODE_10E
388         default 0x10F if FRAMEBUFFER_VESA_MODE_10F
389         default 0x110 if FRAMEBUFFER_VESA_MODE_110
390         default 0x111 if FRAMEBUFFER_VESA_MODE_111
391         default 0x112 if FRAMEBUFFER_VESA_MODE_112
392         default 0x113 if FRAMEBUFFER_VESA_MODE_113
393         default 0x114 if FRAMEBUFFER_VESA_MODE_114
394         default 0x115 if FRAMEBUFFER_VESA_MODE_115
395         default 0x116 if FRAMEBUFFER_VESA_MODE_116
396         default 0x117 if FRAMEBUFFER_VESA_MODE_117
397         default 0x118 if FRAMEBUFFER_VESA_MODE_118
398         default 0x119 if FRAMEBUFFER_VESA_MODE_119
399         default 0x11A if FRAMEBUFFER_VESA_MODE_11A
400         default 0x11B if FRAMEBUFFER_VESA_MODE_11B
401         default 0x118 if FRAMEBUFFER_VESA_MODE_USER
402 endif # FRAMEBUFFER_SET_VESA_MODE
404 config WANT_LINEAR_FRAMEBUFFER
405         bool
406         default y if CHROMEOS
407         default y if PAYLOAD_TIANOCORE
409 choice
410         prompt "Framebuffer mode"
411         default VBE_LINEAR_FRAMEBUFFER if HAVE_VBE_LINEAR_FRAMEBUFFER && WANT_LINEAR_FRAMEBUFFER
412         default GENERIC_LINEAR_FRAMEBUFFER if HAVE_LINEAR_FRAMEBUFFER && WANT_LINEAR_FRAMEBUFFER
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 config PCI_ALLOW_BUS_MASTER
523         bool "Allow coreboot to set optional PCI bus master bits"
524         default y
525         help
526           For security reasons, bus mastering should be enabled as late as
527           possible. In coreboot, it's usually not necessary and payloads
528           should only enable it for devices they use. Since not all payloads
529           enable bus mastering properly yet, this option gives some sort of
530           "backwards compatibility" and is enabled by default to keep the
531           traditional behaviour for now. This is currently necessary, for
532           instance, for libpayload based payloads as the drivers don't enable
533           bus mastering for PCI bridges.
535 if PCI_ALLOW_BUS_MASTER
537 config PCI_ALLOW_BUS_MASTER_ANY_DEVICE
538         bool "Any devices"
539         default y
540         help
541           Allow coreboot to enable PCI bus mastering for any device. The actual
542           selection of devices depends on the various PCI drivers in coreboot.
544 endif # PCI_ALLOW_BUS_MASTER
546 endif # PCI
548 if PCIEXP_PLUGIN_SUPPORT
550 config PCIEXP_COMMON_CLOCK
551         prompt "Enable PCIe Common Clock"
552         bool
553         default n
554         help
555           Detect and enable Common Clock on PCIe links.
557 config PCIEXP_ASPM
558         prompt "Enable PCIe ASPM"
559         bool
560         default n
561         help
562           Detect and enable ASPM (Active State Power Management) on PCIe links.
564 config PCIEXP_CLK_PM
565         prompt "Enable PCIe Clock Power Management"
566         bool
567         default n
568         help
569           Detect and enable Clock Power Management on PCIe.
571 config PCIEXP_L1_SUB_STATE
572         prompt "Enable PCIe ASPM L1 SubState"
573         bool
574         depends on (MMCONF_SUPPORT || PCI_IO_CFG_EXT)
575         default n
576         help
577           Detect and enable ASPM on PCIe links.
579 config PCIEXP_HOTPLUG
580         prompt "Enable PCIe Hotplug Support"
581         bool
582         default n
583         help
584           Allocate resources for PCIe hotplug bridges
586 if PCIEXP_HOTPLUG
588 config PCIEXP_HOTPLUG_BUSES
589         int "PCI Express Hotplug Buses"
590         default 32
591         help
592           This is the number of buses allocated for hotplug PCI express
593           bridges, for use by hotplugged child devices. The default is 32
594           buses.
596 config PCIEXP_HOTPLUG_MEM
597         hex "PCI Express Hotplug Memory"
598         default 0x800000
599         help
600           This is the amount of memory space, in bytes, to allocate to
601           hotplug PCI express bridges, for use by hotplugged child devices.
602           This size should be page-aligned. The default is 8 MiB.
604 config PCIEXP_HOTPLUG_PREFETCH_MEM
605         hex "PCI Express Hotplug Prefetch Memory"
606         default 0x10000000
607         help
608           This is the amount of pre-fetchable memory space, in bytes, to
609           allocate to hot-plug PCI express bridges, for use by hotplugged
610           child devices. This size should be page-aligned. The default is
611           256 MiB.
613 config PCIEXP_HOTPLUG_PREFETCH_MEM_ABOVE_4G
614         bool
615         depends on RESOURCE_ALLOCATOR_V4
616         default y if !PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G
617         default n
618         help
619           This enables prefetch memory allocation above 4G boundary for the
620           hotplug resources.
622 config PCIEXP_HOTPLUG_PREFETCH_MEM_BELOW_4G
623         bool "PCI Express Hotplug Prefetch Memory Allocation below 4G boundary"
624         default n
625         help
626           This enables prefetch memory allocation below 4G boundary for the
627           hotplug resources.
629 config PCIEXP_HOTPLUG_IO
630         hex "PCI Express Hotplug I/O Space"
631         default 0x2000
632         help
633           This is the amount of I/O space to allocate to hot-plug PCI
634           express bridges, for use by hotplugged child devices. The default
635           is 8 KiB.
637 endif # PCIEXP_HOTPLUG
639 endif # PCIEXP_PLUGIN_SUPPORT
641 config EARLY_PCI_BRIDGE
642         bool "Early PCI bridge"
643         depends on PCI
644         default n
645         help
646           While coreboot is executing code from ROM, the coreboot resource
647           allocator has not been running yet. Hence PCI devices living behind
648           a bridge are not yet visible to the system.
650           This option enables static configuration for a single pre-defined
651           PCI bridge function on bus 0.
653 if EARLY_PCI_BRIDGE
655 config EARLY_PCI_BRIDGE_DEVICE
656         hex "bridge device"
657         default 0x0
659 config EARLY_PCI_BRIDGE_FUNCTION
660         hex "bridge function"
661         default 0x0
663 config EARLY_PCI_MMIO_BASE
664         hex "MMIO window base"
665         default 0x0
667 endif # EARLY_PCI_BRIDGE
669 config SUBSYSTEM_VENDOR_ID
670         hex "Override PCI Subsystem Vendor ID"
671         depends on PCI
672         default 0x0000
673         help
674           This config option will override the devicetree settings for
675           PCI Subsystem Vendor ID.
677           Note: This option is not meant for a board's Kconfig; use the
678           devicetree setting `subsystemid` instead.
680 config SUBSYSTEM_DEVICE_ID
681         hex "Override PCI Subsystem Device ID"
682         depends on PCI
683         default 0x0000
684         help
685           This config option will override the devicetree settings for
686           PCI Subsystem Device ID.
688           Note: This option is not meant for a board's Kconfig; use the
689           devicetree setting `subsystemid` instead.
691 config VGA_BIOS
692         bool "Add a VGA BIOS image"
693         depends on ARCH_X86
694         help
695           Select this option if you have a VGA BIOS image that you would
696           like to add to your ROM.
698           You will be able to specify the location and file name of the
699           image later.
701 config VGA_BIOS_FILE
702         string "VGA BIOS path and filename"
703         depends on VGA_BIOS
704         default "vgabios.bin"
705         help
706           The path and filename of the file to use as VGA BIOS.
708 config VGA_BIOS_ID
709         string "VGA device PCI IDs"
710         depends on VGA_BIOS
711         default "1106,3230"
712         help
713           The comma-separated PCI vendor and device ID with optional revision if that
714           feature is enabled that would associate your vBIOS to your video card.
716           Example: 1106,3230 or 1106,3230,a3
718           In the above example 1106 is the PCI vendor ID (in hex, but without
719           the "0x" prefix) and 3230 specifies the PCI device ID of the
720           video card (also in hex, without "0x" prefix). a3 specifies the revision.
722           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
724 config VGA_BIOS_SECOND
725         bool "Add a 2nd video BIOS image"
726         depends on ARCH_X86 && VGA_BIOS
727         help
728           Select this option if you have a 2nd video BIOS image that you would
729           like to add to your ROM.
731 config VGA_BIOS_SECOND_FILE
732         string "2nd video BIOS path and filename"
733         depends on VGA_BIOS_SECOND
734         default "vbios2.bin"
735         help
736           The path and filename of the file to use as video BIOS.
738 config VGA_BIOS_SECOND_ID
739         string "Graphics device PCI IDs"
740         depends on VGA_BIOS_SECOND
741         help
742           The comma-separated PCI vendor and device ID with optional revision if that
743           feature is enabled that would associate your vBIOS to your video card.
745           Example: 1106,3230 or 1106,3230,a3
747           In the above example 1106 is the PCI vendor ID (in hex, but without
748           the "0x" prefix) and 3230 specifies the PCI device ID of the
749           video card (also in hex, without "0x" prefix). a3 specifies the revision.
751           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
753 config CHECK_REV_IN_OPROM_NAME
754         def_bool n
755         help
756           Select this in the platform BIOS or chipset if the option rom has a revision
757           that needs to be checked when searching CBFS.
759 config VGA_BIOS_DGPU
760         bool "Add a discrete VGA BIOS image"
761         depends on VGA_BIOS
762         help
763           Select this option if you have a VGA BIOS image for discrete GPU
764           that you would like to add to your ROM.
766           You will be able to specify the location and file name of the
767           image later.
769 config VGA_BIOS_DGPU_FILE
770         string "Discrete VGA BIOS path and filename"
771         depends on VGA_BIOS_DGPU
772         default "vgabios_dgpu.bin"
773         help
774           The path and filename of the file to use as VGA BIOS for discrete GPU.
776 config VGA_BIOS_DGPU_ID
777         string "Discrete VGA device PCI IDs"
778         depends on VGA_BIOS_DGPU
779         default "1002,6663"
780         help
781           The comma-separated PCI vendor and device ID that would associate
782           your VGA BIOS to your discrete video card.
784           Examples:
785               1002,6663 for HD 8570M
786               1002,6665 for R5 M230
788           In the above examples 1002 is the PCI vendor ID (in hex, but without
789           the "0x" prefix) and 6663 / 6665 specifies the PCI device ID of the
790           discrete video card (also in hex, without "0x" prefix).
792           Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
794 config INTEL_GMA_HAVE_VBT
795         bool
796         help
797           Select this in the mainboard Kconfig to indicate the board has
798           a data.vbt file.
800 config INTEL_GMA_ADD_VBT
801         depends on SOC_INTEL_COMMON || CPU_INTEL_COMMON
802         bool "Add a Video BIOS Table (VBT) binary to CBFS"
803         default y if INTEL_GMA_HAVE_VBT
804         help
805           Add a VBT data file to CBFS. The VBT describes the integrated
806           GPU and connections, and is needed by the GOP driver integrated into
807           FSP and the OS driver in order to initialize the display.
809 config INTEL_GMA_VBT_FILE
810         string "VBT binary path and filename"
811         depends on INTEL_GMA_ADD_VBT
812         default "src/mainboard/\$(MAINBOARDDIR)/variants/\$(VARIANT_DIR)/data.vbt" \
813                 if INTEL_GMA_HAVE_VBT && VARIANT_DIR != ""
814         default "src/mainboard/\$(MAINBOARDDIR)/data.vbt" if INTEL_GMA_HAVE_VBT
815         default "3rdparty/blobs/mainboard/\$(MAINBOARDDIR)/vbt.bin"
816         help
817           The path and filename of the VBT binary.
819 config SOFTWARE_I2C
820         bool "Enable I2C controller emulation in software"
821         default n
822         help
823           This config option will enable code to override the i2c_transfer
824           routine with a (simple) software emulation of the protocol. This may
825           be useful for debugging or on platforms where a driver for the real
826           I2C controller is not (yet) available. The platform code needs to
827           provide bindings to manually toggle I2C lines.
829 config RESOURCE_ALLOCATOR_V3
830         bool
831         default n
832         help
833           This config option enables resource allocator v3 which performs
834           top down allocation of resources in a single MMIO window. This is the
835           old resource allocator meant to be used only until the broken AMD
836           chipsets are fixed. DO NOT USE THIS FOR ANY NEW CHIPSETS!
838 config RESOURCE_ALLOCATOR_V4
839         bool
840         default n if RESOURCE_ALLOCATOR_V3
841         default y if !RESOURCE_ALLOCATOR_V3
842         help
843           This config option enables resource allocator v4 which uses multiple
844           ranges for allocating resources. This allows allocation of resources
845           above 4G boundary as well.
847 config XHCI_UTILS
848         def_bool n
849         help
850           Provides xHCI utility functions.
852 endmenu