Linux-mediatek Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag
@ 2022-11-02 21:43 Nícolas F. R. A. Prado
  2022-11-03  9:19 ` AngeloGioacchino Del Regno
  2022-11-16 13:55 ` Marijn Suijten
  0 siblings, 2 replies; 5+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-11-02 21:43 UTC (permalink / raw)
  To: Rob Herring
  Cc: AngeloGioacchino Del Regno, kernel, Nícolas F. R. A. Prado,
	Krzysztof Kozlowski, Matthias Brugger, devicetree,
	linux-arm-kernel, linux-kernel, linux-mediatek

It is possible to run checks on a Devicetree by passing the CHECK_DTBS
flag when building. This is a useful shortcut to the dtbs_check make
target since it avoids checking unrelated Devicetrees, which can take
some time and is unnecessary if no bindings were modified. Document it.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

---

 Documentation/devicetree/bindings/writing-schema.rst | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/writing-schema.rst b/Documentation/devicetree/bindings/writing-schema.rst
index 4a381d20f2b4..55ad556472b4 100644
--- a/Documentation/devicetree/bindings/writing-schema.rst
+++ b/Documentation/devicetree/bindings/writing-schema.rst
@@ -167,6 +167,13 @@ setting the ``DT_SCHEMA_FILES`` variable to a specific schema file or pattern.
     make dt_binding_check DT_SCHEMA_FILES=/gpio/
     make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
 
+Note that ``make dtbs_check`` will validate every DT source file that is
+enabled. When making changes to a DT but not to the bindings, a possible
+shortcut to validate only the DT in question is to explicitly build it with
+the ``CHECK_DTBS`` flag enabled. For example::
+
+    make CHECK_DTBS=y mediatek/mt8192-evb.dtb
+
 
 json-schema Resources
 ---------------------
-- 
2.38.1



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag
  2022-11-02 21:43 [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag Nícolas F. R. A. Prado
@ 2022-11-03  9:19 ` AngeloGioacchino Del Regno
  2022-11-03 15:01   ` Nícolas F. R. A. Prado
  2022-11-16 13:55 ` Marijn Suijten
  1 sibling, 1 reply; 5+ messages in thread
From: AngeloGioacchino Del Regno @ 2022-11-03  9:19 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado, Rob Herring
  Cc: kernel, Krzysztof Kozlowski, Matthias Brugger, devicetree,
	linux-arm-kernel, linux-kernel, linux-mediatek

Il 02/11/22 22:43, Nícolas F. R. A. Prado ha scritto:
> It is possible to run checks on a Devicetree by passing the CHECK_DTBS
> flag when building. This is a useful shortcut to the dtbs_check make
> target since it avoids checking unrelated Devicetrees, which can take
> some time and is unnecessary if no bindings were modified. Document it.
> 
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>  > ---
> 
>   Documentation/devicetree/bindings/writing-schema.rst | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/writing-schema.rst b/Documentation/devicetree/bindings/writing-schema.rst
> index 4a381d20f2b4..55ad556472b4 100644
> --- a/Documentation/devicetree/bindings/writing-schema.rst
> +++ b/Documentation/devicetree/bindings/writing-schema.rst
> @@ -167,6 +167,13 @@ setting the ``DT_SCHEMA_FILES`` variable to a specific schema file or pattern.
>       make dt_binding_check DT_SCHEMA_FILES=/gpio/
>       make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
>   
> +Note that ``make dtbs_check`` will validate every DT source file that is

"Note that xxxx" looks a bit repeated... read:

Note that ``dtbs_check`` will skip any binding schema files with errors.
(etc etc)

Note that ``make dtbs_check`` will validate every DT source file ...
(etc etc)

Perhaps we can change the first paragraph saying
"In order to perform validation of DT source files, use..."
to something like:

In order to perform validation of all DT source files, use the ``dtbs_check``
target, or set the ``CHECK_DTBS`` variable to ``y`` when building specific DTs::

::

     make dtbs_check
     make CHECK_DTBS=y mediatek/mt8192-evb.dtb

Any opinion?

Cheers,
Angelo


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag
  2022-11-03  9:19 ` AngeloGioacchino Del Regno
@ 2022-11-03 15:01   ` Nícolas F. R. A. Prado
  0 siblings, 0 replies; 5+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-11-03 15:01 UTC (permalink / raw)
  To: AngeloGioacchino Del Regno
  Cc: Rob Herring, kernel, Krzysztof Kozlowski, Matthias Brugger,
	devicetree, linux-arm-kernel, linux-kernel, linux-mediatek

On Thu, Nov 03, 2022 at 10:19:15AM +0100, AngeloGioacchino Del Regno wrote:
> Il 02/11/22 22:43, Nícolas F. R. A. Prado ha scritto:
> > It is possible to run checks on a Devicetree by passing the CHECK_DTBS
> > flag when building. This is a useful shortcut to the dtbs_check make
> > target since it avoids checking unrelated Devicetrees, which can take
> > some time and is unnecessary if no bindings were modified. Document it.
> > 
> > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> >  > ---
> > 
> >   Documentation/devicetree/bindings/writing-schema.rst | 7 +++++++
> >   1 file changed, 7 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/writing-schema.rst b/Documentation/devicetree/bindings/writing-schema.rst
> > index 4a381d20f2b4..55ad556472b4 100644
> > --- a/Documentation/devicetree/bindings/writing-schema.rst
> > +++ b/Documentation/devicetree/bindings/writing-schema.rst
> > @@ -167,6 +167,13 @@ setting the ``DT_SCHEMA_FILES`` variable to a specific schema file or pattern.
> >       make dt_binding_check DT_SCHEMA_FILES=/gpio/
> >       make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
> > +Note that ``make dtbs_check`` will validate every DT source file that is
> 
> "Note that xxxx" looks a bit repeated... read:
> 
> Note that ``dtbs_check`` will skip any binding schema files with errors.
> (etc etc)
> 
> Note that ``make dtbs_check`` will validate every DT source file ...
> (etc etc)
> 
> Perhaps we can change the first paragraph saying
> "In order to perform validation of DT source files, use..."
> to something like:
> 
> In order to perform validation of all DT source files, use the ``dtbs_check``
> target, or set the ``CHECK_DTBS`` variable to ``y`` when building specific DTs::
> 
> ::
> 
>     make dtbs_check
>     make CHECK_DTBS=y mediatek/mt8192-evb.dtb
> 
> Any opinion?

Something to keep in mind is that the purpose of this section is to describe how
to validate binding changes (both on the binding itself and in the DTs that use
them). For this, people really should be using dtbs_check since otherwise a new
warning might be missed. Using CHECK_DTBS is more suitable for a different use
case, which is to validate some dtbs without having changed the bindings, which
is why I added it at the end of the section more as a side note. For this
reason I think it's better to keep them separate.

About repeating the "Note that", that could just be changed for "It's worth
noting that" or something similar.

Thanks,
Nícolas


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag
  2022-11-02 21:43 [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag Nícolas F. R. A. Prado
  2022-11-03  9:19 ` AngeloGioacchino Del Regno
@ 2022-11-16 13:55 ` Marijn Suijten
  2022-11-16 14:01   ` Marijn Suijten
  1 sibling, 1 reply; 5+ messages in thread
From: Marijn Suijten @ 2022-11-16 13:55 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado
  Cc: Rob Herring, AngeloGioacchino Del Regno, kernel,
	Krzysztof Kozlowski, Matthias Brugger, devicetree,
	linux-arm-kernel, linux-kernel, linux-mediatek

Hi Nícolas,

On 2022-11-02 17:43:00, Nícolas F. R. A. Prado wrote:
> It is possible to run checks on a Devicetree by passing the CHECK_DTBS
> flag when building. This is a useful shortcut to the dtbs_check make
> target since it avoids checking unrelated Devicetrees, which can take
> some time and is unnecessary if no bindings were modified. Document it.
> 
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> 
> ---
> 
>  Documentation/devicetree/bindings/writing-schema.rst | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/writing-schema.rst b/Documentation/devicetree/bindings/writing-schema.rst
> index 4a381d20f2b4..55ad556472b4 100644
> --- a/Documentation/devicetree/bindings/writing-schema.rst
> +++ b/Documentation/devicetree/bindings/writing-schema.rst
> @@ -167,6 +167,13 @@ setting the ``DT_SCHEMA_FILES`` variable to a specific schema file or pattern.
>      make dt_binding_check DT_SCHEMA_FILES=/gpio/
>      make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
>  
> +Note that ``make dtbs_check`` will validate every DT source file that is
> +enabled. When making changes to a DT but not to the bindings, a possible
> +shortcut to validate only the DT in question is to explicitly build it with
> +the ``CHECK_DTBS`` flag enabled. For example::
> +
> +    make CHECK_DTBS=y mediatek/mt8192-evb.dtb

I have a bit of trouble getting this to work on a _clean_ out directory
(perhaps this should have been reported at the original patch, I had
always been using Dmitry's version [1] which didn't suffer from this
problem).

Consider running with the following:

    rm out -r
    make ARCH=arm64 O=out defconfig
    make ARCH=arm64 O=out CHECK_DTBS=y qcom/sm8450-sony-xperia-nagara-pdx223.dtb

After compiling preliminaries, it exits with:

    make[3]: *** No rule to make target 'arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx223.dtb'.  Stop.
    make[2]: *** [../scripts/Makefile.build:500: arch/arm64/boot/dts/qcom] Error 2
    make[1]: *** [/kernel/Makefile:1460: qcom/sm8450-sony-xperia-nagara-pdx223.dtb] Error 2
    make[1]: Leaving directory '/kernel/out'
    make: *** [Makefile:231: __sub-make] Error 2

However, if I lint all DTBs first by running `dtbs_check`, it seems the
schema preliminaries are built:

      LINT    Documentation/devicetree/bindings
      CHKDT   Documentation/devicetree/bindings/processed-schema.json
    ... bunch of warnings
      SCHEMA  Documentation/devicetree/bindings/processed-schema.json

And here I ctrl+c the build so that it doesn't run DTC_CHK over every
dts.  If I now re-run the original command on my .dtb of choice, it
completes successfully with the warnings that I expect.  Is the logic
behind `CHECK_DTBS=y` simply missing a step to make sure SCHEMA is built
and up-to-date?

Aside from not working in a clean output directly, could this imply
schema changes (edits in Documentation/devicetree/bindings) _are not_
propagated when running with `CHECK_DTBS=y?

At the same time running this command twice results in no output the
second time around, supposedly because the dtb has "already been built".
Is that also something we can improve?

[1]: https://lore.kernel.org/linux-arm-msm/20220623144357.297252-1-dmitry.baryshkov@linaro.org/

Thanks!
- Marijn


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag
  2022-11-16 13:55 ` Marijn Suijten
@ 2022-11-16 14:01   ` Marijn Suijten
  0 siblings, 0 replies; 5+ messages in thread
From: Marijn Suijten @ 2022-11-16 14:01 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado
  Cc: Rob Herring, AngeloGioacchino Del Regno, kernel,
	Krzysztof Kozlowski, Matthias Brugger, devicetree,
	linux-arm-kernel, linux-kernel, linux-mediatek, Dmitry Baryshkov,
	Konrad Dybcio

+CC Konrad and Dmitry whom I discussed this with before.

On 2022-11-16 14:55:04, Marijn Suijten wrote:
> Hi Nícolas,
> 
> On 2022-11-02 17:43:00, Nícolas F. R. A. Prado wrote:
> > It is possible to run checks on a Devicetree by passing the CHECK_DTBS
> > flag when building. This is a useful shortcut to the dtbs_check make
> > target since it avoids checking unrelated Devicetrees, which can take
> > some time and is unnecessary if no bindings were modified. Document it.
> > 
> > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > 
> > ---
> > 
> >  Documentation/devicetree/bindings/writing-schema.rst | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/Documentation/devicetree/bindings/writing-schema.rst b/Documentation/devicetree/bindings/writing-schema.rst
> > index 4a381d20f2b4..55ad556472b4 100644
> > --- a/Documentation/devicetree/bindings/writing-schema.rst
> > +++ b/Documentation/devicetree/bindings/writing-schema.rst
> > @@ -167,6 +167,13 @@ setting the ``DT_SCHEMA_FILES`` variable to a specific schema file or pattern.
> >      make dt_binding_check DT_SCHEMA_FILES=/gpio/
> >      make dtbs_check DT_SCHEMA_FILES=trivial-devices.yaml
> >  
> > +Note that ``make dtbs_check`` will validate every DT source file that is
> > +enabled. When making changes to a DT but not to the bindings, a possible
> > +shortcut to validate only the DT in question is to explicitly build it with
> > +the ``CHECK_DTBS`` flag enabled. For example::
> > +
> > +    make CHECK_DTBS=y mediatek/mt8192-evb.dtb
> 
> I have a bit of trouble getting this to work on a _clean_ out directory
> (perhaps this should have been reported at the original patch, I had
> always been using Dmitry's version [1] which didn't suffer from this
> problem).
> 
> Consider running with the following:
> 
>     rm out -r
>     make ARCH=arm64 O=out defconfig
>     make ARCH=arm64 O=out CHECK_DTBS=y qcom/sm8450-sony-xperia-nagara-pdx223.dtb
> 
> After compiling preliminaries, it exits with:
> 
>     make[3]: *** No rule to make target 'arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara-pdx223.dtb'.  Stop.
>     make[2]: *** [../scripts/Makefile.build:500: arch/arm64/boot/dts/qcom] Error 2
>     make[1]: *** [/kernel/Makefile:1460: qcom/sm8450-sony-xperia-nagara-pdx223.dtb] Error 2
>     make[1]: Leaving directory '/kernel/out'
>     make: *** [Makefile:231: __sub-make] Error 2
> 
> However, if I lint all DTBs first by running `dtbs_check`, it seems the
> schema preliminaries are built:
> 
>       LINT    Documentation/devicetree/bindings
>       CHKDT   Documentation/devicetree/bindings/processed-schema.json
>     ... bunch of warnings
>       SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> 
> And here I ctrl+c the build so that it doesn't run DTC_CHK over every
> dts.  If I now re-run the original command on my .dtb of choice, it
> completes successfully with the warnings that I expect.  Is the logic
> behind `CHECK_DTBS=y` simply missing a step to make sure SCHEMA is built
> and up-to-date?
> 
> Aside from not working in a clean output directly, could this imply
> schema changes (edits in Documentation/devicetree/bindings) _are not_
> propagated when running with `CHECK_DTBS=y?
> 
> At the same time running this command twice results in no output the
> second time around, supposedly because the dtb has "already been built".
> Is that also something we can improve?
> 
> [1]: https://lore.kernel.org/linux-arm-msm/20220623144357.297252-1-dmitry.baryshkov@linaro.org/
> 
> Thanks!
> - Marijn
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-16 14:01 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-02 21:43 [PATCH] docs: dt: writing-schema: Document usage of CHECK_DTBS make flag Nícolas F. R. A. Prado
2022-11-03  9:19 ` AngeloGioacchino Del Regno
2022-11-03 15:01   ` Nícolas F. R. A. Prado
2022-11-16 13:55 ` Marijn Suijten
2022-11-16 14:01   ` Marijn Suijten

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox