##
## This file is part of the coreboot project.
##
-## Copyright (C) 2007 coresystems GmbH
+## 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
+## 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
# TODO: Explain differences (if any) for onboard cards.
config VGA_ROM_RUN
- bool "Run VGA option ROMs"
+ bool "Run VGA Option ROMs"
default y
help
- Execute VGA option ROMs, if found. This is required to enable
+ Execute VGA Option ROMs, if found. This is required to enable
PCI/AGP/PCI-E video cards.
+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 when coming out of an S3 resume.
+
config PCI_ROM_RUN
- bool "Run non-VGA option ROMs"
+ bool "Run non-VGA Option ROMs"
default y
help
- Execute non-VGA PCI option ROMs, if found.
+ Execute non-VGA PCI Option ROMs, if found.
- Examples include IDE/SATA controller option ROMs and option ROMs
+ Examples include IDE/SATA controller Option ROMs and Option ROMs
for network cards (NICs).
-# TODO: Describe YABEL vs. x86emu differences in more detail.
+config ON_DEVICE_ROM_RUN
+ bool "Run Option ROMs on PCI devices"
+ default y
+ help
+ Execute Option ROMs that are stored on PCI/PCIe/AGP devices.
+
+ If disabled, only Option ROMs stored in CBFS will be executed. 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.
+
+ If unsure, say Y
+
choice
prompt "Option ROM execution type"
- default PCI_OPTION_ROM_RUN_REALMODE
- depends on PCI_ROM_RUN || VGA_ROM_RUN
+ default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
+ default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
+ depends on PCI_ROM_RUN || VGA_ROM_RUN || GEODE_VSA
config PCI_OPTION_ROM_RUN_REALMODE
- prompt "Real mode"
+ prompt "Native mode"
bool
+ depends on ARCH_X86
help
- If you select this option, PCI option ROMs will be executed
- natively on the hardware (a 32bit x86 system is required).
+ 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 "YABEL"
+ prompt "Secure mode"
bool
+ depends on !GEODE_VSA
help
- If you select this option, the YABEL BIOS emulator will be used to
- execute PCI option ROMs.
+ 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.
-config PCI_OPTION_ROM_RUN_X86EMU
- prompt "x86emu"
+ 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
- If you select this option, the x86emu BIOS emulator will be used to
- execute PCI option ROMs.
+ 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.
-endchoice
+config YABEL_VIRTMEM_LOCATION
+ prompt "Location of YABEL's virtual memory"
+ hex
+ depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
+ default 0x1000000
+ help
+ YABEL requires 1MB memory for its CPU emulation. This memory is
+ normally located at 16MB.
-# TODO: Describe better, and/or make a "choice" selection for this.
-config YABEL_DEBUG_FLAGS
- prompt "Hex value for YABEL debug flags"
+config YABEL_VIRTMEM_LOCATION
hex
- default 0x0
+ depends on PCI_OPTION_ROM_RUN_YABEL && !EXPERT
+ default 0x1000000
+
+config YABEL_DIRECTHW
+ prompt "Direct hardware access"
+ bool
depends on PCI_OPTION_ROM_RUN_YABEL
help
- See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
-
-config CONSOLE_VGA_MULTI
+ 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 CARDBUS_PLUGIN_SUPPORT
bool
default y
+
+config PCIEXP_COMMON_CLOCK
+ prompt "Enable PCIe Common Clock"
+ bool
+ default n
+ help
+ Detect and enable Common Clock on PCIe links.
+
+config PCIEXP_ASPM
+ prompt "Enable PCIe ASPM"
+ bool
+ default n
+ help
+ Detect and enable ASPM on PCIe links.