From c2c23dca8bea16a0198a21fe900fb1d43170489a Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 16 Dec 2010 07:36:28 +0000 Subject: Add support for cbfs-files-y to the build system. That variable allows chipset components to add files to the CBFS image, for details see http://www.coreboot.org/pipermail/coreboot/2010-December/062483.html Compared to the patch in that mail this commit improves dependency tracking a bit. Signed-off-by: Patrick Georgi Acked-by: Joseph Smith Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6182 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- Makefile | 11 +++++++++++ src/arch/x86/Makefile.bigbootblock.inc | 4 ++-- src/arch/x86/Makefile.bootblock.inc | 9 --------- src/arch/x86/Makefile.inc | 17 +++++++++++++++++ 4 files changed, 30 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 4361b20fc7..a61acdf9db 100644 --- a/Makefile +++ b/Makefile @@ -184,6 +184,7 @@ ramstage-srcs:=$(obj)/mainboard/$(MAINBOARDDIR)/static.c romstage-srcs:= driver-srcs:= smm-srcs:= +cbfs-files:= ramstage-objs:= romstage-objs:= @@ -197,11 +198,20 @@ types:=ramstage romstage driver smm includemakefiles= \ $(foreach type,$(2), $(eval $(type)-y:=)) \ $(eval subdirs-y:=) \ + $(eval cbfs-files-y:=) \ $(eval -include $(1)) \ $(foreach type,$(2), \ $(eval $(type)-srcs+= \ $$(subst $(top)/,, \ $$(abspath $$(addprefix $(dir $(1)),$$($(type)-y)))))) \ + $(foreach file,$(cbfs-files-y), \ + $(if $(wildcard $(dir $(1))$(file)), \ + $(eval tmp-cbfs-file:= $(wildcard $(dir $(1))$(file))), \ + $(eval tmp-cbfs-file:= $(file))) \ + $(eval cbfs-files += $(tmp-cbfs-file)|$$($(file)-name)|$$($(file)-type)|$$($(file)-position)) \ + $(eval $(file)-name:=) \ + $(eval $(file)-type:=) \ + $(eval $(file)-position:=)) \ $(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y))))) # For each path in $(subdirs) call includemakefiles @@ -275,6 +285,7 @@ printall: @echo allsrcs=$(allsrcs) @echo DEPENDENCIES=$(DEPENDENCIES) @echo LIBGCC_FILE_NAME=$(LIBGCC_FILE_NAME) + @echo cbfs-files:='$(cbfs-files)' printcrt0s: @echo crt0s=$(crt0s) diff --git a/src/arch/x86/Makefile.bigbootblock.inc b/src/arch/x86/Makefile.bigbootblock.inc index a60681670b..a6b8e11bca 100644 --- a/src/arch/x86/Makefile.bigbootblock.inc +++ b/src/arch/x86/Makefile.bigbootblock.inc @@ -1,9 +1,9 @@ ####################################################################### # Build the final rom image -$(obj)/coreboot.pre: $(obj)/coreboot.bootblock $(CBFSTOOL) +$(obj)/coreboot.pre: $(obj)/coreboot.pre1 $(CBFSTOOL) rm -f $@ - $(CBFSTOOL) $@ create $(CONFIG_COREBOOT_ROMSIZE_KB)K $(obj)/coreboot.bootblock + cp $(obj)/coreboot.pre1 $@ ####################################################################### # Build the bootblock diff --git a/src/arch/x86/Makefile.bootblock.inc b/src/arch/x86/Makefile.bootblock.inc index f522fc2150..425ee0792c 100644 --- a/src/arch/x86/Makefile.bootblock.inc +++ b/src/arch/x86/Makefile.bootblock.inc @@ -1,15 +1,6 @@ ####################################################################### # 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 $@ cp $(obj)/coreboot.pre1 $@ diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index ea6e3ecb14..c4ac5cd75f 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -53,6 +53,23 @@ ifeq ($(CONFIG_GEODE_VSA_FILE),y) COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VSA_FILENAME) endif +extract_nth=$(word $(1), $(subst |, ,$(2))) + +ifneq ($(CONFIG_UPDATE_IMAGE),y) +prebuild-files = \ + $(foreach file,$(cbfs-files), \ + $(CBFSTOOL) $@ add $(call extract_nth,1,$(file)) $(call extract_nth,2,$(file)) $(call extract_nth,3,$(file)) $(call extract_nth,4,$(file)); ) +prebuilt-files = $(foreach file,$(cbfs-files), $(call extract_nth,1,$(file))) + +$(obj)/coreboot.pre1: $(obj)/coreboot.bootblock $(prebuilt-files) $(CBFSTOOL) + rm -f $@ + $(CBFSTOOL) $@ create $(CONFIG_COREBOOT_ROMSIZE_KB)K $(obj)/coreboot.bootblock + $(prebuild-files) +else +$(obj)/coreboot.pre1: $(CBFSTOOL) + mv $(obj)/coreboot.rom $@ +endif + $(obj)/coreboot.rom: $(obj)/coreboot.pre $(obj)/coreboot_ram $(CBFSTOOL) $(call strip_quotes,$(COREBOOT_ROM_DEPENDENCIES)) @printf " CBFS $(subst $(obj)/,,$(@))\n" cp $(obj)/coreboot.pre $@.tmp -- cgit v1.2.3