Per default, use SeaBIOS payload instead of no payload.
authorStefan Reinauer <stepan@coreboot.org>
Thu, 30 Dec 2010 17:39:50 +0000 (17:39 +0000)
committerStefan Reinauer <stepan@openbios.org>
Thu, 30 Dec 2010 17:39:50 +0000 (17:39 +0000)
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

Makefile
payloads/external/SeaBIOS/Makefile.inc [new file with mode: 0644]
src/Kconfig
src/arch/x86/Makefile.inc
util/abuild/abuild

index a61acdf9db387af202f39b2ed473c4f41ad259e3..80a859f81e351a52a79ac7947d0a13e253d28371 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/payloads/external/SeaBIOS/Makefile.inc b/payloads/external/SeaBIOS/Makefile.inc
new file mode 100644 (file)
index 0000000..120e796
--- /dev/null
@@ -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
index 6894a6a9257400264a59f141bab24219fc31fcf0..77546b05909ca35104705bc1c4e97aff7827ded6 100644 (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.
index f847f29caa3288df4799709548d85083ab15fde7..92c4f670ef8db8424ae63908ffcdb0d2fd0b678b 100644 (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)
+
index b44447bec41fb5c487a8467708b5985419c20756..365bacd2e705a7de707f60bf1d11e8caf1fcc929 100755 (executable)
@@ -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