[U-Boot] [PATCH v4 10/11] Add u-boot-pad.bin target to the Makefile

Tom Rini trini at ti.com
Thu Sep 20 03:29:21 CEST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/19/12 17:38, José Miguel Gonçalves wrote:
> 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
>>>>>> <jose.goncalves at inov.pt> --- 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) | \

Tom W, since I'd like you to upgrade the tegra rules after this change
goes in (since they do a u-boot-spl.bin + pad + u-boot.bin + stuff),
does this look good to you as well?  Thanks!

- -- 
Tom
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQIcBAEBAgAGBQJQWnFxAAoJENk4IS6UOR1WybcQALKP61eZDe4AZCuhacsvFIiX
EWpA4YLSDTA6Z419lkgN7qJoIKbm0lqOvlp8jyWGMgmkUjY/omGEbDjJdqRx3Fmy
Hd937BU9VvUBB11S6qC/FcEpP6vC+yiSCHq9GgQ27q1qxFfnn2uzo5xODdV6XaiW
mBZ4hzbLOJFxM3BVNlBAH2T/4OhVuRRucGYt68Su3EOgcbe3qd0YCHyTLuZl/k8Z
HIDaKku5lgHa2BZT1JjDkRai/QuJhX53EBONc1n/S+fQr1IjXcvcppu8h4x65W8Q
Rb8FKjDbUTuAvksCC/uqPJ59oMhctcmws2ywnRnGo5y097GKyl1zxyuqY5CZMSnu
voJrzuIQpdPp48cXQuMHQx9z5kPmM+ohsDT9/s80AjXdS/2XqwQQjelWosn1krUi
cgEq2IrtTqpiBqrYrEf1nidVJluf1VBKtCV4XRHYd6sSEteimrMu+qfLN/42U+CF
tiFWqjMVpW2SCHUFogYUzARaQ/NXCYvDF1FFvnBmUWd/C9haiHqBUPba3HO/rlmb
dsFM2RcMNX2CKeikA/Tdb4gwCB9wYsjJNQynE3h8BShaCbA04gYT6K1SRXSDiOuO
LQuqrkLsNiL/DrqH3Trvxaxxsy0yGrs9jANfcyPlNbV+A4DKsJK6RX4MP8oYLKoV
OzeS14a1CjZci5FyGgB/
=4cKu
-----END PGP SIGNATURE-----


More information about the U-Boot mailing list