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
This commit is contained in:
Patrick Georgi 2010-12-16 07:36:28 +00:00
parent 8d0d6718a3
commit c2c23dca8b
4 changed files with 30 additions and 11 deletions

View File

@ -184,6 +184,7 @@ ramstage-srcs:=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
romstage-srcs:= romstage-srcs:=
driver-srcs:= driver-srcs:=
smm-srcs:= smm-srcs:=
cbfs-files:=
ramstage-objs:= ramstage-objs:=
romstage-objs:= romstage-objs:=
@ -197,11 +198,20 @@ types:=ramstage romstage driver smm
includemakefiles= \ includemakefiles= \
$(foreach type,$(2), $(eval $(type)-y:=)) \ $(foreach type,$(2), $(eval $(type)-y:=)) \
$(eval subdirs-y:=) \ $(eval subdirs-y:=) \
$(eval cbfs-files-y:=) \
$(eval -include $(1)) \ $(eval -include $(1)) \
$(foreach type,$(2), \ $(foreach type,$(2), \
$(eval $(type)-srcs+= \ $(eval $(type)-srcs+= \
$$(subst $(top)/,, \ $$(subst $(top)/,, \
$$(abspath $$(addprefix $(dir $(1)),$$($(type)-y)))))) \ $$(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))))) $(eval subdirs+=$$(subst $(CURDIR)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
# For each path in $(subdirs) call includemakefiles # For each path in $(subdirs) call includemakefiles
@ -275,6 +285,7 @@ printall:
@echo allsrcs=$(allsrcs) @echo allsrcs=$(allsrcs)
@echo DEPENDENCIES=$(DEPENDENCIES) @echo DEPENDENCIES=$(DEPENDENCIES)
@echo LIBGCC_FILE_NAME=$(LIBGCC_FILE_NAME) @echo LIBGCC_FILE_NAME=$(LIBGCC_FILE_NAME)
@echo cbfs-files:='$(cbfs-files)'
printcrt0s: printcrt0s:
@echo crt0s=$(crt0s) @echo crt0s=$(crt0s)

View File

@ -1,9 +1,9 @@
####################################################################### #######################################################################
# Build the final rom image # Build the final rom image
$(obj)/coreboot.pre: $(obj)/coreboot.bootblock $(CBFSTOOL) $(obj)/coreboot.pre: $(obj)/coreboot.pre1 $(CBFSTOOL)
rm -f $@ rm -f $@
$(CBFSTOOL) $@ create $(CONFIG_COREBOOT_ROMSIZE_KB)K $(obj)/coreboot.bootblock cp $(obj)/coreboot.pre1 $@
####################################################################### #######################################################################
# Build the bootblock # Build the bootblock

View File

@ -1,15 +1,6 @@
####################################################################### #######################################################################
# Build the final rom image # 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) $(obj)/coreboot.pre: $(obj)/coreboot.romstage $(obj)/coreboot.pre1 $(CBFSTOOL)
rm -f $@ rm -f $@
cp $(obj)/coreboot.pre1 $@ cp $(obj)/coreboot.pre1 $@

View File

@ -53,6 +53,23 @@ ifeq ($(CONFIG_GEODE_VSA_FILE),y)
COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VSA_FILENAME) COREBOOT_ROM_DEPENDENCIES+=$(CONFIG_VSA_FILENAME)
endif 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)) $(obj)/coreboot.rom: $(obj)/coreboot.pre $(obj)/coreboot_ram $(CBFSTOOL) $(call strip_quotes,$(COREBOOT_ROM_DEPENDENCIES))
@printf " CBFS $(subst $(obj)/,,$(@))\n" @printf " CBFS $(subst $(obj)/,,$(@))\n"
cp $(obj)/coreboot.pre $@.tmp cp $(obj)/coreboot.pre $@.tmp