diff mbox series

[v3,2/5] dt-bindings: mips: mips-cm: Add a new compatible string for EyeQ6

Message ID 20250123-cluster-hci-broken-v3-2-8a7ec57cbf68@bootlin.com (mailing list archive)
State New
Headers show
Series MIPS: Allow using multi-cluster with a broken HCI. | expand

Commit Message

Gregory CLEMENT Jan. 23, 2025, 11:01 a.m. UTC
The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
complete, but in reality it's not the case. It also incorrectly
indicates that Hardware Cache Initialization is supported. This new
compatible string allows warning about this broken feature that cannot
be detected at runtime.

Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
---
 Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Rob Herring Jan. 27, 2025, 7:10 p.m. UTC | #1
On Thu, 23 Jan 2025 12:01:55 +0100, Gregory CLEMENT wrote:
> The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
> complete, but in reality it's not the case. It also incorrectly
> indicates that Hardware Cache Initialization is supported. This new
> compatible string allows warning about this broken feature that cannot
> be detected at runtime.
> 
> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> ---
>  Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Jiaxun Yang Jan. 27, 2025, 9:43 p.m. UTC | #2
在2025年1月23日一月 上午11:01,Gregory CLEMENT写道:
> The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
> complete, but in reality it's not the case. It also incorrectly
> indicates that Hardware Cache Initialization is supported. This new
> compatible string allows warning about this broken feature that cannot
> be detected at runtime.
>
> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> ---
>  Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml 
> b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> index 
> 4324b2306535f1bf66c44b1f96be9094ee282041..d129d6382847768dc026336d8d2c7328b6b81f9b 
> 100644
> --- a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> +++ b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> @@ -19,7 +19,12 @@ maintainers:
> 
>  properties:
>    compatible:
> -    const: mti,mips-cm
> +    oneOf:
> +      - const: mti,mips-cm
> +      - const: mobileye,eyeq6-cm
> +        description:
> +          On EyeQ6 the HCI (Hardware Cache Initialization) information for
> +          the L2 cache in multi-cluster configuration is broken.
> 
>    reg:
>      description:
> @@ -44,4 +49,9 @@ examples:
>        compatible = "mti,mips-cm";
>        reg = <0x1bde8000 0x8000>;
>      };
> +
> +  - |
> +    coherency-manager {
> +      compatible = "mobileye,eyeq6-cm";

I think “mobileye,eyeq6-cm”, “mti,mips-cm” would describe the hardware better as eyeq6’s CM is just a special variant of mips-cm.

But I’m fine with leaving it as is.


Thanks

> +    };
>  ...
>
> -- 
> 2.45.2
Rob Herring Jan. 27, 2025, 10:07 p.m. UTC | #3
On Mon, Jan 27, 2025 at 3:43 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>
>
>
> 在2025年1月23日一月 上午11:01,Gregory CLEMENT写道:
> > The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
> > complete, but in reality it's not the case. It also incorrectly
> > indicates that Hardware Cache Initialization is supported. This new
> > compatible string allows warning about this broken feature that cannot
> > be detected at runtime.
> >
> > Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> > ---
> >  Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
> >  1 file changed, 11 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> > b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> > index
> > 4324b2306535f1bf66c44b1f96be9094ee282041..d129d6382847768dc026336d8d2c7328b6b81f9b
> > 100644
> > --- a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> > +++ b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
> > @@ -19,7 +19,12 @@ maintainers:
> >
> >  properties:
> >    compatible:
> > -    const: mti,mips-cm
> > +    oneOf:
> > +      - const: mti,mips-cm
> > +      - const: mobileye,eyeq6-cm
> > +        description:
> > +          On EyeQ6 the HCI (Hardware Cache Initialization) information for
> > +          the L2 cache in multi-cluster configuration is broken.
> >
> >    reg:
> >      description:
> > @@ -44,4 +49,9 @@ examples:
> >        compatible = "mti,mips-cm";
> >        reg = <0x1bde8000 0x8000>;
> >      };
> > +
> > +  - |
> > +    coherency-manager {
> > +      compatible = "mobileye,eyeq6-cm";
>
> I think “mobileye,eyeq6-cm”, “mti,mips-cm” would describe the hardware better as eyeq6’s CM is just a special variant of mips-cm.

Is s/w that only understands “mti,mips-cm” useful on eyeq6 chip? If
so, I agree. If not, then a fallback compatible is not useful.

Rob
Jiaxun Yang Jan. 28, 2025, 1:16 a.m. UTC | #4
在2025年1月27日一月 下午10:07,Rob Herring写道:
> On Mon, Jan 27, 2025 at 3:43 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>>
>>
>>
>> 在2025年1月23日一月 上午11:01,Gregory CLEMENT写道:
>> > The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
>> > complete, but in reality it's not the case. It also incorrectly
>> > indicates that Hardware Cache Initialization is supported. This new
>> > compatible string allows warning about this broken feature that cannot
>> > be detected at runtime.
>> >
>> > Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
>> > ---
>> >  Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
>> >  1 file changed, 11 insertions(+), 1 deletion(-)
>> >
>> > diff --git a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>> > b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>> > index
>> > 4324b2306535f1bf66c44b1f96be9094ee282041..d129d6382847768dc026336d8d2c7328b6b81f9b
>> > 100644
>> > --- a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>> > +++ b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>> > @@ -19,7 +19,12 @@ maintainers:
>> >
>> >  properties:
>> >    compatible:
>> > -    const: mti,mips-cm
>> > +    oneOf:
>> > +      - const: mti,mips-cm
>> > +      - const: mobileye,eyeq6-cm
>> > +        description:
>> > +          On EyeQ6 the HCI (Hardware Cache Initialization) information for
>> > +          the L2 cache in multi-cluster configuration is broken.
>> >
>> >    reg:
>> >      description:
>> > @@ -44,4 +49,9 @@ examples:
>> >        compatible = "mti,mips-cm";
>> >        reg = <0x1bde8000 0x8000>;
>> >      };
>> > +
>> > +  - |
>> > +    coherency-manager {
>> > +      compatible = "mobileye,eyeq6-cm";
>>
>> I think “mobileye,eyeq6-cm”, “mti,mips-cm” would describe the hardware better as eyeq6’s CM is just a special variant of mips-cm.
>
> Is s/w that only understands “mti,mips-cm” useful on eyeq6 chip? If
> so, I agree. If not, then a fallback compatible is not useful.

Yes, mobileye,eyeq6-cm only enable an additional bug workaround in software.

The programming interfaces and so on remains unchanged.

Also other firmware components like U-Boot doesn’t need to be aware of eyeq6 variant.

Thanks

>
> Rob
Gregory CLEMENT Jan. 28, 2025, 4:23 p.m. UTC | #5
> 在2025年1月27日一月 下午10:07,Rob Herring写道:
>> On Mon, Jan 27, 2025 at 3:43 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>>>
>>>
>>>
>>> 在2025年1月23日一月 上午11:01,Gregory CLEMENT写道:
>>> > The CM3.5 used on EyeQ6 reports that Hardware Cache Initialization is
>>> > complete, but in reality it's not the case. It also incorrectly
>>> > indicates that Hardware Cache Initialization is supported. This new
>>> > compatible string allows warning about this broken feature that cannot
>>> > be detected at runtime.
>>> >
>>> > Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
>>> > ---
>>> >  Documentation/devicetree/bindings/mips/mti,mips-cm.yaml | 12 +++++++++++-
>>> >  1 file changed, 11 insertions(+), 1 deletion(-)
>>> >
>>> > diff --git a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>>> > b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>>> > index
>>> > 4324b2306535f1bf66c44b1f96be9094ee282041..d129d6382847768dc026336d8d2c7328b6b81f9b
>>> > 100644
>>> > --- a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>>> > +++ b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
>>> > @@ -19,7 +19,12 @@ maintainers:
>>> >
>>> >  properties:
>>> >    compatible:
>>> > -    const: mti,mips-cm
>>> > +    oneOf:
>>> > +      - const: mti,mips-cm
>>> > +      - const: mobileye,eyeq6-cm
>>> > +        description:
>>> > +          On EyeQ6 the HCI (Hardware Cache Initialization) information for
>>> > +          the L2 cache in multi-cluster configuration is broken.
>>> >
>>> >    reg:
>>> >      description:
>>> > @@ -44,4 +49,9 @@ examples:
>>> >        compatible = "mti,mips-cm";
>>> >        reg = <0x1bde8000 0x8000>;
>>> >      };
>>> > +
>>> > +  - |
>>> > +    coherency-manager {
>>> > +      compatible = "mobileye,eyeq6-cm";
>>>
>>> I think “mobileye,eyeq6-cm”, “mti,mips-cm” would describe the hardware better as eyeq6’s CM is just a special variant of mips-cm.
>>
>> Is s/w that only understands “mti,mips-cm” useful on eyeq6 chip? If
>> so, I agree. If not, then a fallback compatible is not useful.
>
> Yes, mobileye,eyeq6-cm only enable an additional bug workaround in software.
>

Having "mti,mips-cm" is not useful for the EyeQ6 chip. On the EyeQ6, we
obtain all relevant information related to CM dynamically without
needing this compatible string.

> The programming interfaces and so on remains unchanged.

Even without a compatible string, we are able to utilize the CM. At
present, there is no node in the device tree, and apart from the
hardware being faulty, we do not need it.

>
> Also other firmware components like U-Boot doesn’t need to be aware of
> eyeq6 variant.

It's the same for the firmware; they don't need to have "mti, mips-cm"
information, as they can retrieve all they need dynamically.

Gregory
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
index 4324b2306535f1bf66c44b1f96be9094ee282041..d129d6382847768dc026336d8d2c7328b6b81f9b 100644
--- a/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
+++ b/Documentation/devicetree/bindings/mips/mti,mips-cm.yaml
@@ -19,7 +19,12 @@  maintainers:
 
 properties:
   compatible:
-    const: mti,mips-cm
+    oneOf:
+      - const: mti,mips-cm
+      - const: mobileye,eyeq6-cm
+        description:
+          On EyeQ6 the HCI (Hardware Cache Initialization) information for
+          the L2 cache in multi-cluster configuration is broken.
 
   reg:
     description:
@@ -44,4 +49,9 @@  examples:
       compatible = "mti,mips-cm";
       reg = <0x1bde8000 0x8000>;
     };
+
+  - |
+    coherency-manager {
+      compatible = "mobileye,eyeq6-cm";
+    };
 ...