Message ID | 20211103135313.6428-1-tomm.merciai@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] arm64: dts: imx8mm: Add NOC node | expand |
On Wed, Nov 3, 2021 at 8:53 AM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > Add support for dynamic frequency scaling of the main NOC configuration > on imx8mm. > > References: > - i.MX 8M Mini Applications Processor RM, Rev. 3, 11/2020 > - f18e6d573b80 arm64: dts: imx8mq: Add NOC node > - 912b9dacf3f0 arm64: dts: imx8mq: increase NOC clock to 800 MHz > - https://source.codeaurora.org/external/imx/linux-imx/tree/arch/ \ > arm64/boot/dts/freescale/imx8mm.dtsi?h=lf-5.10.y > You're missing the signed-off-by tag. From what I can tell, the default NOC clock is 750MHz. With this patch enabled, i can manually change the NOC clock to 150, 375 or 750, but it's not clear to me what this impacts. In the 8MQ, there are a couple peripherals that are linked to the NOC, but we don't have those same peripherals enabled in the 8mm. The dt-bindings/interconnect/imx8mq.h list more NOC references than are used in the device tree, so it's unclear to me if and what we need to reference anything in the 8MM based on dt-bindings/interconnect/imx8mm.h adam > --- > Changes since v1: > - Fix noc_opp_table frequencies taking NXP bsp as reference > - Add reference link to nxp imx8mm dtsi on commit body > > arch/arm64/boot/dts/freescale/imx8mm.dtsi | 25 +++++++++++++++++++++++ > 1 file changed, 25 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > index c2f3f118f82e..1bcc5e361ca3 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > @@ -719,6 +719,31 @@ pgc_mipi: power-domain@11 { > }; > }; > > + noc: interconnect@32700000 { > + compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc"; > + reg = <0x32700000 0x100000>; > + clocks = <&clk IMX8MM_CLK_NOC>; > + fsl,ddrc = <&ddrc>; > + #interconnect-cells = <1>; > + operating-points-v2 = <&noc_opp_table>; > + > + noc_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + opp-150M { > + opp-hz = /bits/ 64 <150000000>; > + }; > + > + opp-375M { > + opp-hz = /bits/ 64 <375000000>; > + }; > + > + opp-750M { > + opp-hz = /bits/ 64 <750000000>; > + }; > + }; > + }; > + > aips2: bus@30400000 { > compatible = "fsl,aips-bus", "simple-bus"; > reg = <0x30400000 0x400000>; > -- > 2.25.1 >
On Wed, Nov 03, 2021 at 01:55:54PM -0500, Adam Ford wrote: > On Wed, Nov 3, 2021 at 8:53 AM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > Add support for dynamic frequency scaling of the main NOC configuration > > on imx8mm. > > > > References: > > - i.MX 8M Mini Applications Processor RM, Rev. 3, 11/2020 > > - f18e6d573b80 arm64: dts: imx8mq: Add NOC node > > - 912b9dacf3f0 arm64: dts: imx8mq: increase NOC clock to 800 MHz > > - https://source.codeaurora.org/external/imx/linux-imx/tree/arch/ \ > > arm64/boot/dts/freescale/imx8mm.dtsi?h=lf-5.10.y > > > > You're missing the signed-off-by tag. Yes, sorry. > > From what I can tell, the default NOC clock is 750MHz. With this > patch enabled, i can manually change the NOC clock to 150, 375 or 750, > but it's not clear to me what this impacts. In the 8MQ, there are a > couple peripherals that are linked to the NOC, but we don't have those > same peripherals enabled in the 8mm. The > dt-bindings/interconnect/imx8mq.h list more NOC references than are > used in the device tree, so it's unclear to me if and what we need to > reference anything in the 8MM based on > dt-bindings/interconnect/imx8mm.h > > adam Hi Adam, Yes you are right, you mean that NOC is using default frequencies than this this node at the moment is only a duplicate. But on the other side, maybe in the future someone will need to modify default table and use it. What do you think about? Let me know. Thanks, Tommaso > > > --- > > Changes since v1: > > - Fix noc_opp_table frequencies taking NXP bsp as reference > > - Add reference link to nxp imx8mm dtsi on commit body > > > > arch/arm64/boot/dts/freescale/imx8mm.dtsi | 25 +++++++++++++++++++++++ > > 1 file changed, 25 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > index c2f3f118f82e..1bcc5e361ca3 100644 > > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > @@ -719,6 +719,31 @@ pgc_mipi: power-domain@11 { > > }; > > }; > > > > + noc: interconnect@32700000 { > > + compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc"; > > + reg = <0x32700000 0x100000>; > > + clocks = <&clk IMX8MM_CLK_NOC>; > > + fsl,ddrc = <&ddrc>; > > + #interconnect-cells = <1>; > > + operating-points-v2 = <&noc_opp_table>; > > + > > + noc_opp_table: opp-table { > > + compatible = "operating-points-v2"; > > + > > + opp-150M { > > + opp-hz = /bits/ 64 <150000000>; > > + }; > > + > > + opp-375M { > > + opp-hz = /bits/ 64 <375000000>; > > + }; > > + > > + opp-750M { > > + opp-hz = /bits/ 64 <750000000>; > > + }; > > + }; > > + }; > > + > > aips2: bus@30400000 { > > compatible = "fsl,aips-bus", "simple-bus"; > > reg = <0x30400000 0x400000>; > > -- > > 2.25.1 > >
On Wed, Nov 3, 2021 at 6:08 PM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > On Wed, Nov 03, 2021 at 01:55:54PM -0500, Adam Ford wrote: > > On Wed, Nov 3, 2021 at 8:53 AM Tommaso Merciai <tomm.merciai@gmail.com> wrote: > > > > > > Add support for dynamic frequency scaling of the main NOC configuration > > > on imx8mm. > > > > > > References: > > > - i.MX 8M Mini Applications Processor RM, Rev. 3, 11/2020 > > > - f18e6d573b80 arm64: dts: imx8mq: Add NOC node > > > - 912b9dacf3f0 arm64: dts: imx8mq: increase NOC clock to 800 MHz > > > - https://source.codeaurora.org/external/imx/linux-imx/tree/arch/ \ > > > arm64/boot/dts/freescale/imx8mm.dtsi?h=lf-5.10.y > > > > > > > You're missing the signed-off-by tag. > > Yes, sorry. > > > > From what I can tell, the default NOC clock is 750MHz. With this > > patch enabled, i can manually change the NOC clock to 150, 375 or 750, > > but it's not clear to me what this impacts. In the 8MQ, there are a > > couple peripherals that are linked to the NOC, but we don't have those > > same peripherals enabled in the 8mm. The > > dt-bindings/interconnect/imx8mq.h list more NOC references than are > > used in the device tree, so it's unclear to me if and what we need to > > reference anything in the 8MM based on > > dt-bindings/interconnect/imx8mm.h > > > > adam > + Abel > Hi Adam, > Yes you are right, you mean that NOC is using default frequencies than > this this node at the moment is only a duplicate. But on the other > side, maybe in the future someone will need to modify default table and > use it. What do you think about? Let me know. There is some discussion with Abel at [1]. I would defer to him to see what he wants to do. At a minimum, I would resubmit the patch with the s-o-b tag enabled, but I'd wait to see if there is any objection. [1] - https://lkml.org/lkml/2021/10/25/259 adam > > Thanks, > Tommaso > > > > > --- > > > Changes since v1: > > > - Fix noc_opp_table frequencies taking NXP bsp as reference > > > - Add reference link to nxp imx8mm dtsi on commit body > > > > > > arch/arm64/boot/dts/freescale/imx8mm.dtsi | 25 +++++++++++++++++++++++ > > > 1 file changed, 25 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > > index c2f3f118f82e..1bcc5e361ca3 100644 > > > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi > > > @@ -719,6 +719,31 @@ pgc_mipi: power-domain@11 { > > > }; > > > }; > > > > > > + noc: interconnect@32700000 { > > > + compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc"; > > > + reg = <0x32700000 0x100000>; > > > + clocks = <&clk IMX8MM_CLK_NOC>; > > > + fsl,ddrc = <&ddrc>; > > > + #interconnect-cells = <1>; > > > + operating-points-v2 = <&noc_opp_table>; > > > + > > > + noc_opp_table: opp-table { > > > + compatible = "operating-points-v2"; > > > + > > > + opp-150M { > > > + opp-hz = /bits/ 64 <150000000>; > > > + }; > > > + > > > + opp-375M { > > > + opp-hz = /bits/ 64 <375000000>; > > > + }; > > > + > > > + opp-750M { > > > + opp-hz = /bits/ 64 <750000000>; > > > + }; > > > + }; > > > + }; > > > + > > > aips2: bus@30400000 { > > > compatible = "fsl,aips-bus", "simple-bus"; > > > reg = <0x30400000 0x400000>; > > > -- > > > 2.25.1 > > >
diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi index c2f3f118f82e..1bcc5e361ca3 100644 --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi @@ -719,6 +719,31 @@ pgc_mipi: power-domain@11 { }; }; + noc: interconnect@32700000 { + compatible = "fsl,imx8mm-noc", "fsl,imx8m-noc"; + reg = <0x32700000 0x100000>; + clocks = <&clk IMX8MM_CLK_NOC>; + fsl,ddrc = <&ddrc>; + #interconnect-cells = <1>; + operating-points-v2 = <&noc_opp_table>; + + noc_opp_table: opp-table { + compatible = "operating-points-v2"; + + opp-150M { + opp-hz = /bits/ 64 <150000000>; + }; + + opp-375M { + opp-hz = /bits/ 64 <375000000>; + }; + + opp-750M { + opp-hz = /bits/ 64 <750000000>; + }; + }; + }; + aips2: bus@30400000 { compatible = "fsl,aips-bus", "simple-bus"; reg = <0x30400000 0x400000>;