Re: dtbs_check issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 25, 2022 at 4:02 AM Lad, Prabhakar
<prabhakar.csengg@xxxxxxxxx> wrote:
>
> Hi Rob,
>
> On Fri, Jul 22, 2022 at 5:39 PM Rob Herring <robh+dt@xxxxxxxxxx> wrote:
> >
> > On Fri, Jul 22, 2022 at 7:29 AM Lad, Prabhakar
> > <prabhakar.csengg@xxxxxxxxx> wrote:
> > >
> > > On Fri, Jul 22, 2022 at 12:08 PM Lad, Prabhakar
> > > <prabhakar.csengg@xxxxxxxxx> wrote:
> > > >
> > > > On Thu, Jul 21, 2022 at 11:24 PM Rob Herring <robh+dt@xxxxxxxxxx> wrote:
> > > > >
> > > > > On Thu, Jul 21, 2022 at 4:18 PM Lad, Prabhakar
> > > > > <prabhakar.csengg@xxxxxxxxx> wrote:
> > > > > >
> > > > > > Hi Rob,
> > > > > >
> > > > > > On Thu, Jul 21, 2022 at 5:57 PM Rob Herring <robh+dt@xxxxxxxxxx> wrote:
> > > > > > >
> > > > > > > On Thu, Jul 21, 2022 at 9:23 AM Lad, Prabhakar
> > > > > > > <prabhakar.csengg@xxxxxxxxx> wrote:
> > > > > > > >
> > > > > > > > Hi Krzysztof,
> > > > > > > >
> > > > > > > > On Thu, Jul 21, 2022 at 4:12 PM Krzysztof Kozlowski
> > > > > > > > <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> > > > > > > > >
> > > > > > > > > On 21/07/2022 17:07, Lad, Prabhakar wrote:
> > > > > > > > > > Fyi keeping even a single SMARC board in arm renesas.yaml schema I see
> > > > > > > > > > dtbs_check failures.
> > > > > > > > > >
> > > > > > > > > > Any pointers on how I can get around this issue?
> > > > > > > > >
> > > > > > > > > Few months ago:
> > > > > > > > > https://lore.kernel.org/linux-devicetree/cf7728fd-b5c8-cd3d-6074-d27f38f86545@xxxxxxxxxx/
> > > > > > > > >
> > > > > > > > Thanks for the link.
> > > > > > > >
> > > > > > > > > Although Rob admitted in the thread this is in general allowed
> > > > > > > > > configuration, to me it is still confusing - the left-most compatible is
> > > > > > > > > not the most specific. Non obvious, confusing and it seems dtschema does
> > > > > > > > > not support it?
> > > > > > > > >
> > > > > > > > It looks like dtschema does not support it.
> > > > > > >
> > > > > > > The issue is the same as licensed IP where we have a generic
> > > > > > > compatible and per licensee compatibles in separate schemas. The
> > > > > > > solution anytime a compatible exists in more than 1 schema is a custom
> > > > > > > 'select' which excludes that compatible. That would be messy here
> > > > > > > though due to the large number of compatibles. Perhaps we could
> > > > > > > instead merge a custom select with the default generated one. Then the
> > > > > > > schema would just need:
> > > > > > >
> > > > > > > select:
> > > > > > >   not:
> > > > > > >     properties:
> > > > > > >       contains:
> > > > > > >         const: renesas,smarc-evk
> > > > > > >
> > > Being a novice here with the select, I added the below to ignore the
> > > arm schema if its the RISC-V board:
> > >
> > > diff --git a/Documentation/devicetree/bindings/arm/renesas.yaml
> > > b/Documentation/devicetree/bindings/arm/renesas.yaml
> > > index ff80152f092f..77e78136bfce 100644
> > > --- a/Documentation/devicetree/bindings/arm/renesas.yaml
> > > +++ b/Documentation/devicetree/bindings/arm/renesas.yaml
> > > @@ -9,6 +9,16 @@ title: Renesas SH-Mobile, R-Mobile, and R-Car
> > > Platform Device Tree Bindings
> > >  maintainers:
> > >    - Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> > >
> > > +# We want ignore this schema if the board is of RISC-V arch
> > > +select:
> > > +  not:
> > > +    properties:
> > > +      compatible:
> > > +        contains:
> > > +          const: renesas,r9a07g043f1
> > > +    required:
> > > +      - compatible
> > > +
> > >  properties:
> > >    $nodename:
> > >      const: '/'
> > >
> > > But when I run the dt_binding_check, I get the below issues:
> >
> > That would only work if we change how 'select' is generated. As I
> > said, the above would have to be merged with what we normally generate
> > (see processed-schema.json for what that looks like).
> >
> I'm a bit lost here!
>
> Could you please elaborate what you mean by merging a custom select
> with the default generated one. When I compared the
> processed-schema.json with/without my changes they were the same.

dtschema generates 'select' if it is not present and $nodename or
compatible properties are. It would instead need to combine your
'select' above with what it generates instead. Otherwise, wiht just
the above, it is going to match every node with compatible not
containing 'renesas,r9a07g043f1' which would be 99.9% of nodes.

Rob



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux