Per default, use SeaBIOS payload instead of no payload.

Add choice to use stable or master version of seabios repository

Signed-off-by: Stefan Reinauer <stepan@coreboot.org>
Acked-by: Stefan Reinauer <stepan@coreboot.org>



git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6223 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Stefan Reinauer 2010-12-30 17:39:50 +00:00 committed by Stefan Reinauer
parent d7ce71d58f
commit f1939bb29b
5 changed files with 82 additions and 4 deletions

View File

@ -363,6 +363,7 @@ clean-for-update: doxygen-clean
rm -f $(obj)/mainboard/$(MAINBOARDDIR)/bootblock.* $(obj)/mainboard/$(MAINBOARDDIR)/dsdt.*
rm -f $(obj)/cpu/x86/smm/smm_bin.c $(obj)/cpu/x86/smm/smm.* $(obj)/cpu/x86/smm/smm
rmdir -p $(alldirs) 2>/dev/null >/dev/null || true
make -C payloads/external/SeaBIOS clean
clean: clean-for-update
rm -f $(obj)/coreboot* .ccwrap

31
payloads/external/SeaBIOS/Makefile.inc vendored Normal file
View File

@ -0,0 +1,31 @@
TAG-$(CONFIG_SEABIOS_MASTER)=master
TAG-$(CONFIG_SEABIOS_STABLE)=0.6.1-stable
all: seabios
seabios: patch
cd seabios; $(MAKE) CC="$(CC)" LD="$(LD)"
patch: checkout
test -r seabios/.patched || \
perl -pi -e "s,#define CONFIG_COREBOOT 0,#define CONFIG_COREBOOT 1,;" \
-e "s,#define CONFIG_DEBUG_SERIAL 0,#define CONFIG_DEBUG_SERIAL 1,;" \
-e "s,#define CONFIG_VGAHOOKS 0,#define CONFIG_VGAHOOKS 1,;" \
seabios/src/config.h
touch seabios/.patched
checkout:
echo "Checking out SeaBIOS $(TAG-y)"
test -d seabios && ( cd seabios; git pull ) || \
git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios
cd seabios; git checkout $(TAG-y)
clean:
test -d seabios && (cd seabios; $(MAKE) CC="$(CC)" LD="$(LD)" clean) || exit 0
distclean:
rm -rf seabios
.PHONY: seabios

View File

@ -333,7 +333,8 @@ menu "Payload"
choice
prompt "Add a payload"
default PAYLOAD_NONE
default PAYLOAD_NONE if !ARCH_X86
default PAYLOAD_SEABIOS if ARCH_X86
config PAYLOAD_NONE
bool "None"
@ -355,6 +356,31 @@ config PAYLOAD_ELF
You will be able to specify the location and file name of the
payload image later.
config PAYLOAD_SEABIOS
bool "SeaBIOS"
depends on ARCH_X86
help
Select this option if you want to build a coreboot image
with a SeaBIOS payload. If you don't know what this is
about, just leave it enabled.
See http://coreboot.org/Payloads for more information.
endchoice
choice
prompt "SeaBIOS version"
default SEABIOS_STABLE
depends on PAYLOAD_SEABIOS
config SEABIOS_STABLE
bool "stable"
help
Stable SeaBIOS version
config SEABIOS_MASTER
bool "master"
help
Newest SeaBIOS version
endchoice
config PAYLOAD_FILE
@ -364,11 +390,15 @@ config PAYLOAD_FILE
help
The path and filename of the ELF executable file to use as payload.
config PAYLOAD_FILE
depends on PAYLOAD_SEABIOS
default "payloads/external/SeaBIOS/seabios/out/bios.bin.elf"
# TODO: Defined if no payload? Breaks build?
config COMPRESSED_PAYLOAD_LZMA
bool "Use LZMA compression for payloads"
default y
depends on PAYLOAD_ELF
depends on PAYLOAD_ELF || PAYLOAD_SEABIOS
help
In order to reduce the size payloads take up in the ROM chip
coreboot can compress them using the LZMA algorithm.

View File

@ -34,9 +34,12 @@ endif
#######################################################################
# Build the final rom image
COREBOOT_ROM_DEPENDENCIES:=
ifneq ($(CONFIG_PAYLOAD_NONE),y)
ifeq ($(CONFIG_PAYLOAD_ELF),y)
COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_PAYLOAD_FILE)
endif
ifeq ($(CONFIG_PAYLOAD_SEABIOS),y)
COREBOOT_ROM_DEPENDENCIES+=seabios
endif
ifeq ($(CONFIG_VGA_BIOS),y)
COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VGA_BIOS_FILE)
endif
@ -80,10 +83,15 @@ $(obj)/coreboot.rom: $(obj)/coreboot.pre $(obj)/coreboot_ram $(CBFSTOOL) $(call
$(CBFSTOOL) $@.tmp add-stage $(obj)/coreboot_ram $(CONFIG_CBFS_PREFIX)/coreboot_ram $(CBFS_COMPRESS_FLAG)
ifeq ($(CONFIG_PAYLOAD_NONE),y)
@printf " PAYLOAD \e[1;31mnone (as specified by user)\e[0m\n"
else
endif
ifeq ($(CONFIG_PAYLOAD_ELF),y)
@printf " PAYLOAD $(CONFIG_PAYLOAD_FILE) (compression: $(CBFS_PAYLOAD_COMPRESS_NAME))\n"
$(CBFSTOOL) $@.tmp add-payload $(CONFIG_PAYLOAD_FILE) $(CONFIG_CBFS_PREFIX)/payload $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
ifeq ($(CONFIG_PAYLOAD_SEABIOS),y)
@printf " PAYLOAD SeaBIOS (internal, compression: $(CBFS_PAYLOAD_COMPRESS_NAME))\n"
$(CBFSTOOL) $@.tmp add-payload $(CONFIG_PAYLOAD_FILE) $(CONFIG_CBFS_PREFIX)/payload $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
ifeq ($(CONFIG_VGA_BIOS),y)
@printf " VGABIOS $(CONFIG_VGA_BIOS_FILE) $(CONFIG_VGA_BIOS_ID)\n"
$(CBFSTOOL) $@.tmp add $(CONFIG_VGA_BIOS_FILE) "pci$(CONFIG_VGA_BIOS_ID).rom" optionrom
@ -272,3 +280,10 @@ include $(src)/arch/x86/Makefile.bootblock.inc
else
include $(src)/arch/x86/Makefile.bigbootblock.inc
endif
seabios:
$(MAKE) -C payloads/external/SeaBIOS -f Makefile.inc \
CC="$(CC)" LD="$(LD)" \
CONFIG_SEABIOS_MASTER=$(CONFIG_SEABIOS_MASTER) \
CONFIG_SEABIOS_STABLE=$(CONFIG_SEABIOS_STABLE)

View File

@ -175,6 +175,7 @@ function create_config
echo "CONFIG_CBFS_PREFIX=\"$cbfs_prefix\"" >> ${build_dir}/config.build
if [ "$PAYLOAD" != "/dev/null" ]; then
echo "# CONFIG_PAYLOAD_NONE is not set" >> ${build_dir}/config.build
echo "# CONFIG_PAYLOAD_SEABIOS is not set" >> ${build_dir}/config.build
echo "CONFIG_PAYLOAD_ELF=y" >> ${build_dir}/config.build
echo "CONFIG_PAYLOAD_FILE=\"$PAYLOAD\"" >> ${build_dir}/config.build
fi