[U-Boot] [PATCH] dts: force dtb recompilation

The dependency for .dtb = .dts is not enough in dts Makefile, as the dts files are dts pre-proprocessed (include dtsi files, as specific *-u-boot.dtsi).
For arm architecture, the dependency is correctly managed in makefile of arch/arm/dts with .cmd files, it is needed to execute make in this directory.
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com --- Issue see on stm32mp1 board
stm32mp157c-ed1.dts is included in stm32mp157c-ev1.dts and dependency is not correctly managed (ev1 is not recompiled when ed1 is modified)
dts/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dts/Makefile b/dts/Makefile index a7a6043..bcd611f 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -17,7 +17,6 @@ ifneq ($(EXT_DTB),) DTB := $(EXT_DTB) else DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb -dtb_depends += $(DTB:.dtb=.dts) endif
$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE @@ -28,7 +27,7 @@ $(obj)/dt.dtb: $(DTB) FORCE
targets += dt.dtb dt-spl.dtb
-$(DTB): $(dtb_depends) +$(DTB): $(dtb_depends) FORCE ifeq ($(EXT_DTB),) $(Q)$(MAKE) $(build)=$(ARCH_PATH) $@ endif

On Wed, Mar 06, 2019 at 02:30:59PM +0100, Patrick Delaunay wrote:
The dependency for .dtb = .dts is not enough in dts Makefile, as the dts files are dts pre-proprocessed (include dtsi files, as specific *-u-boot.dtsi).
For arm architecture, the dependency is correctly managed in makefile of arch/arm/dts with .cmd files, it is needed to execute make in this directory.
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com
Issue see on stm32mp1 board
stm32mp157c-ed1.dts is included in stm32mp157c-ev1.dts and dependency is not correctly managed (ev1 is not recompiled when ed1 is modified)
dts/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dts/Makefile b/dts/Makefile index a7a6043..bcd611f 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -17,7 +17,6 @@ ifneq ($(EXT_DTB),) DTB := $(EXT_DTB) else DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb -dtb_depends += $(DTB:.dtb=.dts) endif
$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE @@ -28,7 +27,7 @@ $(obj)/dt.dtb: $(DTB) FORCE
targets += dt.dtb dt-spl.dtb
-$(DTB): $(dtb_depends) +$(DTB): $(dtb_depends) FORCE ifeq ($(EXT_DTB),) $(Q)$(MAKE) $(build)=$(ARCH_PATH) $@ endif
Yamada-san, what do you think of this? And I'm grabbing https://patchwork.ozlabs.org/patch/1052939/ shortly, thanks!

Hi Patrick,
On Wed, Mar 6, 2019 at 10:31 PM Patrick Delaunay patrick.delaunay@st.com wrote:
The dependency for .dtb = .dts is not enough in dts Makefile, as the dts files are dts pre-proprocessed (include dtsi files, as specific *-u-boot.dtsi).
For arm architecture, the dependency is correctly managed in makefile of arch/arm/dts with .cmd files, it is needed to execute make in this directory.
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com
Issue see on stm32mp1 board
stm32mp157c-ed1.dts is included in stm32mp157c-ev1.dts and dependency is not correctly managed (ev1 is not recompiled when ed1 is modified)
Do you still see this issue?
I do not see the problem any more because the following commit fixed it.
commit 2737dfe096b6c34654734a5a4dc5f4b4962c5617 Author: Stephen Warren swarren@nvidia.com Date: Tue Feb 26 12:20:25 2019 -0700
kbuild: make arch-dtbs target PHONY
Could you test it on the latest git version?
dts/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dts/Makefile b/dts/Makefile index a7a6043..bcd611f 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -17,7 +17,6 @@ ifneq ($(EXT_DTB),) DTB := $(EXT_DTB) else DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb -dtb_depends += $(DTB:.dtb=.dts) endif
$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE @@ -28,7 +27,7 @@ $(obj)/dt.dtb: $(DTB) FORCE
targets += dt.dtb dt-spl.dtb
-$(DTB): $(dtb_depends) +$(DTB): $(dtb_depends) FORCE ifeq ($(EXT_DTB),) $(Q)$(MAKE) $(build)=$(ARCH_PATH) $@ endif -- 2.7.4
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Hi Masahiro,
From: Masahiro Yamada yamada.masahiro@socionext.com Sent: samedi 9 mars 2019 16:57
Hi Patrick,
On Wed, Mar 6, 2019 at 10:31 PM Patrick Delaunay patrick.delaunay@st.com wrote:
The dependency for .dtb = .dts is not enough in dts Makefile, as the dts files are dts pre-proprocessed (include dtsi files, as specific *-u-boot.dtsi).
For arm architecture, the dependency is correctly managed in makefile of arch/arm/dts with .cmd files, it is needed to execute make in this directory.
Signed-off-by: Patrick Delaunay patrick.delaunay@st.com
Issue see on stm32mp1 board
stm32mp157c-ed1.dts is included in stm32mp157c-ev1.dts and dependency is not correctly managed (ev1 is not recompiled when ed1 is modified)
Do you still see this issue?
In fact no: I don’t' see the issue anymore on v2019.04-rc3
I detect the issue on v2019.04-rc2... but I don't check it again when I push my patch on the master branch top.
I do not see the problem any more because the following commit fixed it.
commit 2737dfe096b6c34654734a5a4dc5f4b4962c5617 Author: Stephen Warren swarren@nvidia.com Date: Tue Feb 26 12:20:25 2019 -0700
kbuild: make arch-dtbs target PHONY
Could you test it on the latest git version?
Tested on - v2019.04-rc2 => reproduced - v2019.04-rc3 => NOT reproduced - v2019.04-rc2 + Stephen path => NOT reproduced
So you are right, the Stephen patch solve already my issue and my patch can be dropped.
dts/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/dts/Makefile b/dts/Makefile index a7a6043..bcd611f 100644 --- a/dts/Makefile +++ b/dts/Makefile @@ -17,7 +17,6 @@ ifneq ($(EXT_DTB),) DTB := $(EXT_DTB) else DTB := $(ARCH_PATH)/$(DEVICE_TREE).dtb -dtb_depends += $(DTB:.dtb=.dts) endif
$(obj)/dt-spl.dtb: $(DTB) $(objtree)/tools/fdtgrep FORCE @@ -28,7 +27,7 @@ $(obj)/dt.dtb: $(DTB) FORCE
targets += dt.dtb dt-spl.dtb
-$(DTB): $(dtb_depends) +$(DTB): $(dtb_depends) FORCE ifeq ($(EXT_DTB),) $(Q)$(MAKE) $(build)=$(ARCH_PATH) $@ endif -- 2.7.4
U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
-- Best Regards Masahiro Yamada
Regards Patrick
participants (4)
-
Masahiro Yamada
-
Patrick DELAUNAY
-
Patrick Delaunay
-
Tom Rini