2022-11-01 22:13:35

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: [PATCH] kbuild: Add DTB_FILES variable for dtbs_check

Currently running dtbs_check compiles and runs the DT checker on all
enabled devicetrees against all dt-bindings. This can take a long time,
and is an unnecessary burden when just validating a new devicetree or
changes in an existing one, with the dt-bindings unchanged.

Similarly to DT_SCHEMA_FILES for dt_binding_check, add a DTB_FILES
variable that can be passed to the dtbs_check make command to restrict
which devicetrees are validated.

Signed-off-by: Nícolas F. R. A. Prado <[email protected]>

---
Usage example:
make dtbs_check DTB_FILES='arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dtb'

scripts/Makefile.lib | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index ec391c6a2641..f3ac6d3632a2 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -418,9 +418,16 @@ DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m)
DT_BINDING_DIR := Documentation/devicetree/bindings
DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json

+ifeq ($(DTB_FILES),)
quiet_cmd_dtb = DTC_CHK $@
cmd_dtb = $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
else
+SHOULD_CHECK_DTB = $(filter $@,$(DTB_FILES))
+
+quiet_cmd_dtb = $(if $(SHOULD_CHECK_DTB),DTC_CHK,DTC) $@
+ cmd_dtb = $(if $(SHOULD_CHECK_DTB), $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true , $(cmd_dtc))
+endif
+else
quiet_cmd_dtb = $(quiet_cmd_dtc)
cmd_dtb = $(cmd_dtc)
endif
--
2.38.1



Subject: Re: [PATCH] kbuild: Add DTB_FILES variable for dtbs_check

Il 01/11/22 23:03, Nícolas F. R. A. Prado ha scritto:
> Currently running dtbs_check compiles and runs the DT checker on all
> enabled devicetrees against all dt-bindings. This can take a long time,
> and is an unnecessary burden when just validating a new devicetree or
> changes in an existing one, with the dt-bindings unchanged.
>
> Similarly to DT_SCHEMA_FILES for dt_binding_check, add a DTB_FILES
> variable that can be passed to the dtbs_check make command to restrict
> which devicetrees are validated.
>
> Signed-off-by: Nícolas F. R. A. Prado <[email protected]>
>

Tested-by: AngeloGioacchino Del Regno <[email protected]>



2022-11-02 13:06:31

by Sebastian Reichel

[permalink] [raw]
Subject: Re: [PATCH] kbuild: Add DTB_FILES variable for dtbs_check

Hi N?colas,

On Tue, Nov 01, 2022 at 06:03:03PM -0400, N?colas F. R. A. Prado wrote:
> Currently running dtbs_check compiles and runs the DT checker on all
> enabled devicetrees against all dt-bindings. This can take a long time,
> and is an unnecessary burden when just validating a new devicetree or
> changes in an existing one, with the dt-bindings unchanged.
>
> Similarly to DT_SCHEMA_FILES for dt_binding_check, add a DTB_FILES
> variable that can be passed to the dtbs_check make command to restrict
> which devicetrees are validated.
>
> Signed-off-by: N?colas F. R. A. Prado <[email protected]>
>
> ---
> Usage example:
> make dtbs_check DTB_FILES='arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dtb'

Please add the usage example to the 'Running checks' section in
Documentation/devicetree/bindings/writing-schema.rst

-- Sebastian

> scripts/Makefile.lib | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index ec391c6a2641..f3ac6d3632a2 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -418,9 +418,16 @@ DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m)
> DT_BINDING_DIR := Documentation/devicetree/bindings
> DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json
>
> +ifeq ($(DTB_FILES),)
> quiet_cmd_dtb = DTC_CHK $@
> cmd_dtb = $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true
> else
> +SHOULD_CHECK_DTB = $(filter $@,$(DTB_FILES))
> +
> +quiet_cmd_dtb = $(if $(SHOULD_CHECK_DTB),DTC_CHK,DTC) $@
> + cmd_dtb = $(if $(SHOULD_CHECK_DTB), $(cmd_dtc) ; $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true , $(cmd_dtc))
> +endif
> +else
> quiet_cmd_dtb = $(quiet_cmd_dtc)
> cmd_dtb = $(cmd_dtc)
> endif
> --
> 2.38.1
>
>
> --
> To unsubscribe, send mail to [email protected].


Attachments:
(No filename) (2.04 kB)
signature.asc (849.00 B)
Download all attachments

2022-11-02 17:18:21

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: Re: [PATCH] kbuild: Add DTB_FILES variable for dtbs_check

On Tue, Nov 01, 2022 at 06:03:03PM -0400, N?colas F. R. A. Prado wrote:
> Currently running dtbs_check compiles and runs the DT checker on all
> enabled devicetrees against all dt-bindings. This can take a long time,
> and is an unnecessary burden when just validating a new devicetree or
> changes in an existing one, with the dt-bindings unchanged.
>
> Similarly to DT_SCHEMA_FILES for dt_binding_check, add a DTB_FILES
> variable that can be passed to the dtbs_check make command to restrict
> which devicetrees are validated.
>
> Signed-off-by: N?colas F. R. A. Prado <[email protected]>
>
> ---
> Usage example:
> make dtbs_check DTB_FILES='arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dtb'

Hi,

I have just learned that it is already possible to achieve the same thing by
passing the dtbs explicitly to make and enabling the DTBS_CHECK flag like so:

make CHECK_DTBS=y mediatek/mt8192-asurada-spherion-r0.dtb

This flag isn't documented anywhere outside the Makefile however. So I'll send a
patch documenting it shortly, and this commit can be ignored.

Thanks,
N?colas

2022-11-02 22:54:20

by Nícolas F. R. A. Prado

[permalink] [raw]
Subject: Re: [PATCH] kbuild: Add DTB_FILES variable for dtbs_check

On Wed, Nov 02, 2022 at 01:13:48PM -0400, N?colas F. R. A. Prado wrote:
> On Tue, Nov 01, 2022 at 06:03:03PM -0400, N?colas F. R. A. Prado wrote:
> > Currently running dtbs_check compiles and runs the DT checker on all
> > enabled devicetrees against all dt-bindings. This can take a long time,
> > and is an unnecessary burden when just validating a new devicetree or
> > changes in an existing one, with the dt-bindings unchanged.
> >
> > Similarly to DT_SCHEMA_FILES for dt_binding_check, add a DTB_FILES
> > variable that can be passed to the dtbs_check make command to restrict
> > which devicetrees are validated.
> >
> > Signed-off-by: N?colas F. R. A. Prado <[email protected]>
> >
> > ---
> > Usage example:
> > make dtbs_check DTB_FILES='arch/arm64/boot/dts/mediatek/mt8192-asurada-spherion-r0.dtb arch/arm64/boot/dts/mediatek/mt8192-asurada-hayato-r1.dtb'
>
> Hi,
>
> I have just learned that it is already possible to achieve the same thing by
> passing the dtbs explicitly to make and enabling the DTBS_CHECK flag like so:
>
> make CHECK_DTBS=y mediatek/mt8192-asurada-spherion-r0.dtb
>
> This flag isn't documented anywhere outside the Makefile however. So I'll send a
> patch documenting it shortly, and this commit can be ignored.

Patch: https://lore.kernel.org/all/[email protected]

Thanks,
N?colas