2009-08-12 17:00:51 +02:00
|
|
|
##
|
|
|
|
## This file is part of the coreboot project.
|
|
|
|
##
|
2010-02-22 05:33:13 +01:00
|
|
|
## Copyright (C) 2007-2010 coresystems GmbH
|
2009-08-12 17:00:51 +02:00
|
|
|
## (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
|
2010-02-16 00:10:19 +01:00
|
|
|
## the Free Software Foundation; version 2 of the License.
|
2009-08-12 17:00:51 +02:00
|
|
|
##
|
|
|
|
## 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.
|
|
|
|
##
|
|
|
|
## You should have received a copy of the GNU General Public License
|
|
|
|
## along with this program; if not, write to the Free Software
|
|
|
|
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
##
|
|
|
|
|
2009-09-17 18:54:46 +02:00
|
|
|
config VGA_BRIDGE_SETUP
|
|
|
|
bool "Setup bridges on path to VGA adapter"
|
|
|
|
default y
|
|
|
|
help
|
2009-10-07 18:15:40 +02:00
|
|
|
Allow bridges to set up legacy decoding ranges for VGA. Don't disable
|
2009-09-17 18:54:46 +02:00
|
|
|
this unless you're sure you don't want the briges setup for VGA.
|
|
|
|
|
2009-10-07 18:15:40 +02:00
|
|
|
# TODO: Explain differences (if any) for onboard cards.
|
2009-08-12 17:00:51 +02:00
|
|
|
config VGA_ROM_RUN
|
2009-10-07 18:15:40 +02:00
|
|
|
bool "Run VGA option ROMs"
|
|
|
|
default y
|
2009-08-12 17:00:51 +02:00
|
|
|
help
|
2009-10-07 18:15:40 +02:00
|
|
|
Execute VGA option ROMs, if found. This is required to enable
|
|
|
|
PCI/AGP/PCI-E video cards.
|
2009-08-12 17:00:51 +02:00
|
|
|
|
2009-08-28 16:36:12 +02:00
|
|
|
config PCI_ROM_RUN
|
2009-10-07 18:15:40 +02:00
|
|
|
bool "Run non-VGA option ROMs"
|
|
|
|
default y
|
2009-08-25 02:53:22 +02:00
|
|
|
help
|
2009-10-07 18:15:40 +02:00
|
|
|
Execute non-VGA PCI option ROMs, if found.
|
|
|
|
|
|
|
|
Examples include IDE/SATA controller option ROMs and option ROMs
|
|
|
|
for network cards (NICs).
|
2009-08-12 17:00:51 +02:00
|
|
|
|
2009-08-28 16:36:12 +02:00
|
|
|
choice
|
2009-10-07 18:15:40 +02:00
|
|
|
prompt "Option ROM execution type"
|
2010-01-31 22:46:12 +01:00
|
|
|
default PCI_OPTION_ROM_RUN_YABEL if !ARCH_X86
|
|
|
|
default PCI_OPTION_ROM_RUN_REALMODE if ARCH_X86
|
2009-08-28 16:36:12 +02:00
|
|
|
depends on PCI_ROM_RUN || VGA_ROM_RUN
|
2009-10-07 18:15:40 +02:00
|
|
|
|
|
|
|
config PCI_OPTION_ROM_RUN_REALMODE
|
2010-02-22 05:33:13 +01:00
|
|
|
prompt "Native mode"
|
2009-10-07 18:15:40 +02:00
|
|
|
bool
|
2010-01-31 22:46:12 +01:00
|
|
|
depends on ARCH_X86
|
2009-09-17 18:54:46 +02:00
|
|
|
help
|
2009-10-07 18:15:40 +02:00
|
|
|
If you select this option, PCI option ROMs will be executed
|
2010-01-31 22:46:12 +01:00
|
|
|
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)
|
2009-08-28 16:36:12 +02:00
|
|
|
|
2010-02-22 05:33:13 +01:00
|
|
|
config PCI_OPTION_ROM_RUN_YABEL
|
2010-02-22 17:41:49 +01:00
|
|
|
prompt "Secure mode"
|
2009-10-07 18:15:40 +02:00
|
|
|
bool
|
|
|
|
help
|
2010-01-31 22:46:12 +01:00
|
|
|
If you select this option, the x86emu CPU emulator will be used to
|
2010-02-22 05:33:13 +01:00
|
|
|
execute PCI option ROMs.
|
2010-02-22 17:41:49 +01:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2010-01-31 22:46:12 +01:00
|
|
|
This is the default choice for non-x86 systems.
|
2010-02-22 17:41:49 +01:00
|
|
|
|
2010-02-22 05:33:13 +01:00
|
|
|
endchoice
|
2009-08-28 16:36:12 +02:00
|
|
|
|
2010-02-22 05:33:13 +01:00
|
|
|
# TODO: Describe better, and/or make a "choice" selection for this.
|
|
|
|
config YABEL_DEBUG_FLAGS
|
|
|
|
prompt "Hex value for YABEL debug flags"
|
|
|
|
hex
|
|
|
|
default 0x0
|
|
|
|
depends on PCI_OPTION_ROM_RUN_YABEL
|
2009-10-07 18:15:40 +02:00
|
|
|
help
|
2010-02-22 17:41:49 +01:00
|
|
|
CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
|
2010-02-22 05:33:13 +01:00
|
|
|
to select the following items to debug. 1=on 0=off. After you
|
2010-02-22 17:41:49 +01:00
|
|
|
decide what you want to debug create the binary value, convert to
|
|
|
|
hex and set the option.
|
2010-02-22 05:33:13 +01:00
|
|
|
|
2010-02-22 17:41:49 +01:00
|
|
|
Example for "debug all":
|
|
|
|
CONFIG_YABEL_DEBUG_FLAGS = 0x31FF
|
|
|
|
|
|
|
|
|-DEBUG_JMP - Print info about JMP and RETF opcodes from x86emu
|
|
|
|
||-DEBUG_TRACE_X86EMU - Print _all_ opcodes that are executed by
|
|
|
|
|| x86emu (WARNING: this will produce a LOT
|
|
|
|
|| of output)
|
2010-02-22 05:33:13 +01:00
|
|
|
|||-Currently unused
|
|
|
|
||||-Currently unused
|
|
|
|
|||||-Currently unused
|
2010-02-22 17:41:49 +01:00
|
|
|
||||||-DEBUG_PNP - Print Plug And Play accesses made by option ROM
|
2010-02-22 05:33:13 +01:00
|
|
|
|||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
|
2010-02-22 17:41:49 +01:00
|
|
|
||||||||-DEBUG_PMM - Print messages related to POST Memory
|
|
|
|
|||||||| Manager (PMM)
|
|
|
|
|||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension
|
|
|
|
||||||||| (VBE) functions
|
|
|
|
||||||||||-DEBUG_PRINT_INT10 - Let INT10 (i.e. character output)
|
|
|
|
|||||||||| calls print messages to debug output
|
2010-02-22 05:33:13 +01:00
|
|
|
|||||||||||-DEBUG_INTR - Print messages related to interrupt handling
|
2010-02-22 17:41:49 +01:00
|
|
|
||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to
|
|
|
|
|||||||||||| accesses to certain areas of
|
|
|
|
|||||||||||| the virtual memory (e.g. BDA
|
|
|
|
|||||||||||| (BIOS Data Area) or interrupt
|
|
|
|
|||||||||||| vectors)
|
|
|
|
|||||||||||||-DEBUG_MEM - Print memory accesses made by option ROM
|
|
|
|
||||||||||||| (NOTE: this also includes accesses to
|
|
|
|
||||||||||||| fetch instructions)
|
|
|
|
||||||||||||||-DEBUG_IO - Print I/O accesses made by option ROM
|
|
|
|
11000111111111 - Maximum binary value, i.e. "debug all"
|
|
|
|
(WARNING: This could run for hours)
|
|
|
|
|
|
|
|
DEBUG_IO 0x0001
|
|
|
|
DEBUG_MEM 0x0002
|
|
|
|
DEBUG_CHECK_VMEM_ACCESS 0x0004
|
|
|
|
DEBUG_INTR 0x0008
|
|
|
|
DEBUG_PRINT_INT10 0x0010
|
|
|
|
DEBUG_VBE 0x0020
|
|
|
|
DEBUG_PMM 0x0040
|
|
|
|
DEBUG_DISK 0x0080
|
|
|
|
DEBUG_PNP 0x0100
|
|
|
|
DEBUG_TRACE_X86EMU 0x1000
|
|
|
|
DEBUG_JMP 0x2000
|
|
|
|
|
|
|
|
See debug.h for values. 0 is no debug output, 0x31ff is _verbose_.
|
2009-08-12 17:00:51 +02:00
|
|
|
|
2010-02-12 10:32:17 +01:00
|
|
|
config YABEL_PCI_ACCESS_OTHER_DEVICES
|
2010-02-22 17:41:49 +01:00
|
|
|
prompt "Allow option ROMs to access other devices"
|
2010-02-12 10:32:17 +01:00
|
|
|
bool
|
|
|
|
depends on PCI_OPTION_ROM_RUN_YABEL
|
|
|
|
help
|
2010-02-22 17:41:49 +01:00
|
|
|
Per default, YABEL only allows option ROMs to access the PCI device
|
2010-02-12 10:32:17 +01:00
|
|
|
that they are associated with. However, this causes trouble for some
|
2010-02-22 17:41:49 +01:00
|
|
|
onboard graphics chips whose option ROM needs to reconfigure the
|
|
|
|
north bridge.
|
2010-02-12 10:32:17 +01:00
|
|
|
|
|
|
|
config YABEL_VIRTMEM_LOCATION
|
|
|
|
prompt "Location of YABEL's virtual memory"
|
|
|
|
hex
|
2010-02-22 05:33:13 +01:00
|
|
|
depends on PCI_OPTION_ROM_RUN_YABEL && EXPERT
|
2010-02-12 10:32:17 +01:00
|
|
|
default 0x1000000
|
|
|
|
help
|
|
|
|
YABEL requires 1MB memory for its CPU emulation. This memory is
|
|
|
|
normally located at 16MB.
|
|
|
|
|
2010-02-22 05:33:13 +01:00
|
|
|
config YABEL_DIRECTHW
|
2010-02-22 17:41:49 +01:00
|
|
|
prompt "Direct hardware access"
|
2010-02-22 05:33:13 +01:00
|
|
|
bool
|
2009-08-28 16:36:12 +02:00
|
|
|
depends on PCI_OPTION_ROM_RUN_YABEL
|
2009-08-25 02:53:22 +02:00
|
|
|
help
|
2010-02-22 05:33:13 +01:00
|
|
|
YABEL consists of two parts: It uses x86emu for the CPU emulation and
|
2010-02-22 17:41:49 +01:00
|
|
|
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).
|
|
|
|
|
2010-02-22 05:33:13 +01:00
|
|
|
When choosing this option, x86emu will pass through all hardware
|
2010-02-22 17:41:49 +01:00
|
|
|
accesses to memory and I/O devices to the underlying memory and I/O
|
2010-02-22 05:33:13 +01:00
|
|
|
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.
|
|
|
|
|
2009-09-17 18:54:46 +02:00
|
|
|
config CONSOLE_VGA_MULTI
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
2009-08-28 16:23:38 +02:00
|
|
|
config PCI_64BIT_PREF_MEM
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
|
|
|
|
config HYPERTRANSPORT_PLUGIN_SUPPORT
|
|
|
|
bool
|
2009-09-24 17:09:11 +02:00
|
|
|
default n
|
2009-08-28 16:23:38 +02:00
|
|
|
|
|
|
|
config PCIX_PLUGIN_SUPPORT
|
|
|
|
bool
|
2009-09-22 23:29:32 +02:00
|
|
|
default y
|
2009-08-28 16:23:38 +02:00
|
|
|
|
|
|
|
config PCIEXP_PLUGIN_SUPPORT
|
|
|
|
bool
|
2009-09-22 23:29:32 +02:00
|
|
|
default y
|
2009-08-28 16:23:38 +02:00
|
|
|
|
|
|
|
config AGP_PLUGIN_SUPPORT
|
|
|
|
bool
|
2009-09-22 23:29:32 +02:00
|
|
|
default y
|
2009-08-28 16:23:38 +02:00
|
|
|
|
|
|
|
config CARDBUS_PLUGIN_SUPPORT
|
|
|
|
bool
|
2009-09-22 23:29:32 +02:00
|
|
|
default y
|