Author: stepan Date: Thu Dec 30 18:39:50 2010 New Revision: 6223 URL: https://tracker.coreboot.org/trac/coreboot/changeset/6223
Log: 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
Added: trunk/payloads/external/SeaBIOS/ trunk/payloads/external/SeaBIOS/Makefile.inc Modified: trunk/Makefile trunk/src/Kconfig trunk/src/arch/x86/Makefile.inc trunk/util/abuild/abuild
Modified: trunk/Makefile ============================================================================== --- trunk/Makefile Thu Dec 30 17:57:58 2010 (r6222) +++ trunk/Makefile Thu Dec 30 18:39:50 2010 (r6223) @@ -363,6 +363,7 @@ 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
Added: trunk/payloads/external/SeaBIOS/Makefile.inc ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/payloads/external/SeaBIOS/Makefile.inc Thu Dec 30 18:39:50 2010 (r6223) @@ -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
Modified: trunk/src/Kconfig ============================================================================== --- trunk/src/Kconfig Thu Dec 30 17:57:58 2010 (r6222) +++ trunk/src/Kconfig Thu Dec 30 18:39:50 2010 (r6223) @@ -333,7 +333,8 @@
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 @@ 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 @@ 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.
Modified: trunk/src/arch/x86/Makefile.inc ============================================================================== --- trunk/src/arch/x86/Makefile.inc Thu Dec 30 17:57:58 2010 (r6222) +++ trunk/src/arch/x86/Makefile.inc Thu Dec 30 18:39:50 2010 (r6223) @@ -34,9 +34,12 @@ ####################################################################### # 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 @@ $(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 @@ 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) +
Modified: trunk/util/abuild/abuild ============================================================================== --- trunk/util/abuild/abuild Thu Dec 30 17:57:58 2010 (r6222) +++ trunk/util/abuild/abuild Thu Dec 30 18:39:50 2010 (r6223) @@ -175,6 +175,7 @@ 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