public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes
@ 2026-02-19 14:41 Rob Herring (Arm)
  2026-02-25  1:50 ` Peng Fan
  0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring (Arm) @ 2026-02-19 14:41 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam
  Cc: Peng Fan, Forrest Shi, devicetree, imx, linux-arm-kernel,
	linux-kernel

i.MX93 contains an Arm Ethos-U65 NPU. The NPU uses the internal SRAM for
temporary buffers. The SRAM is larger than 96KB, but that is all that is
available to non-secure world.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
---
NXP folks, any comments on NPU freq? IIRC, the clock controller supports
setting the freq to 1GHz. Is that supported?
---
 arch/arm64/boot/dts/freescale/imx93.dtsi | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index 7b27012dfcb5..d826d4b5a06b 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -43,6 +43,29 @@ map0 {
 			};
 		};
 	};
+
+	sram: sram@20480000 {
+		compatible = "mmio-sram";
+		reg = <0x0 0x20480000 0x0 0x18000>;
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges = <0x0 0x0 0x20480000 0x18000>;
+	};
+
+	soc@0 {
+		npu@4a900000 {
+			compatible = "fsl,imx93-npu", "arm,ethos-u65";
+			reg = <0x4a900000 0x1000>;
+			interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
+			power-domains = <&mlmix>;
+			clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
+			clock-names = "core", "apb";
+			sram = <&sram>;
+			assigned-clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
+			assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>, <&clk IMX93_CLK_24M>;
+			assigned-clock-rates = <800000000>, <24000000>;
+		};
+	};
 };
 
 &aips1 {
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes
  2026-02-19 14:41 [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes Rob Herring (Arm)
@ 2026-02-25  1:50 ` Peng Fan
  2026-02-25 13:30   ` Rob Herring
  0 siblings, 1 reply; 4+ messages in thread
From: Peng Fan @ 2026-02-25  1:50 UTC (permalink / raw)
  To: Rob Herring (Arm)
  Cc: Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Forrest Shi,
	devicetree, imx, linux-arm-kernel, linux-kernel

Hi Rob,

On Thu, Feb 19, 2026 at 08:41:59AM -0600, Rob Herring (Arm) wrote:
>i.MX93 contains an Arm Ethos-U65 NPU. The NPU uses the internal SRAM for
>temporary buffers. The SRAM is larger than 96KB, but that is all that is
>available to non-secure world.
>
>Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
>---
>NXP folks, any comments on NPU freq? IIRC, the clock controller supports
>setting the freq to 1GHz. Is that supported?

NPU supports three freqs:
500MHz for Low Drive mode
800MHz for Nominal Drive mode
1GHz for Over drive mode

The NXP downstream choose nominal drive mode for peripherals,
in NXP downstream, there is a driver to do nominal and over drive
mode switch for the SoC at runtime(through sysfs interface by user), there
is no dedicated arm core voltage supply, there is only one vdd soc supply.

To avoid introduce complexity to various drivers, drivers use nomimal freq,
so OD->ND switch does not require drivers to update its own clock frequencies.

>---
> arch/arm64/boot/dts/freescale/imx93.dtsi | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
>diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
>index 7b27012dfcb5..d826d4b5a06b 100644
>--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
>@@ -43,6 +43,29 @@ map0 {
> 			};
> 		};
> 	};
>+
>+	sram: sram@20480000 {
>+		compatible = "mmio-sram";
>+		reg = <0x0 0x20480000 0x0 0x18000>;
>+		#address-cells = <1>;
>+		#size-cells = <1>;
>+		ranges = <0x0 0x0 0x20480000 0x18000>;
>+	};
>+
>+	soc@0 {
>+		npu@4a900000 {
>+			compatible = "fsl,imx93-npu", "arm,ethos-u65";
>+			reg = <0x4a900000 0x1000>;
>+			interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
>+			power-domains = <&mlmix>;
>+			clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
>+			clock-names = "core", "apb";
>+			sram = <&sram>;
>+			assigned-clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
>+			assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>, <&clk IMX93_CLK_24M>;
>+			assigned-clock-rates = <800000000>, <24000000>;

APB could run at 133.3MHz.

Regards
Peng

>+		};
>+	};
> };
> 
> &aips1 {
>-- 
>2.51.0
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes
  2026-02-25  1:50 ` Peng Fan
@ 2026-02-25 13:30   ` Rob Herring
  2026-02-27  0:51     ` Peng Fan (OSS)
  0 siblings, 1 reply; 4+ messages in thread
From: Rob Herring @ 2026-02-25 13:30 UTC (permalink / raw)
  To: Peng Fan
  Cc: Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Peng Fan, Forrest Shi,
	devicetree, imx, linux-arm-kernel, linux-kernel

On Tue, Feb 24, 2026 at 7:49 PM Peng Fan <peng.fan@oss.nxp.com> wrote:
>
> Hi Rob,
>
> On Thu, Feb 19, 2026 at 08:41:59AM -0600, Rob Herring (Arm) wrote:
> >i.MX93 contains an Arm Ethos-U65 NPU. The NPU uses the internal SRAM for
> >temporary buffers. The SRAM is larger than 96KB, but that is all that is
> >available to non-secure world.
> >
> >Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
> >---
> >NXP folks, any comments on NPU freq? IIRC, the clock controller supports
> >setting the freq to 1GHz. Is that supported?
>
> NPU supports three freqs:
> 500MHz for Low Drive mode
> 800MHz for Nominal Drive mode
> 1GHz for Over drive mode
>
> The NXP downstream choose nominal drive mode for peripherals,
> in NXP downstream, there is a driver to do nominal and over drive
> mode switch for the SoC at runtime(through sysfs interface by user), there
> is no dedicated arm core voltage supply, there is only one vdd soc supply.
>
> To avoid introduce complexity to various drivers, drivers use nomimal freq,
> so OD->ND switch does not require drivers to update its own clock frequencies.
>
> >---
> > arch/arm64/boot/dts/freescale/imx93.dtsi | 23 +++++++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> >diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
> >index 7b27012dfcb5..d826d4b5a06b 100644
> >--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
> >+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
> >@@ -43,6 +43,29 @@ map0 {
> >                       };
> >               };
> >       };
> >+
> >+      sram: sram@20480000 {
> >+              compatible = "mmio-sram";
> >+              reg = <0x0 0x20480000 0x0 0x18000>;
> >+              #address-cells = <1>;
> >+              #size-cells = <1>;
> >+              ranges = <0x0 0x0 0x20480000 0x18000>;
> >+      };
> >+
> >+      soc@0 {
> >+              npu@4a900000 {
> >+                      compatible = "fsl,imx93-npu", "arm,ethos-u65";
> >+                      reg = <0x4a900000 0x1000>;
> >+                      interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
> >+                      power-domains = <&mlmix>;
> >+                      clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
> >+                      clock-names = "core", "apb";
> >+                      sram = <&sram>;
> >+                      assigned-clocks = <&clk IMX93_CLK_ML>, <&clk IMX93_CLK_ML_APB>;
> >+                      assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>, <&clk IMX93_CLK_24M>;
> >+                      assigned-clock-rates = <800000000>, <24000000>;
>
> APB could run at 133.3MHz.

24MHz does seem a bit slow. Do you know what parent would that be?

Rob

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes
  2026-02-25 13:30   ` Rob Herring
@ 2026-02-27  0:51     ` Peng Fan (OSS)
  0 siblings, 0 replies; 4+ messages in thread
From: Peng Fan (OSS) @ 2026-02-27  0:51 UTC (permalink / raw)
  To: Rob Herring, Peng Fan (OSS)
  Cc: Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, Forrest Shi,
	devicetree@vger.kernel.org, imx@lists.linux.dev,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org

> Subject: Re: [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU
[...]
> > >+      soc@0 {
> > >+              npu@4a900000 {
> > >+                      compatible = "fsl,imx93-npu", "arm,ethos-u65";
> > >+                      reg = <0x4a900000 0x1000>;
> > >+                      interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
> > >+                      power-domains = <&mlmix>;
> > >+                      clocks = <&clk IMX93_CLK_ML>, <&clk
> IMX93_CLK_ML_APB>;
> > >+                      clock-names = "core", "apb";
> > >+                      sram = <&sram>;
> > >+                      assigned-clocks = <&clk IMX93_CLK_ML>, <&clk
> IMX93_CLK_ML_APB>;
> > >+                      assigned-clock-parents = <&clk
> IMX93_CLK_SYS_PLL_PFD1>, <&clk IMX93_CLK_24M>;
> > >+                      assigned-clock-rates = <800000000>,
> > >+ <24000000>;
> >
> > APB could run at 133.3MHz.
> 
> 24MHz does seem a bit slow. Do you know what parent would that be?

Please try below:
Parent: <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
Rate: <133000000>;

Regards
Peng.

> 
> Rob

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-02-27  0:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-19 14:41 [PATCH] arm64: dts: freescale: imx93: Add Ethos-U65 NPU and SRAM nodes Rob Herring (Arm)
2026-02-25  1:50 ` Peng Fan
2026-02-25 13:30   ` Rob Herring
2026-02-27  0:51     ` Peng Fan (OSS)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox