diff mbox series

arm64: dts: imx8mp: add ddr controller node to support EDAC on imx8mp

Message ID 20220318113526.15986-1-sherry.sun@nxp.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: imx8mp: add ddr controller node to support EDAC on imx8mp | expand

Commit Message

Sherry Sun March 18, 2022, 11:35 a.m. UTC
i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support
for i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8mp.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Krzysztof Kozlowski March 18, 2022, 11:56 a.m. UTC | #1
On 18/03/2022 12:35, Sherry Sun wrote:
> i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support
> for i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.
> 
> Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 794d75173cf5..a6124a11d6ee 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -902,6 +902,12 @@
>  			interrupt-parent = <&gic>;
>  		};
>  
> +		edacmc: memory-controller@3d400000 {
> +			compatible = "snps,ddrc-3.80a";
> +			reg = <0x3d400000 0x400000>;
> +			interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;

This is not correct according to the bindings. Dinh's commit adding the
compatible might not be correct, so please first fix bindings.

While fixing bindings, order the compatibles by name (s goes before x).


Best regards,
Krzysztof
Krzysztof Kozlowski March 18, 2022, 12:14 p.m. UTC | #2
On 18/03/2022 12:35, Sherry Sun wrote:
> i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support
> for i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.

One more point - I think it might be worth to add dedicated compatible
for v3.70, as it is clearly a different version (with fallback to v3.80a).


Best regards,
Krzysztof
Sherry Sun March 19, 2022, 9:53 a.m. UTC | #3
Hi Krzysztof,

> Subject: Re: [PATCH] arm64: dts: imx8mp: add ddr controller node to support
> EDAC on imx8mp
> 
> On 18/03/2022 12:35, Sherry Sun wrote:
> > i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support for
> > i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.
> 
> One more point - I think it might be worth to add dedicated compatible for
> v3.70, as it is clearly a different version (with fallback to v3.80a).

Thanks for the review, I have check the V3.70a and V3.80a Synopsys ddr controller databook, there is no difference for the inline ECC part.
So do you think we still need to add a new compatible for V3.70a even the EDAC driver operation is totally same with V3.80a?

Best regards
Sherry

> 
> 
> Best regards,
> Krzysztof
Krzysztof Kozlowski March 19, 2022, 2:37 p.m. UTC | #4
On 19/03/2022 10:53, Sherry Sun wrote:
> Hi Krzysztof,
> 
>> Subject: Re: [PATCH] arm64: dts: imx8mp: add ddr controller node to support
>> EDAC on imx8mp
>>
>> On 18/03/2022 12:35, Sherry Sun wrote:
>>> i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support for
>>> i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.
>>
>> One more point - I think it might be worth to add dedicated compatible for
>> v3.70, as it is clearly a different version (with fallback to v3.80a).
> 
> Thanks for the review, I have check the V3.70a and V3.80a Synopsys ddr controller databook, there is no difference for the inline ECC part.
> So do you think we still need to add a new compatible for V3.70a even the EDAC driver operation is totally same with V3.80a?
> 

Thanks for checking. In such case you don't have to add the compatible.
It still might be beneficial in case there is some difference in
hardware, but looks like not required.


Best regards,
Krzysztof
Sherry Sun March 21, 2022, 6:18 a.m. UTC | #5
Hi Krzysztof,

> Subject: Re: [PATCH] arm64: dts: imx8mp: add ddr controller node to support
> EDAC on imx8mp
> 
> On 18/03/2022 12:35, Sherry Sun wrote:
> > i.MX8MP use synopsys V3.70a ddr controller IP, so add edac support for
> > i.MX8MP based on "snps,ddrc-3.80a" synopsys edac driver.
> >
> > Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
> > ---
> >  arch/arm64/boot/dts/freescale/imx8mp.dtsi | 6 ++++++
> >  1 file changed, 6 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > index 794d75173cf5..a6124a11d6ee 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> > @@ -902,6 +902,12 @@
> >  			interrupt-parent = <&gic>;
> >  		};
> >
> > +		edacmc: memory-controller@3d400000 {
> > +			compatible = "snps,ddrc-3.80a";
> > +			reg = <0x3d400000 0x400000>;
> > +			interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
> 
> This is not correct according to the bindings. Dinh's commit adding the
> compatible might not be correct, so please first fix bindings.
> 
> While fixing bindings, order the compatibles by name (s goes before x).

I met some issues when run dt_binding_check and dtbs_check for the dt bindings.
So now I cannot observe the errors what you said in the bindings, but from the logic, I guess I may need to add below fix patch, right? Please correct me if I miss something here.

--- a/Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
+++ b/Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
@@ -24,9 +24,9 @@ description: |
 properties:
   compatible:
     enum:
+      - snps,ddrc-3.80a
       - xlnx,zynq-ddrc-a05
       - xlnx,zynqmp-ddrc-2.40a
-      - snps,ddrc-3.80a

   interrupts:
     maxItems: 1
@@ -43,7 +43,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: xlnx,zynqmp-ddrc-2.40a
+            enum:
+              - snps,ddrc-3.80a
+              - xlnx,zynqmp-ddrc-2.40a
     then:
       required:
         - interrupts

Best regards
Sherry

> 
> 
> Best regards,
> Krzysztof
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 794d75173cf5..a6124a11d6ee 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -902,6 +902,12 @@ 
 			interrupt-parent = <&gic>;
 		};
 
+		edacmc: memory-controller@3d400000 {
+			compatible = "snps,ddrc-3.80a";
+			reg = <0x3d400000 0x400000>;
+			interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+		};
+
 		ddr-pmu@3d800000 {
 			compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu";
 			reg = <0x3d800000 0x400000>;