Re: [PATCH v2] dt-bindings: mips: add CPU bindings for MIPS architecture

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

 



Hi Krzysztof,

On Wed, Sep 21, 2022 at 8:42 AM Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> On 20/09/2022 07:51, Sergio Paracuellos wrote:
> > Hi Krzysztof,
> >
> > On Mon, Sep 19, 2022 at 6:08 PM Krzysztof Kozlowski
> > <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> >>
> >> On 19/09/2022 15:41, Sergio Paracuellos wrote:
> >>> Hi Krzysztof,
> >>>
> >>> On Mon, Sep 19, 2022 at 2:48 PM Krzysztof Kozlowski
> >>> <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> >>>>
> >>>> On 19/09/2022 14:29, Sergio Paracuellos wrote:
> >>>>>>
> >>>>>> else mips-hpt-frequency: false
> >>>>>>
> >>>>>>> +
> >>>>>>> +required:
> >>>>>>> +  - compatible
> >>>>>>> +
> >>>>>>> +additionalProperties: true
> >>>>>>
> >>>>>> and this is why you did not notice errors...
> >>>>>
> >>>>> Current arch/mips/boot/dts folder dts files are a mess for cpu nodes,
> >>>>> so I set additionalProperties to true and only make required for
> >>>>> 'compatible'. What should be the correct approach?
> >>>>
> >>>> This is okay, but it caused you did not notice errors...
> >>>>
> >>>>>
> >>>>>>
> >>>>>>> +
> >>>>>>> +examples:
> >>>>>>> +  - |
> >>>>>>> +    cpus {
> >>>>>>> +      #size-cells = <0>;
> >>>>>>> +      #address-cells = <1>;
> >>>>>>> +
> >>>>>>> +      cpu@0 {
> >>>>>>> +        device_type = "cpu";
> >>>>>>> +        compatible = "mips,mips1004Kc";
> >>>>>>> +        reg = <0>;
> >>>>>>> +      };
> >>>>>>> +
> >>>>>>> +      cpu@1 {
> >>>>>>> +        device_type = "cpu";
> >>>>>>> +        compatible = "mips,mips1004Kc";
> >>>>>>> +        reg = <1>;
> >>>>>>> +      };
> >>>>>>> +    };
> >>>>>>> +
> >>>>>>> +  - |
> >>>>>>> +    // Example 2 (BMIPS CPU)
> >>>>>>> +    cpus {
> >>>>>>> +      #address-cells = <1>;
> >>>>>>> +      #size-cells = <0>;
> >>>>>>> +
> >>>>>>> +      mips-hpt-frequency = <150000000>;
> >>>>>>
> >>>>>> Does not match your bindings. Are you sure you tested the patches?
> >>>>>
> >>>>> Yes I did:
> >>>>>
> >>>>> $ make dt_binding_check
> >>>>> DT_SCHEMA_FILES=Documentation/devicetree/bindings/mips/cpus.yaml
> >>>>>   LINT    Documentation/devicetree/bindings
> >>>>>   CHKDT   Documentation/devicetree/bindings/processed-schema.json
> >>>>>   SCHEMA  Documentation/devicetree/bindings/processed-schema.json
> >>>>>   DTEX    Documentation/devicetree/bindings/mips/cpus.example.dts
> >>>>>   DTC     Documentation/devicetree/bindings/mips/cpus.example.dtb
> >>>>> ' CHECK   Documentation/devicetree/bindings/mips/cpus.example.dtb
> >>>>>
> >>>>> Can you please point me to a sample of how to make required in a
> >>>>> parent node of cpu@X property 'mips-hpt-frequency' only for some
> >>>>> compatible strings inside the node? What can this be properly
> >>>>> expressed using schema??
> >>>>> I was looking and testing different things for a while without success at all.
> >>>>
> >>>> You either define new schema for /cpus node (and match by name, define
> >>>> children etc) or include it in schema for top-level properties. The
> >>>> first is tricky, because the cpus node does not have compatible (like
> >>>> nvidia,tegra194-ccplex.yaml).
> >
> > Ok so if I am understanding correctly having two schemas is a way to go:
> >
> > One for brcm,bmips-cpus.yaml (since there is no compatible, should
> > this be a valid name for this?) containing something like:
> >
> > properties:
> >   $nodename:
> >      const: cpus
> >
> >      mips-hpt-frequency:
> >         $ref: /schemas/types.yaml#/definitions/uint32
> >         description: |
> >            This is common to all CPUs in the system so it lives
> >             under the "cpus" node.
> >
> > additionalProperties: true
>
> Almost. Such schema will allow mips-hpt-frequency in each cpus node,
> everywhere. On every board and architecture.

Yes, that is what I thought since no compatible to match this is
included in current node.

>
> You need to limit it per top-level compatibles.

Any sample of how to do this? So this bmips SoCs use compatible
strings that are described in:
https://elixir.bootlin.com/linux/v6.0-rc5/source/Documentation/devicetree/bindings/mips/brcm/soc.txt

Can the top level compatible string be used in some way to filter this
easily from this new 'brcm,bmips-cpus.yaml'

>
> You can also wait a week and maybe Rob will have some ideas.

Ideas are always welcome :). Ok, we can wait to Rob and see what
should be the correct approach to handle this.

Thanks,
    Sergio Paracuellos
>
> >
> > examples:
> >   - |
> >      cpus {
> >        #address-cells = <1>;
> >        #size-cells = <0>;
> >
> >         mips-hpt-frequency = <150000000>;
> >
> >         cpu@0 {
> >           compatible = "brcm,bmips4350";
> >           device_type = "cpu";
> >            reg = <0>;
> >         };
> >
> >          cpu@1 {
> >            compatible = "brcm,bmips4350";
> >            device_type = "cpu";
> >            reg = <1>;
> >         };
> >   };
> >
> > And the other as 'cpus.yaml' having:
>
> Yes.
>
> Best regards,
> Krzysztof



[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