Patchwork Add "update image" feature

login
register
about
Submitter Patrick Georgi
Date 2010-02-09 18:15:40
Message ID <4B71A64C.20704@georgi-clan.de>
Download mbox | patch
Permalink /patch/893/
State Accepted
Headers show

Comments

Patrick Georgi - 2010-02-09 18:15:40
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 <patrick.georgi@coresystems.de>
Peter Stuge - 2010-02-09 19:07:23
Patrick Georgi wrote:
> attached image adds image updating support.
..
> Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>

Acked-by: Peter Stuge <peter@stuge.se>

Patch

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*