summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2010-02-09 19:41:11 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2010-02-09 19:41:11 +0000
commit967952a102f13825085fdab6e37738d437eca655 (patch)
treea39106df69dabe569249afefd99c8f92894965f3
parent4b8a24193512c8889c532e56df7e706c79dec447 (diff)
Add image updating support. When selecting it, it
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
-rw-r--r--Makefile10
-rw-r--r--src/arch/i386/Kconfig10
-rw-r--r--src/arch/i386/Makefile.tinybootblock.inc5
3 files changed, 22 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 5925996b9f..acf7156705 100644
--- 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*
diff --git a/src/arch/i386/Kconfig b/src/arch/i386/Kconfig
index d64eb7f28e..bf60039f8f 100644
--- a/src/arch/i386/Kconfig
+++ b/src/arch/i386/Kconfig
@@ -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
diff --git a/src/arch/i386/Makefile.tinybootblock.inc b/src/arch/i386/Makefile.tinybootblock.inc
index e570a290d3..5457d7937d 100644
--- a/src/arch/i386/Makefile.tinybootblock.inc
+++ b/src/arch/i386/Makefile.tinybootblock.inc
@@ -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 $@