mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
The reset value for NAND timings is the slowest possible for Flash interface. Implement optionally setting it to a different value inside the NAND device. Set it to appropriate values for Artec Group DBE61 and DBE62. This results in a roughly two times quicker read time as measured by hdparm for these boards. Because we can not cast to southbridge_amd_cs5536_nand_config if the board dts does not have an entry for the NAND device, this change proposes a method for reasonably clean way to only optionally compile in support for certain devices: If a board wants to support an optional device, its Kconfig entry can select that configuration. If it's optional even across the same board, it can expose a subconfig option of the board, that describes it and if chosen selects the device config. The source code for that device is conditionally compiled only if the Kconfig option gets enabled by the configuration for the board. A requirement is that if the board configuration can enable a device, it is contained in the boards dts file as well. A perhaps better long-term alternative for this could be making dtc generate preprocessor definitions for each device_configuration struct that it creates. Then the source code file is always enabled, but that file can be wrapped around a simple #ifdef check in its entirety. Conversion to the alternative approach from the short-term Kconfig approach proposed here should be relatively easy, as to not block inclusion of the Kconfig approach in the short term. Signed-off-by: Mart Raudsepp <mart.raudsepp@artecdesign.ee> Acked-by: Marc Jones <marcj303@gmail.com> git-svn-id: svn://coreboot.org/repository/coreboot-v3@1138 f3766cd6-281f-0410-b1cd-43a5c92072e9
244 lines
6.6 KiB
Text
244 lines
6.6 KiB
Text
##
|
|
## This file is part of the coreboot project.
|
|
##
|
|
## Copyright (C) 2006 Ronald G. Minnich <rminnich@gmail.com>
|
|
## Copyright (C) 2006 Segher Boessenkool <segher@kernel.crashing.org>
|
|
## Copyright (C) 2006-2007 Uwe Hermann <uwe@hermann-uwe.de>
|
|
## Copyright (C) 2006-2007 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.
|
|
##
|
|
## 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
|
|
##
|
|
|
|
#
|
|
# For a description of the syntax of this configuration file,
|
|
# see http://lxr.linux.no/source/Documentation/kbuild/kconfig-language.txt.
|
|
#
|
|
|
|
mainmenu "coreboot configuration"
|
|
|
|
menu "General setup"
|
|
|
|
config EXPERIMENTAL
|
|
bool "Prompt for development and/or incomplete code/mainboards"
|
|
help
|
|
Enable this option if you want to test development features or
|
|
incomplete/unsupported mainboards.
|
|
|
|
We do not make any guarantees about anything that is marked
|
|
as EXPERIMENTAL! You have been warned!
|
|
|
|
config EXPERT
|
|
bool "Expert mode"
|
|
help
|
|
This allows you to select certain advanced configuration options.
|
|
It is mainly intended for coreboot developers.
|
|
|
|
Warning: Only enable this option if you really know what you're
|
|
doing! You have been warned!
|
|
|
|
config LOCALVERSION
|
|
string "Local version - append to coreboot release"
|
|
help
|
|
Append an extra string to the end of the coreboot version.
|
|
|
|
config OPTION_TABLE
|
|
bool "CMOS Option Table"
|
|
default y
|
|
help
|
|
This option is used to determine whether the mainboard has
|
|
a battery backed up real time clock with CMOS NVRAM, or if you want
|
|
to use it.
|
|
|
|
config BEEPS
|
|
bool "Enable beeps upon certain coreboot events"
|
|
depends EXPERT
|
|
default n
|
|
help
|
|
Enable this option to make coreboot beep upon certain events.
|
|
|
|
config WHOLE_PROGRAM_COMPILE
|
|
bool "Enable whole-program optimizations (DANGEROUS)"
|
|
depends EXPERT && EXPERIMENTAL
|
|
help
|
|
Enable 'gcc -fwhole-program -combine' for select code.
|
|
Needs lots of annotation in stage1 and stage2.
|
|
Works for initram only.
|
|
This increases compile time (no parallel compilation possible
|
|
anymore) and compiler memory usage (up to a factor of 20) and
|
|
makes debugging really hard.
|
|
|
|
Requires at least gcc 4.2.x, but miscompilations may occur.
|
|
|
|
Say No.
|
|
If you are a Gentoo user, say NO!
|
|
|
|
endmenu
|
|
|
|
source mainboard/Kconfig
|
|
source arch/x86/Kconfig
|
|
source lib/Kconfig
|
|
source device/Kconfig
|
|
|
|
# These are used for internal purposes only:
|
|
|
|
# Buses:
|
|
config PCIX_SUPPORT
|
|
boolean
|
|
config PCIE_SUPPORT
|
|
boolean
|
|
config HYPERTRANSPORT_SUPPORT
|
|
boolean
|
|
config AGP_SUPPORT
|
|
boolean
|
|
config CARDBUS_SUPPORT
|
|
boolean
|
|
|
|
# Northbridges:
|
|
config NORTHBRIDGE_AMD_GEODELX
|
|
boolean
|
|
config NORTHBRIDGE_AMD_K8
|
|
select HYPERTRANSPORT_SUPPORT
|
|
boolean
|
|
config NORTHBRIDGE_INTEL_I440BXEMULATION
|
|
boolean
|
|
config NORTHBRIDGE_VIA_CN700
|
|
boolean
|
|
config NORTHBRIDGE_INTEL_I945
|
|
boolean
|
|
|
|
# Southbridges:
|
|
config SOUTHBRIDGE_AMD_CS5536
|
|
boolean
|
|
config SOUTHBRIDGE_INTEL_I82371EB
|
|
boolean
|
|
config SOUTHBRIDGE_NVIDIA_CK804
|
|
select PCIE_SUPPORT
|
|
boolean
|
|
config SOUTHBRIDGE_NVIDIA_MCP55
|
|
select PCIE_SUPPORT
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_AMD8151
|
|
select AGP_SUPPORT
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_AMD8132
|
|
select PCIX_SUPPORT
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_AMD8131
|
|
select PCIX_SUPPORT
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_AMD8111
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_SB600
|
|
boolean
|
|
config SOUTHBRIDGE_AMD_RS690
|
|
boolean
|
|
config SOUTHBRIDGE_VIA_VT8237
|
|
boolean
|
|
config SOUTHBRIDGE_INTEL_I82801GX
|
|
boolean
|
|
|
|
# Super I/Os:
|
|
config SUPERIO_WINBOND_W83627HF
|
|
boolean
|
|
config SUPERIO_WINBOND_W83627THG
|
|
boolean
|
|
config SUPERIO_FINTEK_F71805F
|
|
boolean
|
|
config SUPERIO_ITE_IT8716F
|
|
boolean
|
|
config SUPERIO_ITE_IT8712F
|
|
boolean
|
|
config SUPERIO_VIA_VT1211
|
|
boolean
|
|
|
|
# Other devices that may be optional for a board:
|
|
config DEVICE_AMD_CS5536_NAND
|
|
select SOUTHBRIDGE_AMD_CS5536
|
|
boolean
|
|
|
|
menu "Payload"
|
|
|
|
config PAYLOAD_ELF_LOADER
|
|
bool "Include ELF payload loader"
|
|
default n
|
|
help
|
|
This option allows an unparsed ELF paylaod to be added and loaded.
|
|
|
|
choice
|
|
prompt "Payload type"
|
|
default PAYLOAD_NONE
|
|
|
|
config PAYLOAD_ELF
|
|
bool "An ELF executable payload file"
|
|
help
|
|
Select this option if you have a payload image (an ELF file)
|
|
which coreboot should run as soon as the basic hardware
|
|
initialization is completed.
|
|
|
|
You will be able to specify the location and file name of the
|
|
payload image later.
|
|
|
|
config PAYLOAD_NONE
|
|
bool "No payload"
|
|
help
|
|
Select this option if you want to create an "empty" coreboot
|
|
ROM image for a certain mainboard, i.e. a coreboot ROM image
|
|
which does not yet contain a payload.
|
|
|
|
For such an image to be useful, you have to use the 'lar' tool
|
|
to add a payload to the ROM image later.
|
|
|
|
endchoice
|
|
|
|
config PAYLOAD_FILE
|
|
string "Payload path and filename"
|
|
depends PAYLOAD_ELF
|
|
default "payload.elf"
|
|
help
|
|
The path and filename of the ELF executable file to use as payload.
|
|
|
|
config PAYLOAD_NO_PREPARSE_ELF
|
|
bool "Add ELF without parsing and converting to LAR entries"
|
|
depends PAYLOAD_ELF && PAYLOAD_ELF_LOADER
|
|
default n
|
|
help
|
|
Until now, coreboot has used ELF for the payload. There are many
|
|
problems with this, not least being the inefficiency -- the ELF has
|
|
to be decompressed to memory and then the segments have to be
|
|
copied. Plus, lar can't see the segments in the ELF -- to see all
|
|
segments, you have to extract the ELF and run readelf on it.
|
|
|
|
There are problems with collisions of the decompressed ELF
|
|
location in memory and the segment locations in memory.
|
|
Finally, validation of the ELF is done at run time, once you have
|
|
flashed the FLASH and rebooted the machine. Boot time is really
|
|
not the time you want to find out your ELF payload is broken.
|
|
|
|
Without this option, coreboot will direct lar to break each ELF
|
|
segment into a LAR entry. ELF will not be used at all. Note that
|
|
(for now) coreboot is not backward compatible -- if you put an ELF
|
|
payload in, coreboot can not parse it. We hope to remove ELF
|
|
entirely in the future.
|
|
|
|
config ZERO_AFTER_PAYLOAD
|
|
bool "Zero fill lar after adding the payload"
|
|
depends PAYLOAD_ELF
|
|
default n
|
|
help
|
|
This option speeds booting but makes it so that no further files may
|
|
be added to the lar.
|
|
|
|
endmenu
|
|
|