2024-02-25 15:12:58

by Alexander Stein

[permalink] [raw]
Subject: [PATCH 1/1] kbuild: Add DT schema check also when applying DT overlays

Add a similar mechanism as for regular DT files to call the DT checker
after applying DT overlays to base DT files.

Signed-off-by: Alexander Stein <[email protected]>
---
I'm unsure if this is the "right" way, or if the multi-dtb-y lines
should be moved. But checking for schemas in DT overlays is a nice thing.

scripts/Makefile.lib | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 038a12e15586..964892b18f95 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -406,10 +406,6 @@ cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ;
quiet_cmd_fdtoverlay = DTOVL $@
cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs)

-$(multi-dtb-y): FORCE
- $(call if_changed,fdtoverlay)
-$(call multi_depend, $(multi-dtb-y), .dtb, -dtbs)
-
ifneq ($(CHECK_DTBS)$(CHECK_DT_BINDING),)
DT_CHECKER ?= dt-validate
DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m)
@@ -418,9 +414,13 @@ DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json

quiet_cmd_dtb = DTC_CHK $@
cmd_dtb = $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
+quiet_cmd_dtbo = DTOVL_CHK $@
+ cmd_dtbo = $(cmd_fdtoverlay) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
else
quiet_cmd_dtb = $(quiet_cmd_dtc)
cmd_dtb = $(cmd_dtc)
+quiet_cmd_dtbo = $(quiet_cmd_fdtoverlay)
+ cmd_dtbo = $(cmd_fdtoverlay)
endif

$(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
@@ -429,6 +429,10 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
$(obj)/%.dtbo: $(src)/%.dtso $(DTC) FORCE
$(call if_changed_dep,dtc)

+$(multi-dtb-y): FORCE
+ $(call if_changed,dtbo)
+$(call multi_depend, $(multi-dtb-y), .dtb, -dtbs)
+
dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)

# Bzip2
--
2.44.0



2024-02-26 07:03:45

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH 1/1] kbuild: Add DT schema check also when applying DT overlays

+ Rob Herring, DT List


On Mon, Feb 26, 2024 at 12:12 AM Alexander Stein
<[email protected]> wrote:
>
> Add a similar mechanism as for regular DT files to call the DT checker
> after applying DT overlays to base DT files.
>
> Signed-off-by: Alexander Stein <[email protected]>
> ---
> I'm unsure if this is the "right" way, or if the multi-dtb-y lines
> should be moved. But checking for schemas in DT overlays is a nice thing.



There is no need to move the multi-dtb-y line.




> scripts/Makefile.lib | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 038a12e15586..964892b18f95 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -406,10 +406,6 @@ cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ;
> quiet_cmd_fdtoverlay = DTOVL $@
> cmd_fdtoverlay = $(objtree)/scripts/dtc/fdtoverlay -o $@ -i $(real-prereqs)
>
> -$(multi-dtb-y): FORCE
> - $(call if_changed,fdtoverlay)
> -$(call multi_depend, $(multi-dtb-y), .dtb, -dtbs)
> -
> ifneq ($(CHECK_DTBS)$(CHECK_DT_BINDING),)
> DT_CHECKER ?= dt-validate
> DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m)
> @@ -418,9 +414,13 @@ DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json
>
> quiet_cmd_dtb = DTC_CHK $@
> cmd_dtb = $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
> +quiet_cmd_dtbo = DTOVL_CHK $@
> + cmd_dtbo = $(cmd_fdtoverlay) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
> else
> quiet_cmd_dtb = $(quiet_cmd_dtc)
> cmd_dtb = $(cmd_dtc)
> +quiet_cmd_dtbo = $(quiet_cmd_fdtoverlay)
> + cmd_dtbo = $(cmd_fdtoverlay)
> endif
>
> $(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
> @@ -429,6 +429,10 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE
> $(obj)/%.dtbo: $(src)/%.dtso $(DTC) FORCE
> $(call if_changed_dep,dtc)
>
> +$(multi-dtb-y): FORCE
> + $(call if_changed,dtbo)
> +$(call multi_depend, $(multi-dtb-y), .dtb, -dtbs)
> +
> dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)
>
> # Bzip2
> --
> 2.44.0
>


--
Best Regards
Masahiro Yamada

2024-02-27 04:13:42

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH 1/1] kbuild: Add DT schema check also when applying DT overlays

On Mon, Feb 26, 2024 at 1:03 AM Masahiro Yamada <[email protected]> wrote:
>
> + Rob Herring, DT List
>
>
> On Mon, Feb 26, 2024 at 12:12 AM Alexander Stein
> <[email protected]> wrote:
> >
> > Add a similar mechanism as for regular DT files to call the DT checker
> > after applying DT overlays to base DT files.

I suspect this needs more work than just enabling checking. Otherwise,
I would have done just that. Depending on the split with an overlay,
we could see strange results.

The requirement in the kernel is overlays be applied to a base tree at
build time (though that is not checked ATM. When we check that result,
we're checking the overlay anyways. Obviously, that's a bit harder to
trace the source of errors, but it is otherwise redundant to check
overlays in addition.

Rob