From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Jos=E9_Miguel_Gon=E7alves?= Date: Thu, 20 Sep 2012 01:38:24 +0100 Subject: [U-Boot] [PATCH v4 10/11] Add u-boot-pad.bin target to the Makefile In-Reply-To: <505A57F2.6000700@ti.com> References: <1348053927-16021-1-git-send-email-jose.goncalves@inov.pt> <1348053927-16021-11-git-send-email-jose.goncalves@inov.pt> <1348094385.22800.13@snotra> <505A55D1.9070807@ti.com> <1348097794.22800.20@snotra> <505A57F2.6000700@ti.com> Message-ID: <505A6580.2050102@inov.pt> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Tom & Scott, On 09/20/2012 12:40 AM, Tom Rini wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > On 09/19/12 16:36, Scott Wood wrote: >> On 09/19/2012 06:31:29 PM, Tom Rini wrote: >>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >>> >>> On 09/19/12 15:39, Scott Wood wrote: >>>> On 09/19/2012 06:25:26 AM, Jos? Miguel Gon?alves wrote: >>>>> Samsung's S3C24XX SoCs need this in order to generate a >>>>> binary image with a padded SPL concatenated with U-Boot. >>>>> >>>>> Signed-off-by: Jos? Miguel Gon?alves >>>>> --- Changes for v2: - None >>>>> >>>>> Changes for v3: - Changed new binary target name from >>>>> u-boot-ubl.bin to u-boot-pad.bin >>>>> >>>>> Changes for v4: - None --- Makefile | 11 ++++++----- 1 file >>>>> changed, 6 insertions(+), 5 deletions(-) >>>>> >>>>> diff --git a/Makefile b/Makefile index 8738d55..86dedca >>>>> 100644 --- a/Makefile +++ b/Makefile @@ -433,14 +433,15 @@ >>>>> $(obj)u-boot.sha1: $(obj)u-boot.bin $(obj)u-boot.dis: >>>>> $(obj)u-boot $(OBJDUMP) -d $< > $@ >>>>> >>>>> -$(obj)u-boot.ubl: $(obj)spl/u-boot-spl.bin >>>>> $(obj)u-boot.bin +$(obj)u-boot-pad.bin: >>>>> $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin $(OBJCOPY) >>>>> ${OBJCFLAGS} --pad-to=$(PAD_TO) -O binary >>>>> $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin - cat >>>>> $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > >>>>> $(obj)u-boot-ubl.bin - $(obj)tools/mkimage -n >>>>> $(UBL_CONFIG) -T ublimage \ - -e >>>>> $(CONFIG_SYS_TEXT_BASE) -d $(obj)u-boot-ubl.bin >>>>> $(obj)u-boot.ubl - rm $(obj)u-boot-ubl.bin + cat >>>>> $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > >>>>> $(obj)u-boot-pad.bin rm $(obj)spl/u-boot-spl-pad.bin >>>> This rule lists u-boot-spl.bin as a prerequisite, but it >>>> doesn't appear to use it -- it uses u-boot-spl instead. >>>> >>>> It seems that either spl/Makefile should produce u-boot-spl >>>> rather than u-boot-spl.bin and let the toplevel Makefile deal >>>> with converting it to a binary, or spl/Makefile should take >>>> care of adding any needed padding for the target and the final >>>> rule should just be a concatenation. >>> So, if we use a weak PAD_TO value of say 0x1, we could always >>> "pad" u-boot-spl.bin out and then do the concatenation here and >>> in a few other targets as well. >> Yes, or use a variable that includes the linker option, so that it >> expands to an empty string if padding isn't required. > Yes, I don't know if say IMAGE_PAD ?= "" and having boards set that to > - --pad-to=... or just saying --pad-to=$(PAD_SIZE) and PAD_SIZE ?= 0x1 > ends up looking cleaner once all is said and done. First one to try > both and patch... :) > Please check the following patch. It seems to work for me... diff --git a/Makefile b/Makefile index 8738d55..fad8b33 100644 --- a/Makefile +++ b/Makefile @@ -433,13 +433,12 @@ $(obj)u-boot.sha1: $(obj)u-boot.bin $(obj)u-boot.dis: $(obj)u-boot $(OBJDUMP) -d $< > $@ -$(obj)u-boot.ubl: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin - $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(PAD_TO) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin - cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $(obj)u-boot-ubl.bin +$(obj)u-boot-with-spl.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin + cat $^ > $@ + +$(obj)u-boot.ubl: $(obj)u-boot-with-spl.bin $(obj)tools/mkimage -n $(UBL_CONFIG) -T ublimage \ - -e $(CONFIG_SYS_TEXT_BASE) -d $(obj)u-boot-ubl.bin $(obj)u-boot.ubl - rm $(obj)u-boot-ubl.bin - rm $(obj)spl/u-boot-spl-pad.bin + -e $(CONFIG_SYS_TEXT_BASE) -d $< $@ $(obj)u-boot.ais: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img $(obj)tools/mkimage -s -n /dev/null -T aisimage \ diff --git a/spl/Makefile b/spl/Makefile index f96c08e..6ea9f26 100644 --- a/spl/Makefile +++ b/spl/Makefile @@ -23,6 +23,8 @@ include $(TOPDIR)/config.mk # We want the final binaries in this directory obj := $(OBJTREE)/spl/ +PAD_TO ?= 1 + HAVE_VENDOR_COMMON_LIB := $(shell [ -f $(SRCTREE)/board/$(VENDOR)/common/Makefile ] \ && echo y || echo n) @@ -124,7 +126,7 @@ $(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin endif $(obj)u-boot-spl.bin: $(obj)u-boot-spl - $(OBJCOPY) $(OBJCFLAGS) -O binary $< $@ + $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(PAD_TO) -O binary $< $@ GEN_UBOOT = \ UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) | \ Best regards, Jos? Gon?alves