From patchwork Tue Feb 9 18:15:40 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Add "update image" feature Date: Tue, 09 Feb 2010 18:15:40 -0000 From: Patrick Georgi X-Patchwork-Id: 893 Message-Id: <4B71A64C.20704@georgi-clan.de> To: coreboot@coreboot.org Hi, attached image adds 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 were changed to allow "make clean-for-update", which removes everything but coreboot.rom Signed-off-by: Patrick Georgi Acked-by: Peter Stuge Index: src/arch/i386/Kconfig =================================================================== --- src/arch/i386/Kconfig (revision 5100) +++ src/arch/i386/Kconfig (working copy) @@ -49,6 +49,16 @@ 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: src/arch/i386/Makefile.tinybootblock.inc =================================================================== --- src/arch/i386/Makefile.tinybootblock.inc (revision 5100) +++ src/arch/i386/Makefile.tinybootblock.inc (working copy) @@ -3,7 +3,12 @@ ####################################################################### # 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 Index: Makefile =================================================================== --- Makefile (revision 5100) +++ Makefile (working copy) @@ -284,15 +284,19 @@ 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*