diff options
author | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-02-09 19:41:11 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-02-09 19:41:11 +0000 |
commit | 967952a102f13825085fdab6e37738d437eca655 (patch) | |
tree | a39106df69dabe569249afefd99c8f92894965f3 | |
parent | 4b8a24193512c8889c532e56df7e706c79dec447 (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-- | Makefile | 10 | ||||
-rw-r--r-- | src/arch/i386/Kconfig | 10 | ||||
-rw-r--r-- | src/arch/i386/Makefile.tinybootblock.inc | 5 |
3 files changed, 22 insertions, 3 deletions
@@ -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 $@ |