diff options
author | Patrick Georgi <pgeorgi@google.com> | 2014-12-09 12:49:21 +0100 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2014-12-19 19:02:57 +0100 |
commit | 5839635add286ff7307a06486d2d49b46e14ec7b (patch) | |
tree | 76f5c275f86b151cde502b9c64a298e3316a32ca | |
parent | 5eabe25a6927f16c5e47fafd5ac26d3cb7140d80 (diff) |
build system: allow defining alignment for cbfs-files
Just set $(filename)-align to the desired alignment,
and the build system will figure it out using
cbfstool locate.
Change-Id: I44369d947888041c21ff51ae49f9aacf510918a0
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: http://review.coreboot.org/7728
Tested-by: build bot (Jenkins)
Reviewed-by: Werner Zeh <werner.zeh@gmx.net>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
-rw-r--r-- | Makefile.inc | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/Makefile.inc b/Makefile.inc index 880c38d042..c9da7f89c9 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -208,16 +208,22 @@ cbfs-files-handler= \ $(info This build configuration requires $($(2)-required)) \ $(eval FAILBUILD:=1) \ )) \ + $(if $(strip $($(2)-align)), \ + $(if $(strip $($(2)-position)), \ + $(info ERROR: It is not allowed to specify both alignment and position for $($(2)-file)) \ + $(eval FAILBUILD:=1) \ + )) \ $(if $(tmp-cbfs-method), \ $(eval tmp-old-cbfs-file:=$(tmp-cbfs-file)) \ $(eval tmp-cbfs-file:=$(shell mkdir -p $(obj)/mainboard/$(MAINBOARDDIR); mktemp $(obj)/mainboard/$(MAINBOARDDIR)/cbfs-file.XXXXXX).out) \ $(call cbfs-files-processor-$(tmp-cbfs-method),$(tmp-old-cbfs-file),$(tmp-cbfs-file))) \ - $(eval cbfs-files += $(tmp-cbfs-file)|$(2)|$($(2)-type)|$($(2)-compression)|$($(2)-position)) \ + $(eval cbfs-files += $(tmp-cbfs-file)|$(2)|$($(2)-type)|$($(2)-compression)|$(split $($(2)-position))|$($(2)-align))\ $(eval $(2)-name:=) \ $(eval $(2)-type:=) \ $(eval $(2)-compression:=) \ $(eval $(2)-position:=) \ - $(eval $(2)-required:=) + $(eval $(2)-required:=) \ + $(eval $(2)-align:=) ####################################################################### # a variety of flags for our build @@ -509,16 +515,20 @@ ifeq ($(CONFIG_PAYLOAD_GRUB2),y) COREBOOT_ROM_DEPENDENCIES+=grub2 endif -extract_nth=$(word $(1), $(subst |, ,$(2))) +extract_nth=$(patsubst -%-,%,$(word $(1), $(subst |,- -,-$(2)-))) -ifneq ($(CONFIG_UPDATE_IMAGE),y) -prebuild-files = \ - $(foreach file,$(cbfs-files), \ +cbfs-add-cmd = \ $(CBFSTOOL) $@.tmp \ add$(if $(filter stage,$(call extract_nth,3,$(file))),-stage)$(if $(filter payload,$(call extract_nth,3,$(file))),-payload) \ -f $(call extract_nth,1,$(file)) \ - -n $(call extract_nth,2,$(file)) $(if $(filter-out stage,$(call extract_nth,3,$(file))),-t $(call extract_nth,3,$(file))) \ - $(if $(call extract_nth,4,$(file)),-b $(call extract_nth,4,$(file))) &&) + -n $(call extract_nth,2,$(file)) $(if $(filter-out stage,$(call extract_nth,3,$(file))),-t $(call extract_nth,3,$(file))) + +ifneq ($(CONFIG_UPDATE_IMAGE),y) +prebuild-files = \ + $(foreach file,$(cbfs-files), \ + $(if $(call extract_nth,6,$(file)),$(CBFSTOOL) $@.tmp locate -f $(call extract_nth,1,$(file)) -n $(call extract_nth,2,$(file)) -a $(call extract_nth,6,$(file))|xargs -i \ + $(cbfs-add-cmd) -b {} &&,\ + $(cbfs-add-cmd) $(if $(call extract_nth,5,$(file)),-b $(call extract_nth,5,$(file))) &&)) prebuilt-files = $(foreach file,$(cbfs-files), $(call extract_nth,1,$(file))) $(obj)/coreboot.pre1: $(objcbfs)/bootblock.bin $$(prebuilt-files) $(CBFSTOOL) $$(cpu_ucode_cbfs_file) |