[U-Boot] [PATCH] Makefile: fdt: Make the final build result be u-boot.bin

Simon Glass sjg at chromium.org
Fri Mar 9 03:58:56 CET 2012


+Jerry

Hi Stephen,

On Thu, Mar 8, 2012 at 2:29 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> Users expect the final build result to be u-boot.bin. Preserve this
> expectation even when CONFIG_OF_SEPARATE is enabled.
>
> If the user wants to append a custom DTB rather than the one the U-Boot
> build process creates, they can append it to u-boot-nofdt.bin.
>
> Signed-off-by: Stephen Warren <swarren at wwwdotorg.org>
> ---
> This patch fixes the issue I have with the Makefile changes in the FDT
> patch series currently pending pull from u-boot-tegra.git to u-boot-arm.git.

Actually there are no changes to the Makefile in that series. The
behaviour you see is in U-Boot already. There was some discussion at
the time I believe.

>
> As mentioned above, the issue I have is that the patch series changes the
> name of the file that must be burned into flash for DT-enabled boards.
> While this is documented in the README, people won't in general even be
> aware that anything like this has changed, and hence probably won't go and
> re-read the README to discover this. I'd imagine most people won't even be
> aware that Seaboard now uses device tree to boot. This wouldn't be a
> problem if either:
>
> a) The expected u-boot.bin no longer existed, so it wasn't possible to use
> it.

We could put it somewhere else, but build systems that want to write
u-boot.bin and the fdt separate into flash will need it.

>
> or:
>
> b) The file u-boot.bin would print some meaningful message when burned to
> flash, rather than simply being silent, or spewing garbage to the serial
> port.

I have sent a patch to do this - it was discussed on the list some time back.

>
> Those issues prevent the problem from being readily "discoverable". This
> patch fixes the issue in a somewhat more direct manner, such that nobody
> has to change their workflow, let alone find out why.
>
> Tom Warren asked me to ask the U-Boot community's opinion on this problem,
> so I'm doing so by posting my proposed solution.
>
> Tom, if this is acceptable, I think this patch should be squashed into one
> of the patches in your to-be-pulled branch so that there is no set of
> commits where this is broken.

No, I think this is a separate patch.

>
> Potential open question: Should more than just u-boot.bin be renamed by
> appending $(UBOOT_BIN_EXTRANAME)?
>
>  Makefile |   18 +++++++++++++-----
>  README   |    6 +++---
>  2 files changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 36246b6..ebd6402 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -360,6 +360,12 @@ else
>  BOARD_SIZE_CHECK =
>  endif
>
> +ifeq ($(CONFIG_OF_SEPARATE),y)
> +UBOOT_BIN_EXTRANAME := -nodtb
> +else
> +UBOOT_BIN_EXTRANAME :=
> +endif
> +
>  # Always append ALL so that arch config.mk's can add custom ones
>  ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
>
> @@ -368,7 +374,7 @@ ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
>  ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin
>  ALL-$(CONFIG_MMC_U_BOOT) += $(obj)mmc_spl/u-boot-mmc-spl.bin
>  ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
> -ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
> +ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot$(UBOOT_BIN_EXTRANAME).bin
>
>  all:           $(ALL-y) $(SUBDIR_EXAMPLES)
>
> @@ -376,19 +382,21 @@ $(obj)u-boot.dtb: $(obj)u-boot
>                $(MAKE) -C dts binary
>                mv $(obj)dts/dt.dtb $@
>
> -$(obj)u-boot-dtb.bin:  $(obj)u-boot.bin $(obj)u-boot.dtb
> -               cat $^ >$@
> -
>  $(obj)u-boot.hex:      $(obj)u-boot
>                $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
>
>  $(obj)u-boot.srec:     $(obj)u-boot
>                $(OBJCOPY) -O srec $< $@
>
> -$(obj)u-boot.bin:      $(obj)u-boot
> +$(obj)u-boot$(UBOOT_BIN_EXTRANAME).bin:        $(obj)u-boot
>                $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
>                $(BOARD_SIZE_CHECK)
>
> +ifeq ($(CONFIG_OF_SEPARATE),y)
> +$(obj)u-boot.bin:      $(obj)u-boot$(UBOOT_BIN_EXTRANAME).bin $(obj)u-boot.dtb
> +               cat $^ > $@
> +endif
> +
>  $(obj)u-boot.ldr:      $(obj)u-boot
>                $(CREATE_LDR_ENV)
>                $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
> diff --git a/README b/README
> index 7adf7c7..990cefc 100644
> --- a/README
> +++ b/README
> @@ -865,10 +865,10 @@ The following options need to be configured:
>                binary. It will be called u-boot.dtb. Architecture-specific
>                code will locate it at run-time. Generally this works by:
>
> -                       cat u-boot.bin u-boot.dtb >image.bin
> +                       cat u-boot-notdb.bin u-boot.dtb > u-boot.bin
>
> -               and in fact, U-Boot does this for you, creating a file called
> -               u-boot-dtb.bin which is useful in the common case. You can
> +               and in fact, U-Boot does this for you, as part of creating
> +               u-boot.bin which is useful in the common case. You can
>                still use the individual files if you need something more
>                exotic.
>
> --
> 1.7.0.4
>

Regards,
Simon


More information about the U-Boot mailing list