[U-Boot] [PATCH 2/7] fdt: Build a U-Boot binary without device tree

Simon Glass
2016-01-25T20:30:26Z

At present u-boot.bin holds the plain U-Boot binary without the device tree.
This is somewhat annoying since you need either u-boot.bin or u-boot-dtb.bin
depending on whether device tree is used.

Adjust the build such that u-boot.bin includes a device tree, and the
plain binary is in u-boot-nodtb.bin. For now u-boot-dtb.bin remains the
same.

This should be acceptable since:

- without OF_CONTROL, u-boot.bin still does not include a device tree
- with OF_CONTROL, u-boot-dtb.bin does not change

The main impact is build systems which are set up to use u-boot.bin as
the output file and then add a device tree. These will have to change to use
u-boot-nodtb.bin instead.

Adjust tegra rules so it continues to produce the correct files.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

Makefile | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index e2b6674..4fa1b9a 100644
--- a/Makefile
+++ b/Makefile
@@ -827,9 +827,17 @@ PHONY += dtbs
dtbs dts/dt.dtb: checkdtc u-boot
$(Q)$(MAKE) $(build)=dts dtbs

-u-boot-dtb.bin: u-boot.bin dts/dt.dtb FORCE
+ifeq ($(CONFIG_OF_CONTROL),y)
+u-boot-dtb.bin: u-boot-nodtb.bin dts/dt.dtb FORCE
$(call if_changed,cat)

+u-boot.bin: u-boot-dtb.bin FORCE
+ $(call if_changed,cat)
+else
+u-boot.bin: u-boot-nodtb.bin FORCE
+ $(call if_changed,cat)
+endif
+
%.imx: %.bin
$(Q)$(MAKE) $(build)=arch/arm/imx-common $@

@@ -846,11 +854,11 @@ OBJCOPYFLAGS_u-boot.srec := -O srec
u-boot.hex u-boot.srec: u-boot FORCE
$(call if_changed,objcopy)

-OBJCOPYFLAGS_u-boot.bin := -O binary \
+OBJCOPYFLAGS_u-boot-nodtb.bin := -O binary \
$(if $(CONFIG_X86_RESET_VECTOR),-R .start16 -R .resetvec)

-binary_size_check: u-boot.bin FORCE
- @file_size=$(shell wc -c u-boot.bin | awk '{print $$1}') ; \
+binary_size_check: u-boot-nodtb.bin FORCE
+ @file_size=$(shell wc -c u-boot-nodtb.bin | awk '{print $$1}') ; \
map_size=$(shell cat u-boot.map | \
awk '/_image_copy_start/ {start = $$1} /_image_binary_end/ {end = $$1} END {if (start != "" && end != "") print "ibase=16; " toupper(end) " - " toupper(start)}' \
| sed 's/0X//g' \
@@ -858,12 +866,12 @@ binary_size_check: u-boot.bin FORCE
if [ "" != "$$map_size" ]; then \
if test $$map_size -ne $$file_size; then \
echo "u-boot.map shows a binary size of $$map_size" >&2 ; \
- echo " but u-boot.bin shows $$file_size" >&2 ; \
+ echo " but u-boot-nodtb.bin shows $$file_size" >&2 ; \
exit 1; \
fi \
fi

-u-boot.bin: u-boot FORCE
+u-boot-nodtb.bin: u-boot FORCE
$(call if_changed,objcopy)
$(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
$(BOARD_SIZE_CHECK)
@@ -1022,7 +1030,7 @@ rom: u-boot.rom FORCE
IFDTOOL=$(objtree)/tools/ifdtool
IFDTOOL_FLAGS = -f 0:$(objtree)/u-boot.dtb
IFDTOOL_FLAGS += -m 0x$(shell $(NM) u-boot |grep _dt_ucode_base_size |cut -d' ' -f1)
-IFDTOOL_FLAGS += -U $(CONFIG_SYS_TEXT_BASE):$(objtree)/u-boot.bin
+IFDTOOL_FLAGS += -U $(CONFIG_SYS_TEXT_BASE):$(objtree)/u-boot-nodtb.bin
IFDTOOL_FLAGS += -w $(CONFIG_SYS_X86_START16):$(objtree)/u-boot-x86-16bit.bin
IFDTOOL_FLAGS += -C

--
2.7.0.rc3.207.g0ac5344