See patch
Today, if the user selects no payload at all, an image is created that will leave the system bricked when flashed. This patch adds an easy way of selecting SeaBIOS as a payload and makes it the default (instead of "no payload", which still exists as an option) Signed-off-by: Stefan Reinauer <[email protected]> Index: src/Kconfig =================================================================== --- src/Kconfig (revision 6205) +++ src/Kconfig (working copy) @@ -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,16 @@ 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 config PAYLOAD_FILE @@ -364,11 +375,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. Index: src/arch/x86/Makefile.inc =================================================================== --- src/arch/x86/Makefile.inc (revision 6205) +++ src/arch/x86/Makefile.inc (working copy) @@ -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) [email protected] 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) [email protected] 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) [email protected] 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) [email protected] add $(CONFIG_VGA_BIOS_FILE) "pci$(CONFIG_VGA_BIOS_ID).rom" optionrom @@ -272,3 +280,7 @@ else include $(src)/arch/x86/Makefile.bigbootblock.inc endif + +seabios: + $(MAKE) -C payloads/external/SeaBIOS CC="$(CC)" LD="$(LD)" + Index: payloads/external/SeaBIOS/Makefile =================================================================== --- payloads/external/SeaBIOS/Makefile (revision 0) +++ payloads/external/SeaBIOS/Makefile (revision 0) @@ -0,0 +1,25 @@ +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,;" \ + -e "s,#define CONFIG_AHCI 0,#define CONFIG_AHCI 1," \ + seabios/src/config.h + touch seabios/.patched + +checkout: + test -d seabios && ( cd seabios; git pull ) || \ + git clone git://git.linuxtogo.org/home/kevin/seabios.git seabios + +clean: + test -d seabios && (cd seabios; $(MAKE) CC="$(CC)" LD="$(LD)" clean) || exit 0 + +distclean: + rm -rf seabios + +.PHONY: seabios Index: util/abuild/abuild =================================================================== --- util/abuild/abuild (revision 6205) +++ util/abuild/abuild (working copy) @@ -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 Index: Makefile =================================================================== --- Makefile (revision 6205) +++ Makefile (working copy) @@ -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
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

