From 5839635add286ff7307a06486d2d49b46e14ec7b Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Tue, 9 Dec 2014 12:49:21 +0100 Subject: 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 Reviewed-on: http://review.coreboot.org/7728 Tested-by: build bot (Jenkins) Reviewed-by: Werner Zeh Reviewed-by: Stefan Reinauer Reviewed-by: Alexandru Gagniuc --- Makefile.inc | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'Makefile.inc') 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) -- cgit v1.2.3