diff options
author | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-12-16 07:36:28 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-12-16 07:36:28 +0000 |
commit | c2c23dca8bea16a0198a21fe900fb1d43170489a (patch) | |
tree | 139b089333a552b18daa69c82eaabffe7b137254 | |
parent | 8d0d6718a3afac24029d45540d587a24802730a4 (diff) | |
download | coreboot-c2c23dca8bea16a0198a21fe900fb1d43170489a.tar.xz |
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 <patrick.georgi@coresystems.de>
Acked-by: Joseph Smith <joe@settoplinux.org>
Acked-by: Stefan Reinauer <stepan@coreboot.org>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6182 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | src/arch/x86/Makefile.bigbootblock.inc | 4 | ||||
-rw-r--r-- | src/arch/x86/Makefile.bootblock.inc | 9 | ||||
-rw-r--r-- | src/arch/x86/Makefile.inc | 17 |
4 files changed, 30 insertions, 11 deletions
@@ -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 |