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

Tom Rini
2012-09-20T16:23:14Z

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

On 09/20/12 09:01, Tom Warren wrote:
>> -----Original Message----- From: Tom Rini [mailto:trini at ti.com]
>> Sent: Wednesday, September 19, 2012 6:29 PM To: Jos? Miguel
>> Gon?alves Cc: Scott Wood; u-boot at lists.denx.de; marex at denx.de;
>> mk7.kang at samsung.com; Tom Warren Subject: Re: [PATCH v4 10/11]
>> Add u-boot-pad.bin target to the Makefile
>>
>> * PGP Signed by an unknown key
>>
>> 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!
>
> I'm not clear what you want the final binary names to be. I seem
> to be missing segments of this discussion - maybe not CC'd on all
> threads?

Sorry, I'm just asking if this way of padding u-boot-spl.bin to the
required size by default in spl/Makefile and then not doing any
- --pad-to in the toplevel Makefile rules for u-boot-spl will work for
your needs as well (so update the existing rules to just concatenate
spl/u-boot-spl.bin and u-boot.bin and whatever else you need and have
PAD_TO be set to $(CONFIG_SYS_TEXT_BASE), I believe).

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

iQIcBAEBAgAGBQJQW0LyAAoJENk4IS6UOR1Wst8P/2IhNv0s3YKGp2r8ze4TWKaJ
rMxHs9KQ+ZHcemZuD4jWkx+Ms1pZrZlKDbF2lG622n+FsgTvXP8xSyBZCB0sV0J9
wVUQR8QB6EHrdw5pOhMn7T4y3+sy61l/E50NQHU5Nu2sA7t5g/xQH95gslN9b1yv
VNhX/sdISna8lEqJPF5Iuxuc9Cl7huEbSCpu/uETQZVqHfKDxkp7mZDcOHq0JJ4q
150WwOQhNKNgtX1AV9D2vcDHMRO6AOXE1cH/jMv9CBoPMkeJaW1EaGHTv8PrKeUG
ONN8fCEcdTEPvv6XXk3DLXVDFruAG7jk7bQr7B59nr5NVwuxZkZKOGn4o07stTBK
c2ixDbsS8K4BIlDrAMckd4pyjAWVE0bN8lDfOKvJtxMDSjMj+EagiDnPkAsnzJAB
Usml6rpIuBNLC2l4MZsYEihNHk0I10/M328c0kKUwWmT4UI3GB8V/sti1OUOyAoy
DBy9dH7U/aPVr72aXLcBf8vDdA3abHmHt6zLq4KDMw4+xBLmsqmALYvOOoGSdW9S
X5C6d6xpQVt5ovvSV8IZkT3rKUFAhmjcLgjwxKam3eTuSEyapZAJPji9h1Bl2PMB
UqR6MP8RceP9OqkSXhyCK6reFq6KCtsvGMdPnYs2uY2dZVjqMwtxPNWE1W39LqhU
VCbg1HKz/kmpmS9gQqRt
=qd5a
-----END PGP SIGNATURE-----