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

Tom Rini
2012-09-20T01:29:21Z

-----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@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-----