mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
removed the ELF loader from coreboot v3. This adds a Kconfig option PAYLOAD_ELF_LOADER which builds the loader into v3. In order to make it a little safer, I changed PAYLOAD_PREPARSE_ELF to PAYLOAD_NO_PREPARSE_ELF and made that option depend on PAYLOAD_ELF_LOADER so that no one adds an unparsed ELF without the loader. One part that was strange to me was that I first tried adding elfboot.o and archelfboot.o to the beginning of the list of object files. I added them to the end of the list instead. Myles Signed-off-by: Myles Watson <mylesgw@gmail.com> Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> git-svn-id: svn://coreboot.org/repository/coreboot-v3@640 f3766cd6-281f-0410-b1cd-43a5c92072e9
166 lines
4.9 KiB
Text
166 lines
4.9 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 BEEPS
|
|
bool "Enable beeps upon certain coreboot events"
|
|
depends EXPERT
|
|
default n
|
|
help
|
|
Enable this option to make coreboot beep upon certain events.
|
|
|
|
endmenu
|
|
|
|
source mainboard/Kconfig
|
|
source arch/x86/Kconfig
|
|
source lib/Kconfig
|
|
source device/Kconfig
|
|
|
|
# These are used for internal purposes only:
|
|
|
|
# Northbridges:
|
|
config NORTHBRIDGE_AMD_GEODELX
|
|
boolean
|
|
config NORTHBRIDGE_INTEL_I440BXEMULATION
|
|
boolean
|
|
|
|
# Southbridges:
|
|
config SOUTHBRIDGE_AMD_CS5536
|
|
boolean
|
|
config SOUTHBRIDGE_INTEL_I82371EB
|
|
boolean
|
|
|
|
# Super I/Os:
|
|
config SUPERIO_WINBOND_W83627HF
|
|
boolean
|
|
config SUPERIO_FINTEK_F71805F
|
|
boolean
|
|
|
|
# Source all northbridge/southbridge/superio Kconfig files:
|
|
source northbridge/intel/i440bxemulation/Kconfig
|
|
|
|
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
|
|
|