Add image updating support. When selecting it, it
authorPatrick Georgi <patrick.georgi@coresystems.de>
Tue, 9 Feb 2010 19:41:11 +0000 (19:41 +0000)
committerPatrick Georgi <patrick.georgi@coresystems.de>
Tue, 9 Feb 2010 19:41:11 +0000 (19:41 +0000)
expects a coreboot.rom to be available, and adds the files to it.

It has no idea how to replace files, it merely adds them. It only works
with Tinybootblock and the bootblock is immutable.

The "clean" rules allow "make clean-for-update", which
removes everything but coreboot.rom

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Peter Stuge <peter@stuge.se>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5103 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

Makefile
src/arch/i386/Kconfig
src/arch/i386/Makefile.tinybootblock.inc

index 5925996b9f1ec7da1c369c88b86137e78a7595c9..acf71567055efb1307cf235e4edee85350f6658a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -284,15 +284,19 @@ doxyclean: doxygen-clean
 doxygen-clean:
        rm -rf $(DOXYGEN_OUTPUT_DIR)
 
-clean: doxygen-clean
-       rm -f $(allobjs) $(obj)/coreboot* .xcompile
+clean-for-update: doxygen-clean
+       rm -f $(objs) $(initobjs) $(drivers) $(smmobjs) .xcompile
+       rm -f $(obj)/coreboot_ram* $(obj)/coreboot.romstage $(obj)/coreboot.pre* $(obj)/coreboot.bootblock $(obj)/coreboot.a
        rm -rf $(obj)/bootblock* $(obj)/romstage* $(obj)/location.*
-       rm -f $(obj)/option_table.* $(obj)/crt0_includes.h $(obj)/ldscript
+       rm -f $(obj)/option_table.* $(obj)/crt0_includes.h $(obj)/ldscript $(obj)/config.h
        rm -f $(obj)/mainboard/$(MAINBOARDDIR)/static.c $(obj)/mainboard/$(MAINBOARDDIR)/config.py $(obj)/mainboard/$(MAINBOARDDIR)/static.dot
        rm -f $(obj)/mainboard/$(MAINBOARDDIR)/auto.inc $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s $(obj)/mainboard/$(MAINBOARDDIR)/crt0.disasm
        rmdir -p $(alldirs) 2>/dev/null >/dev/null || true
        $(MAKE) -C util/sconfig clean
 
+clean: clean-for-update
+       rm -f $(obj)/coreboot*
+
 distclean: clean
        rm -rf $(obj)
        rm -f .config .config.old ..config.tmp .kconfig.d .tmpconfig*
index d64eb7f28e901f5438471c2e53e465b31e0edd6a..bf60039f8f81a2e8b6c2977e5345e2e7f86e5498 100644 (file)
@@ -49,6 +49,16 @@ config BIG_BOOTBLOCK
        default n if TINY_BOOTBLOCK
        default y
 
+config UPDATE_IMAGE
+       bool "Update existing coreboot.rom image"
+       default n
+       depends on TINY_BOOTBLOCK
+       help
+               If this option is activate, no new coreboot.rom file
+               is created. Instead it is expected that there already
+               is a suitable file for further processing.
+               The bootblock will not be modified.
+
 config ROMCC
        bool
        default n
index e570a290d32f2a05d73680c18d6735e4260e7f0e..5457d7937d7ca0156069de596abffd7ace0ce751 100644 (file)
@@ -3,9 +3,14 @@ ifdef POST_EVALUATION
 #######################################################################
 # Build the final rom image
 
+ifneq ($(CONFIG_UPDATE_IMAGE),y)
 $(obj)/coreboot.pre1: $(obj)/coreboot.bootblock $(CBFSTOOL)
        rm -f $@
        $(CBFSTOOL) $@ create $(CONFIG_COREBOOT_ROMSIZE_KB)K $(obj)/coreboot.bootblock
+else
+$(obj)/coreboot.pre1: $(CBFSTOOL)
+       mv $(obj)/coreboot.rom $@
+endif
 
 $(obj)/coreboot.pre: $(obj)/coreboot.romstage $(obj)/coreboot.pre1 $(CBFSTOOL)
        rm -f $@