[coreboot] [commit] r5102 - in trunk/src: . arch/i386 arch/i386/init boot cpu/amd/car cpu/amd/model_lx
repository service
svn at coreboot.org
Tue Feb 9 20:35:16 CET 2010
Author: oxygene
Date: Tue Feb 9 20:35:16 2010
New Revision: 5102
URL: http://tracker.coreboot.org/trac/coreboot/changeset/5102
Log:
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 at coresystems.de>
Acked-by: Peter Stuge <peter at stuge.se>
Modified:
trunk/src/Kconfig
trunk/src/arch/i386/Makefile.inc
trunk/src/arch/i386/Makefile.tinybootblock.inc
trunk/src/arch/i386/init/crt0.S.lb
trunk/src/boot/hardwaremain.c
trunk/src/cpu/amd/car/copy_and_run.c
trunk/src/cpu/amd/model_lx/cache_as_ram.inc
Modified: trunk/src/Kconfig
==============================================================================
--- trunk/src/Kconfig Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/Kconfig Tue Feb 9 20:35:16 2010 (r5102)
@@ -39,6 +39,13 @@
the coreboot version number, so that you can easily distinguish
boot logs of different boards from each other.
+config CBFS_PREFIX
+ string "CBFS prefix to use"
+ default "fallback"
+ help
+ Select the prefix to all files put into the image. It's "fallback"
+ by default, "normal" is a common alternative.
+
endmenu
source src/mainboard/Kconfig
Modified: trunk/src/arch/i386/Makefile.inc
==============================================================================
--- trunk/src/arch/i386/Makefile.inc Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/arch/i386/Makefile.inc Tue Feb 9 20:35:16 2010 (r5102)
@@ -15,14 +15,14 @@
cp $(obj)/coreboot.pre $@
if [ -f fallback/coreboot_apc ]; \
then \
- $(CBFSTOOL) $@ add-stage fallback/coreboot_apc fallback/coreboot_apc $(CBFS_COMPRESS_FLAG); \
+ $(CBFSTOOL) $@ add-stage fallback/coreboot_apc $(CONFIG_CBFS_PREFIX)/coreboot_apc $(CBFS_COMPRESS_FLAG); \
fi
- $(CBFSTOOL) $@ add-stage $(obj)/coreboot_ram fallback/coreboot_ram $(CBFS_COMPRESS_FLAG)
+ $(CBFSTOOL) $@ add-stage $(obj)/coreboot_ram $(CONFIG_CBFS_PREFIX)/coreboot_ram $(CBFS_COMPRESS_FLAG)
ifeq ($(CONFIG_PAYLOAD_NONE),y)
@printf " PAYLOAD none (as specified by user)\n"
else
@printf " PAYLOAD $(CONFIG_FALLBACK_PAYLOAD_FILE) $(CBFS_PAYLOAD_COMPRESS_FLAG)\n"
- $(CBFSTOOL) $(obj)/coreboot.rom add-payload $(CONFIG_FALLBACK_PAYLOAD_FILE) fallback/payload $(CBFS_PAYLOAD_COMPRESS_FLAG)
+ $(CBFSTOOL) $(obj)/coreboot.rom add-payload $(CONFIG_FALLBACK_PAYLOAD_FILE) $(CONFIG_CBFS_PREFIX)/payload $(CBFS_PAYLOAD_COMPRESS_FLAG)
endif
ifeq ($(CONFIG_VGA_BIOS),y)
@printf " VGABIOS $(CONFIG_FALLBACK_VGA_BIOS_FILE) $(CONFIG_FALLBACK_VGA_BIOS_ID)\n"
Modified: trunk/src/arch/i386/Makefile.tinybootblock.inc
==============================================================================
--- trunk/src/arch/i386/Makefile.tinybootblock.inc Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/arch/i386/Makefile.tinybootblock.inc Tue Feb 9 20:35:16 2010 (r5102)
@@ -10,7 +10,7 @@
$(obj)/coreboot.pre: $(obj)/coreboot.romstage $(obj)/coreboot.pre1 $(CBFSTOOL)
rm -f $@
cp $(obj)/coreboot.pre1 $@
- $(CBFSTOOL) $@ add-stage $(obj)/romstage.elf fallback/romstage x 0x$(shell cat $(obj)/location.txt)
+ $(CBFSTOOL) $@ add-stage $(obj)/romstage.elf $(CONFIG_CBFS_PREFIX)/romstage x 0x$(shell cat $(obj)/location.txt)
#FIXME: location.txt might require an offset of header size
#######################################################################
@@ -58,8 +58,8 @@
$(obj)/mainboard/$(MAINBOARDDIR)/bootblock.s: $(obj)/bootblock/bootblock.c
$(CC) -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -I$(obj)/bootblock -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@
-$(obj)/mainboard/$(MAINBOARDDIR)/bootblock.inc: $(obj)/romcc $(src)/arch/i386/init/bootblock.c
- $(obj)/romcc $(bootblock_romccflags) -O2 $(ROMCCFLAGS) $(INCLUDES) $(src)/arch/i386/init/bootblock.c -o $@
+$(obj)/mainboard/$(MAINBOARDDIR)/bootblock.inc: $(src)/arch/i386/init/$(subst ",,$(CONFIG_TINY_BOOTBLOCK_SOURCE)) $(obj)/romcc
+ $(obj)/romcc $(bootblock_romccflags) -O2 $(ROMCCFLAGS) $(INCLUDES) $< -o $@
$(obj)/bootblock.elf: $(obj)/mainboard/$(MAINBOARDDIR)/bootblock.o $(obj)/bootblock/ldscript.ld
@printf " LINK $(subst $(obj)/,,$(@))\n"
@@ -74,7 +74,7 @@
$(CC) -nostdlib -nostartfiles -static -o $(obj)/romstage.elf -L$(obj) -T $(obj)/romstage/ldscript.ld $(initobjs)
$(OBJCOPY) -O binary $(obj)/romstage.elf $(obj)/romstage.bin
printf "CONFIG_ROMBASE = 0x" > $(obj)/location.ld
- $(CBFSTOOL) $(obj)/coreboot.pre1 locate $(obj)/romstage.bin fallback/romstage $(CONFIG_XIP_ROM_SIZE) > $(obj)/location.txt
+ $(CBFSTOOL) $(obj)/coreboot.pre1 locate $(obj)/romstage.bin $(CONFIG_CBFS_PREFIX)/romstage $(CONFIG_XIP_ROM_SIZE) > $(obj)/location.txt
cat $(obj)/location.txt >> $(obj)/location.ld
printf ';\nAUTO_XIP_ROM_BASE = CONFIG_ROMBASE & ~(CONFIG_XIP_ROM_SIZE - 1);\n' >> $(obj)/location.ld
$(CC) -nostdlib -nostartfiles -static -o $(obj)/romstage.elf -L$(obj) -T $(obj)/romstage/ldscript.ld $(initobjs)
Modified: trunk/src/arch/i386/init/crt0.S.lb
==============================================================================
--- trunk/src/arch/i386/init/crt0.S.lb Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/arch/i386/init/crt0.S.lb Tue Feb 9 20:35:16 2010 (r5102)
@@ -137,10 +137,7 @@
#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */
-#if CONFIG_USE_FALLBACK_IMAGE == 1
-str_coreboot_ram_name: .string "fallback/coreboot_ram"
-#else
-str_coreboot_ram_name: .string "normal/coreboot_ram"
-#endif
+str_coreboot_ram_name: .ascii CONFIG_CBFS_PREFIX
+ .string "/coreboot_ram"
#endif /* CONFIG_USE_DCACHE_RAM */
Modified: trunk/src/boot/hardwaremain.c
==============================================================================
--- trunk/src/boot/hardwaremain.c Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/boot/hardwaremain.c Tue Feb 9 20:35:16 2010 (r5102)
@@ -103,11 +103,7 @@
* write our configuration tables.
*/
lb_mem = write_tables();
-#if CONFIG_USE_FALLBACK_IMAGE == 1
- cbfs_load_payload(lb_mem, "fallback/payload");
-#else
- cbfs_load_payload(lb_mem, "normal/payload");
-#endif
+ cbfs_load_payload(lb_mem, CONFIG_CBFS_PREFIX "/payload");
printk(BIOS_ERR, "Boot failed.\n");
}
Modified: trunk/src/cpu/amd/car/copy_and_run.c
==============================================================================
--- trunk/src/cpu/amd/car/copy_and_run.c Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/cpu/amd/car/copy_and_run.c Tue Feb 9 20:35:16 2010 (r5102)
@@ -7,21 +7,13 @@
static void copy_and_run(void)
{
-#if CONFIG_USE_FALLBACK_IMAGE == 1
- cbfs_and_run_core("fallback/coreboot_ram", 0);
-#else
- cbfs_and_run_core("normal/coreboot_ram", 0);
-#endif
+ cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_ram", 0);
}
#if CONFIG_AP_CODE_IN_CAR == 1
static void copy_and_run_ap_code_in_car(unsigned ret_addr)
{
-# if CONFIG_USE_FALLBACK_IMAGE == 1
- cbfs_and_run_core("fallback/coreboot_apc", ret_addr);
-# else
- cbfs_and_run_core("normal/coreboot_apc", ret_addr);
-# endif
+ cbfs_and_run_core(CONFIG_CBFS_PREFIX "/coreboot_apc", ret_addr);
}
#endif
Modified: trunk/src/cpu/amd/model_lx/cache_as_ram.inc
==============================================================================
--- trunk/src/cpu/amd/model_lx/cache_as_ram.inc Tue Feb 9 16:15:29 2010 (r5101)
+++ trunk/src/cpu/amd/model_lx/cache_as_ram.inc Tue Feb 9 20:35:16 2010 (r5102)
@@ -278,8 +278,5 @@
.previous
#endif /* ASM_CONSOLE_LOGLEVEL > BIOS_DEBUG */
-#if CONFIG_USE_FALLBACK_IMAGE == 1
-str_coreboot_ram_name: .string "fallback/coreboot_ram"
-#else
-str_coreboot_ram_name: .string "normal/coreboot_ram"
-#endif
+str_coreboot_ram_name: .ascii CONFIG_CBFS_PREFIX
+ .string "/coreboot_ram"
More information about the coreboot
mailing list