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

José Miguel Gonçalves jose.goncalves at inov.pt
Thu Sep 20 02:38:24 CEST 2012


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) | \

Best regards,
José Gonçalves


More information about the U-Boot mailing list