560 lines
16 KiB
Plaintext
560 lines
16 KiB
Plaintext
##
|
|
## This file is part of the coreboot project.
|
|
##
|
|
## Copyright (C) 2007-2010 coresystems GmbH
|
|
## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
|
|
##
|
|
## This program is free software; you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation; version 2 of the License.
|
|
##
|
|
## This program is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
##
|
|
|
|
menu "Devices"
|
|
|
|
# Only set this in the mainboard
|
|
config MAINBOARD_HAS_NATIVE_VGA_INIT
|
|
bool
|
|
default n
|
|
|
|
# FIXME Ugly hack to allow Z9s driver native framebuffer configuration
|
|
config NATIVE_VGA_INIT_USE_EDID
|
|
bool
|
|
default n if DRIVERS_XGI_Z9S
|
|
default y if !DRIVERS_XGI_Z9S
|
|
|
|
config MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG
|
|
bool
|
|
default n
|
|
|
|
config MAINBOARD_DO_NATIVE_VGA_INIT
|
|
bool "Use native graphics initialization"
|
|
depends on MAINBOARD_HAS_NATIVE_VGA_INIT
|
|
default n
|
|
help
|
|
Some mainboards, such as the Google Link, allow initializing the display
|
|
without the need of a binary only VGA OPROM. Enabling this option may be
|
|
faster, but also lacks flexibility in setting modes.
|
|
|
|
If unsure, say N.
|
|
|
|
# TODO: Explain differences (if any) for onboard cards.
|
|
config VGA_ROM_RUN
|
|
bool "Run VGA Option ROMs"
|
|
default n if PAYLOAD_SEABIOS
|
|
default y if !PAYLOAD_SEABIOS
|
|
depends on PCI && !MAINBOARD_DO_NATIVE_VGA_INIT
|
|
help
|
|
Execute VGA Option ROMs in coreboot if found. This is required
|
|
to enable PCI/AGP/PCI-E video cards when not using a SeaBIOS
|
|
payload.
|
|
|
|
When using a SeaBIOS payload it runs all option ROMs with much
|
|
more complete BIOS interrupt services available than coreboot,
|
|
which some option ROMs require in order to function correctly.
|
|
|
|
If unsure, say N when using SeaBIOS as payload, Y otherwise.
|
|
|
|
config S3_VGA_ROM_RUN
|
|
bool "Re-run VGA Option ROMs on S3 resume"
|
|
default y
|
|
depends on VGA_ROM_RUN && HAVE_ACPI_RESUME
|
|
help
|
|
Execute VGA Option ROMs in coreboot when resuming from S3 suspend.
|
|
|
|
When using a SeaBIOS payload it runs all option ROMs with much
|
|
more complete BIOS interrupt services available than coreboot,
|
|
which some option ROMs require in order to function correctly.
|
|
|
|
If unsure, say N when using SeaBIOS as payload, Y otherwise.
|
|
|
|
config ALWAYS_LOAD_OPROM
|
|
def_bool n
|
|
depends on VGA_ROM_RUN
|
|
help
|
|
Always load option ROMs if any are found. The decision to run
|
|
the ROM is still determined at runtime, but the distinction
|
|
between loading and not running comes into play for CHROMEOS.
|
|
|
|
An example where this is required is that VBT (Video BIOS Tables)
|
|
are needed for the kernel's display driver to know how a piece of
|
|
hardware is configured to be used.
|
|
|
|
config ON_DEVICE_ROM_RUN
|
|
bool "Run Option ROMs on PCI devices"
|
|
default n if PAYLOAD_SEABIOS
|
|
default y if !PAYLOAD_SEABIOS
|
|
depends on PCI
|
|
help
|
|
Execute Option ROMs stored on PCI/PCIe/AGP devices in coreboot.
|
|
|
|
If disabled, only Option ROMs stored in CBFS will be executed by
|
|
coreboot. If you are concerned about security, you might want to
|
|
disable this option, but it might leave your system in a state of
|
|
degraded functionality.
|
|
|
|
When using a SeaBIOS payload it runs all option ROMs with much
|
|
more complete BIOS interrupt services available than coreboot,
|
|
which some option ROMs require in order to function correctly.
|
|
|
|
If unsure, say N when using SeaBIOS as payload, Y otherwise.
|
|
|
|
choice
|
|
prompt "Option ROM execution type"
|
|
default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
|
|
default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
|
|
depends on VGA_ROM_RUN || GEODE_VSA
|
|
|
|
config PCI_OPTION_ROM_RUN_REALMODE
|
|
prompt "Native mode"
|
|
bool
|
|
depends on ARCH_X86
|
|
help
|
|
If you select this option, PCI Option ROMs will be executed
|
|
natively on the CPU in real mode. No CPU emulation is involved,
|
|
so this is the fastest, but also the least secure option.
|
|
(only works on x86/x64 systems)
|
|
|
|
config PCI_OPTION_ROM_RUN_YABEL
|
|
prompt "Secure mode"
|
|
bool
|
|
depends on !GEODE_VSA
|
|
help
|
|
If you select this option, the x86emu CPU emulator will be used to
|
|
execute PCI Option ROMs.
|
|
|
|
This option prevents Option ROMs from doing dirty tricks with the
|
|
system (such as installing SMM modules or hypervisors), but it is
|
|
also significantly slower than the native Option ROM initialization
|
|
method.
|
|
|
|
This is the default choice for non-x86 systems.
|
|
|
|
endchoice
|
|
|
|
config YABEL_PCI_ACCESS_OTHER_DEVICES
|
|
prompt "Allow Option ROMs to access other devices"
|
|
bool
|
|
depends on PCI_OPTION_ROM_RUN_YABEL
|
|
help
|
|
Per default, YABEL only allows Option ROMs to access the PCI device
|
|
that they are associated with. However, this causes trouble for some
|
|
onboard graphics chips whose Option ROM needs to reconfigure the
|
|
north bridge.
|
|
|
|
config YABEL_PCI_FAKE_WRITING_OTHER_DEVICES_CONFIG
|
|
prompt "Fake success on writing other device's config space"
|
|
bool
|
|
depends on YABEL_PCI_ACCESS_OTHER_DEVICES
|
|
help
|
|
By default, YABEL aborts when the Option ROM tries to write to other
|
|
devices' config spaces. With this option enabled, the write doesn't
|
|
follow through, but the Option ROM is allowed to go on.
|
|
This can create issues such as hanging Option ROMs (if it depends on
|
|
that other register changing to the written value), so test for
|
|
impact before using this option.
|
|
|
|
config YABEL_VIRTMEM_LOCATION
|
|
prompt "Location of YABEL's virtual memory"
|
|
hex
|
|
depends on PCI_OPTION_ROM_RUN_YABEL
|
|
default 0x1000000
|
|
help
|
|
YABEL requires 1MB memory for its CPU emulation. This memory is
|
|
normally located at 16MB.
|
|
|
|
config YABEL_DIRECTHW
|
|
prompt "Direct hardware access"
|
|
bool
|
|
depends on PCI_OPTION_ROM_RUN_YABEL && ARCH_X86
|
|
help
|
|
YABEL consists of two parts: It uses x86emu for the CPU emulation and
|
|
additionally provides a PC system emulation that filters bad device
|
|
and memory access (such as PCI config space access to other devices
|
|
than the initialized one).
|
|
|
|
When choosing this option, x86emu will pass through all hardware
|
|
accesses to memory and I/O devices to the underlying memory and I/O
|
|
addresses. While this option prevents Option ROMs from doing dirty
|
|
tricks with the CPU (such as installing SMM modules or hypervisors),
|
|
they can still access all devices in the system.
|
|
Enable this option for a good compromise between security and speed.
|
|
|
|
config MULTIPLE_VGA_ADAPTERS
|
|
bool
|
|
default n
|
|
|
|
config SMBUS_HAS_AUX_CHANNELS
|
|
bool
|
|
default n
|
|
|
|
config SPD_CACHE
|
|
bool
|
|
default n
|
|
|
|
config PCI
|
|
bool
|
|
default n
|
|
|
|
config HYPERTRANSPORT_PLUGIN_SUPPORT
|
|
bool
|
|
depends on PCI
|
|
default n
|
|
|
|
config PCIX_PLUGIN_SUPPORT
|
|
bool
|
|
depends on PCI
|
|
default y
|
|
|
|
config PCIEXP_PLUGIN_SUPPORT
|
|
bool
|
|
depends on PCI
|
|
default y
|
|
|
|
config CARDBUS_PLUGIN_SUPPORT
|
|
bool
|
|
depends on PCI
|
|
default y
|
|
|
|
config AZALIA_PLUGIN_SUPPORT
|
|
bool
|
|
depends on PCI
|
|
default n
|
|
|
|
config PCIEXP_COMMON_CLOCK
|
|
prompt "Enable PCIe Common Clock"
|
|
bool
|
|
depends on PCIEXP_PLUGIN_SUPPORT
|
|
default n
|
|
help
|
|
Detect and enable Common Clock on PCIe links.
|
|
|
|
config PCIEXP_ASPM
|
|
prompt "Enable PCIe ASPM"
|
|
bool
|
|
depends on PCIEXP_PLUGIN_SUPPORT
|
|
default n
|
|
help
|
|
Detect and enable ASPM on PCIe links.
|
|
|
|
config PCIEXP_CLK_PM
|
|
prompt "Enable PCIe Clock Power Management"
|
|
bool
|
|
depends on PCIEXP_PLUGIN_SUPPORT
|
|
default n
|
|
help
|
|
Detect and enable Clock Power Management on PCIe.
|
|
|
|
config EARLY_PCI_BRIDGE
|
|
bool "Early PCI bridge"
|
|
depends on PCI
|
|
default n
|
|
help
|
|
While coreboot is executing code from ROM, the coreboot resource
|
|
allocator has not been running yet. Hence PCI devices living behind
|
|
a bridge are not yet visible to the system.
|
|
|
|
This option enables static configuration for a single pre-defined
|
|
PCI bridge function on bus 0.
|
|
|
|
config PCIEXP_L1_SUB_STATE
|
|
prompt "Enable PCIe ASPM L1 SubState"
|
|
bool
|
|
depends on PCIEXP_PLUGIN_SUPPORT && MMCONF_SUPPORT
|
|
default n
|
|
help
|
|
Detect and enable ASPM on PCIe links.
|
|
|
|
if EARLY_PCI_BRIDGE
|
|
|
|
config EARLY_PCI_BRIDGE_DEVICE
|
|
hex "bridge device"
|
|
default 0x0
|
|
|
|
config EARLY_PCI_BRIDGE_FUNCTION
|
|
hex "bridge function"
|
|
default 0x0
|
|
|
|
config EARLY_PCI_MMIO_BASE
|
|
hex "MMIO window base"
|
|
default 0x0
|
|
|
|
endif # EARLY_PCI_BRIDGE
|
|
|
|
config SUBSYSTEM_VENDOR_ID
|
|
hex "Override PCI Subsystem Vendor ID"
|
|
depends on PCI
|
|
default "0x0000"
|
|
help
|
|
This config option will override the devicetree settings for
|
|
PCI Subsystem Vendor ID.
|
|
|
|
config SUBSYSTEM_DEVICE_ID
|
|
hex "Override PCI Subsystem Device ID"
|
|
depends on PCI
|
|
default "0x0000"
|
|
help
|
|
This config option will override the devicetree settings for
|
|
PCI Subsystem Device ID.
|
|
|
|
config VGA_BIOS
|
|
bool "Add a VGA BIOS image"
|
|
help
|
|
Select this option if you have a VGA BIOS image that you would
|
|
like to add to your ROM.
|
|
|
|
You will be able to specify the location and file name of the
|
|
image later.
|
|
|
|
config VGA_BIOS_FILE
|
|
string "VGA BIOS path and filename"
|
|
depends on VGA_BIOS
|
|
default "vgabios.bin"
|
|
help
|
|
The path and filename of the file to use as VGA BIOS.
|
|
|
|
config VGA_BIOS_ID
|
|
string "VGA device PCI IDs"
|
|
depends on VGA_BIOS
|
|
default "1106,3230"
|
|
help
|
|
The comma-separated PCI vendor and device ID that would associate
|
|
your VGA BIOS to your video card.
|
|
|
|
Example: 1106,3230
|
|
|
|
In the above example 1106 is the PCI vendor ID (in hex, but without
|
|
the "0x" prefix) and 3230 specifies the PCI device ID of the
|
|
video card (also in hex, without "0x" prefix).
|
|
|
|
Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
|
|
|
|
config INTEL_MBI
|
|
bool "Add an MBI image"
|
|
depends on NORTHBRIDGE_INTEL_I82830
|
|
help
|
|
Select this option if you have an Intel MBI image that you would
|
|
like to add to your ROM.
|
|
|
|
You will be able to specify the location and file name of the
|
|
image later.
|
|
|
|
config MBI_FILE
|
|
string "Intel MBI path and filename"
|
|
depends on INTEL_MBI
|
|
default "mbi.bin"
|
|
help
|
|
The path and filename of the file to use as VGA BIOS.
|
|
|
|
config PXE_ROM
|
|
bool "Add a PXE ROM image"
|
|
help
|
|
Select this option if you have a PXE ROM image that you would
|
|
like to add to your ROM.
|
|
|
|
config PXE_ROM_FILE
|
|
string "PXE ROM filename"
|
|
depends on PXE_ROM
|
|
default "pxe.rom"
|
|
help
|
|
The path and filename of the file to use as PXE ROM.
|
|
|
|
config PXE_ROM_ID
|
|
string "network card PCI IDs"
|
|
depends on PXE_ROM
|
|
default "10ec,8168"
|
|
help
|
|
The comma-separated PCI vendor and device ID that would associate
|
|
your PXE ROM to your network card.
|
|
|
|
Example: 10ec,8168
|
|
|
|
In the above example 10ec is the PCI vendor ID (in hex, but without
|
|
the "0x" prefix) and 8168 specifies the PCI device ID of the
|
|
network card (also in hex, without "0x" prefix).
|
|
|
|
Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
|
|
|
|
config SOFTWARE_I2C
|
|
bool "Enable I2C controller emulation in software"
|
|
default n
|
|
help
|
|
This config option will enable code to override the i2c_transfer
|
|
routine with a (simple) software emulation of the protocol. This may
|
|
be useful for debugging or on platforms where a driver for the real
|
|
I2C controller is not (yet) available. The platform code needs to
|
|
provide bindings to manually toggle I2C lines.
|
|
|
|
endmenu
|
|
|
|
menu "Display"
|
|
depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE || MAINBOARD_DO_NATIVE_VGA_INIT
|
|
|
|
config FRAMEBUFFER_SET_VESA_MODE
|
|
prompt "Set framebuffer graphics resolution"
|
|
bool
|
|
depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE
|
|
help
|
|
Set VESA/native framebuffer mode (needed for bootsplash and graphical framebuffer console)
|
|
|
|
choice
|
|
prompt "framebuffer graphics resolution"
|
|
default FRAMEBUFFER_VESA_MODE_117
|
|
depends on FRAMEBUFFER_SET_VESA_MODE
|
|
help
|
|
This option sets the resolution used for the coreboot framebuffer (and
|
|
bootsplash screen).
|
|
|
|
config FRAMEBUFFER_VESA_MODE_100
|
|
bool "640x400 256-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_101
|
|
bool "640x480 256-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_102
|
|
bool "800x600 16-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_103
|
|
bool "800x600 256-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_104
|
|
bool "1024x768 16-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_105
|
|
bool "1024x768 256-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_106
|
|
bool "1280x1024 16-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_107
|
|
bool "1280x1024 256-color"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_108
|
|
bool "80x60 text"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_109
|
|
bool "132x25 text"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10A
|
|
bool "132x43 text"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10B
|
|
bool "132x50 text"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10C
|
|
bool "132x60 text"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10D
|
|
bool "320x200 32k-color (1:5:5:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10E
|
|
bool "320x200 64k-color (5:6:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_10F
|
|
bool "320x200 16.8M-color (8:8:8)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_110
|
|
bool "640x480 32k-color (1:5:5:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_111
|
|
bool "640x480 64k-color (5:6:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_112
|
|
bool "640x480 16.8M-color (8:8:8)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_113
|
|
bool "800x600 32k-color (1:5:5:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_114
|
|
bool "800x600 64k-color (5:6:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_115
|
|
bool "800x600 16.8M-color (8:8:8)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_116
|
|
bool "1024x768 32k-color (1:5:5:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_117
|
|
bool "1024x768 64k-color (5:6:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_118
|
|
bool "1024x768 16.8M-color (8:8:8)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_119
|
|
bool "1280x1024 32k-color (1:5:5:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_11A
|
|
bool "1280x1024 64k-color (5:6:5)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_11B
|
|
bool "1280x1024 16.8M-color (8:8:8)"
|
|
|
|
config FRAMEBUFFER_VESA_MODE_USER
|
|
bool "Manually select VESA mode"
|
|
depends on !MAINBOARD_DO_NATIVE_VGA_INIT
|
|
|
|
endchoice
|
|
|
|
# Map the config names to an integer (KB).
|
|
config FRAMEBUFFER_VESA_MODE
|
|
prompt "VESA mode" if FRAMEBUFFER_VESA_MODE_USER
|
|
hex
|
|
default 0x100 if FRAMEBUFFER_VESA_MODE_100
|
|
default 0x101 if FRAMEBUFFER_VESA_MODE_101
|
|
default 0x102 if FRAMEBUFFER_VESA_MODE_102
|
|
default 0x103 if FRAMEBUFFER_VESA_MODE_103
|
|
default 0x104 if FRAMEBUFFER_VESA_MODE_104
|
|
default 0x105 if FRAMEBUFFER_VESA_MODE_105
|
|
default 0x106 if FRAMEBUFFER_VESA_MODE_106
|
|
default 0x107 if FRAMEBUFFER_VESA_MODE_107
|
|
default 0x108 if FRAMEBUFFER_VESA_MODE_108
|
|
default 0x109 if FRAMEBUFFER_VESA_MODE_109
|
|
default 0x10A if FRAMEBUFFER_VESA_MODE_10A
|
|
default 0x10B if FRAMEBUFFER_VESA_MODE_10B
|
|
default 0x10C if FRAMEBUFFER_VESA_MODE_10C
|
|
default 0x10D if FRAMEBUFFER_VESA_MODE_10D
|
|
default 0x10E if FRAMEBUFFER_VESA_MODE_10E
|
|
default 0x10F if FRAMEBUFFER_VESA_MODE_10F
|
|
default 0x110 if FRAMEBUFFER_VESA_MODE_110
|
|
default 0x111 if FRAMEBUFFER_VESA_MODE_111
|
|
default 0x112 if FRAMEBUFFER_VESA_MODE_112
|
|
default 0x113 if FRAMEBUFFER_VESA_MODE_113
|
|
default 0x114 if FRAMEBUFFER_VESA_MODE_114
|
|
default 0x115 if FRAMEBUFFER_VESA_MODE_115
|
|
default 0x116 if FRAMEBUFFER_VESA_MODE_116
|
|
default 0x117 if FRAMEBUFFER_VESA_MODE_117
|
|
default 0x118 if FRAMEBUFFER_VESA_MODE_118
|
|
default 0x119 if FRAMEBUFFER_VESA_MODE_119
|
|
default 0x11A if FRAMEBUFFER_VESA_MODE_11A
|
|
default 0x11B if FRAMEBUFFER_VESA_MODE_11B
|
|
default 0x117 if FRAMEBUFFER_VESA_MODE_USER
|
|
|
|
config FRAMEBUFFER_KEEP_VESA_MODE
|
|
prompt "Keep VESA framebuffer"
|
|
bool
|
|
depends on PCI_OPTION_ROM_RUN_YABEL || PCI_OPTION_ROM_RUN_REALMODE || (MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG && MAINBOARD_DO_NATIVE_VGA_INIT)
|
|
help
|
|
This option keeps the framebuffer mode set after coreboot finishes
|
|
execution. If this option is enabled, coreboot will pass a
|
|
framebuffer entry in its coreboot table and the payload will need a
|
|
framebuffer driver. If this option is disabled, coreboot will switch
|
|
back to text mode before handing control to a payload.
|
|
|
|
config BOOTSPLASH
|
|
prompt "Show graphical bootsplash"
|
|
bool
|
|
depends on FRAMEBUFFER_SET_VESA_MODE
|
|
help
|
|
This option shows a graphical bootsplash screen. The graphics are
|
|
loaded from the CBFS file bootsplash.jpg.
|
|
|
|
You can either specify the location and file name of the
|
|
image in the 'General' section or add it manually to CBFS, using,
|
|
for example, cbfstool.
|
|
|
|
endmenu
|