[PATCH v2 01/18] Makefile: Build a separate .dtb for TPL

Simon Glass sjg at chromium.org
Wed Dec 23 03:30:13 CET 2020


At present both SPL and TPL use the same devicetree binary. While there
is logic to run fdtgrep separately on each one, it does not actually
happen.

Add a new TPL rule and use that instead. Make this rule conditional on
there actually being a TPL. Do the same for SPL for consistency.

Note that the SPL and TPL dtbs are build by a Makefule rule used for
U-Boot proper. This is the 'dtbs' target in dts/Makefile. So the check
for CONFIG_TPL_BUILD in cmd_fdtgrep never actually works at present.

We don't support CONFIG_OF_EMBED for TPL at present.

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

(no changes since v1)

 dts/Makefile         | 11 ++++++++---
 scripts/Makefile.spl |  4 +++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/dts/Makefile b/dts/Makefile
index a20930eb9a5..4cd65ce73d4 100644
--- a/dts/Makefile
+++ b/dts/Makefile
@@ -19,6 +19,9 @@ endif
 $(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE
 	$(call if_changed,fdtgrep)
 
+$(obj)/dt-tpl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE
+	$(call if_changed,fdtgrep)
+
 ifeq ($(CONFIG_OF_DTB_PROPS_REMOVE),y)
 $(obj)/dt.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE
 	$(call if_changed,fdt_rm_props)
@@ -27,7 +30,7 @@ $(obj)/dt.dtb: $(DTB) FORCE
 	$(call if_changed,shipped)
 endif
 
-targets += dt.dtb dt-spl.dtb
+targets += dt.dtb dt-spl.dtb dt-tpl.dtb
 
 $(DTB): arch-dtbs
 	$(Q)test -e $@ || (						\
@@ -51,10 +54,12 @@ else
 obj-$(CONFIG_OF_EMBED) := dt.dtb.o
 endif
 
-dtbs: $(obj)/dt.dtb $(obj)/dt-spl.dtb
+dtbs: $(obj)/dt.dtb \
+		$(if $(CONFIG_SPL),$(obj)/dt-spl.dtb) \
+		$(if $(CONFIG_TPL),$(obj)/dt-tpl.dtb)
 	@:
 
-clean-files := dt.dtb.S dt-spl.dtb.S
+clean-files := dt.dtb.S dt-spl.dtb.S dt-tpl.dtb.S
 
 # Let clean descend into dts directories
 subdir- += ../arch/arm/dts ../arch/microblaze/dts ../arch/mips/dts ../arch/sandbox/dts ../arch/x86/dts ../arch/powerpc/dts ../arch/riscv/dts
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index 9f1f7445d71..8ebe6a9840e 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -31,8 +31,10 @@ endif
 
 ifeq ($(CONFIG_TPL_BUILD),y)
 SPL_BIN := u-boot-tpl
+SPL_NAME := tpl
 else
 SPL_BIN := u-boot-spl
+SPL_NAME := spl
 endif
 
 ifdef CONFIG_SPL_BUILD
@@ -298,7 +300,7 @@ $(obj)/$(SPL_BIN)-pad.bin: $(obj)/$(SPL_BIN)
 	@bss_size_str=$(shell $(NM) $< | awk 'BEGIN {size = 0} /__bss_size/ {size = $$1} END {print "ibase=16; " toupper(size)}' | bc); \
 	dd if=/dev/zero of=$@ bs=1 count=$${bss_size_str} 2>/dev/null;
 
-$(obj)/$(SPL_BIN).dtb: dts/dt-spl.dtb FORCE
+$(obj)/$(SPL_BIN).dtb: dts/dt-$(SPL_NAME).dtb FORCE
 	$(call if_changed,copy)
 
 pythonpath = PYTHONPATH=scripts/dtc/pylibfdt
-- 
2.29.2.729.g45daf8777d-goog



More information about the U-Boot mailing list