* [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
@ 2026-03-03 12:13 Emanuele Ghidoli
2026-03-03 15:38 ` Frank Li
2026-03-03 21:01 ` Frank Li
0 siblings, 2 replies; 7+ messages in thread
From: Emanuele Ghidoli @ 2026-03-03 12:13 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer
Cc: Emanuele Ghidoli, Pengutronix Kernel Team, Fabio Estevam,
devicetree, imx, linux-arm-kernel, linux-kernel
From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Enable Cortex M7, the vring nodes, a mailbox and reserve DDR memory for
the M7. The remoteproc framework is so capable to load and run the M7
firmware.
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
---
.../dts/freescale/imx95-toradex-smarc.dtsi | 50 +++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
index 5932ba238a8a..77c4a6dee098 100644
--- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
@@ -42,6 +42,16 @@ clk_serdes_eth_ref: clock-eth-ref {
enable-gpios = <&som_gpio_expander_1 13 GPIO_ACTIVE_HIGH>;
};
+ cm7: remoteproc-cm7 {
+ compatible = "fsl,imx95-cm7";
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu7 0 1
+ &mu7 1 1
+ &mu7 3 1>;
+ memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
+ };
+
connector {
compatible = "gpio-usb-b-connector", "usb-b-connector";
/* SMARC P64 - USB0_OTG_ID */
@@ -156,6 +166,42 @@ linux_cma: linux,cma {
alloc-ranges = <0 0x80000000 0 0x7f000000>;
linux,cma-default;
};
+
+ m7_reserved: memory@80000000 {
+ reg = <0 0x80000000 0 0x1000000>;
+ no-map;
+ };
+
+ rsc_table: memory@88220000 {
+ reg = <0 0x88220000 0 0x1000>;
+ no-map;
+ };
+
+ vdev0vring0: memory@88000000 {
+ reg = <0 0x88000000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0vring1: memory@88008000 {
+ reg = <0 0x88008000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring0: memory@88010000 {
+ reg = <0 0x88010000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring1: memory@88018000 {
+ reg = <0 0x88018000 0 0x8000>;
+ no-map;
+ };
+
+ vdevbuffer: memory@88020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x88020000 0 0x100000>;
+ no-map;
+ };
};
};
@@ -572,6 +618,10 @@ &lpuart3 {
pinctrl-0 = <&pinctrl_uart3>;
};
+&mu7 {
+ status = "okay";
+};
+
/* SMARC MDIO, shared between all ethernet ports */
&netc_emdio {
pinctrl-names = "default";
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 12:13 [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7 Emanuele Ghidoli
@ 2026-03-03 15:38 ` Frank Li
2026-03-03 15:55 ` Emanuele Ghidoli
2026-03-05 1:14 ` Peng Fan
2026-03-03 21:01 ` Frank Li
1 sibling, 2 replies; 7+ messages in thread
From: Frank Li @ 2026-03-03 15:38 UTC (permalink / raw)
To: Emanuele Ghidoli, peng.fan
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Emanuele Ghidoli, Pengutronix Kernel Team, Fabio Estevam,
devicetree, imx, linux-arm-kernel, linux-kernel
On Tue, Mar 03, 2026 at 01:13:06PM +0100, Emanuele Ghidoli wrote:
> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
>
> Enable Cortex M7, the vring nodes, a mailbox and reserve DDR memory for
> the M7. The remoteproc framework is so capable to load and run the M7
> firmware.
>
> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
> ---
> .../dts/freescale/imx95-toradex-smarc.dtsi | 50 +++++++++++++++++++
> 1 file changed, 50 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> index 5932ba238a8a..77c4a6dee098 100644
> --- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
> @@ -42,6 +42,16 @@ clk_serdes_eth_ref: clock-eth-ref {
> enable-gpios = <&som_gpio_expander_1 13 GPIO_ACTIVE_HIGH>;
> };
>
> + cm7: remoteproc-cm7 {
> + compatible = "fsl,imx95-cm7";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu7 0 1
> + &mu7 1 1
> + &mu7 3 1>;
> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
> + };
> +
> connector {
> compatible = "gpio-usb-b-connector", "usb-b-connector";
> /* SMARC P64 - USB0_OTG_ID */
> @@ -156,6 +166,42 @@ linux_cma: linux,cma {
> alloc-ranges = <0 0x80000000 0 0x7f000000>;
> linux,cma-default;
> };
> +
> + m7_reserved: memory@80000000 {
> + reg = <0 0x80000000 0 0x1000000>;
> + no-map;
> + };
> +
> + rsc_table: memory@88220000 {
I remember driver use hardcode rsc-table, I suggest fan pan to update
driver to support memory-region-names to avoid use hidden ABI.
Fan peng, what's current status?
Frank
> + reg = <0 0x88220000 0 0x1000>;
> + no-map;
> + };
> +
> + vdev0vring0: memory@88000000 {
> + reg = <0 0x88000000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev0vring1: memory@88008000 {
> + reg = <0 0x88008000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev1vring0: memory@88010000 {
> + reg = <0 0x88010000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev1vring1: memory@88018000 {
> + reg = <0 0x88018000 0 0x8000>;
> + no-map;
> + };
> +
> + vdevbuffer: memory@88020000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
> };
> };
>
> @@ -572,6 +618,10 @@ &lpuart3 {
> pinctrl-0 = <&pinctrl_uart3>;
> };
>
> +&mu7 {
> + status = "okay";
> +};
> +
> /* SMARC MDIO, shared between all ethernet ports */
> &netc_emdio {
> pinctrl-names = "default";
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 15:38 ` Frank Li
@ 2026-03-03 15:55 ` Emanuele Ghidoli
2026-03-05 1:14 ` Peng Fan
1 sibling, 0 replies; 7+ messages in thread
From: Emanuele Ghidoli @ 2026-03-03 15:55 UTC (permalink / raw)
To: Frank Li, peng.fan
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Sascha Hauer,
Emanuele Ghidoli, Pengutronix Kernel Team, Fabio Estevam,
devicetree, imx, linux-arm-kernel, linux-kernel
On 3/3/26 16:38, Frank Li wrote:
> On Tue, Mar 03, 2026 at 01:13:06PM +0100, Emanuele Ghidoli wrote:
>> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
>>
>> Enable Cortex M7, the vring nodes, a mailbox and reserve DDR memory for
>> the M7. The remoteproc framework is so capable to load and run the M7
>> firmware.
>>
>> Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
>> ---
>> .../dts/freescale/imx95-toradex-smarc.dtsi | 50 +++++++++++++++++++
>> 1 file changed, 50 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>> index 5932ba238a8a..77c4a6dee098 100644
>> --- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>> @@ -42,6 +42,16 @@ clk_serdes_eth_ref: clock-eth-ref {
>> enable-gpios = <&som_gpio_expander_1 13 GPIO_ACTIVE_HIGH>;
>> };
>>
>> + cm7: remoteproc-cm7 {
>> + compatible = "fsl,imx95-cm7";
>> + mbox-names = "tx", "rx", "rxdb";
>> + mboxes = <&mu7 0 1
>> + &mu7 1 1
>> + &mu7 3 1>;
>> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
>> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
>> + };
>> +
>> connector {
>> compatible = "gpio-usb-b-connector", "usb-b-connector";
>> /* SMARC P64 - USB0_OTG_ID */
>> @@ -156,6 +166,42 @@ linux_cma: linux,cma {
>> alloc-ranges = <0 0x80000000 0 0x7f000000>;
>> linux,cma-default;
>> };
>> +
>> + m7_reserved: memory@80000000 {
>> + reg = <0 0x80000000 0 0x1000000>;
>> + no-map;
>> + };
>> +
>> + rsc_table: memory@88220000 {
>
> I remember driver use hardcode rsc-table, I suggest fan pan to update
> driver to support memory-region-names to avoid use hidden ABI.
>
> Fan peng, what's current status?
>
> Frank
>
>> + reg = <0 0x88220000 0 0x1000>;
>> + no-map;
>> + };
>> +
>> + vdev0vring0: memory@88000000 {
>> + reg = <0 0x88000000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev0vring1: memory@88008000 {
>> + reg = <0 0x88008000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev1vring0: memory@88010000 {
>> + reg = <0 0x88010000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev1vring1: memory@88018000 {
>> + reg = <0 0x88018000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdevbuffer: memory@88020000 {
>> + compatible = "shared-dma-pool";
>> + reg = <0 0x88020000 0 0x100000>;
>> + no-map;
>> + };
>> };
>> };
>>
>> @@ -572,6 +618,10 @@ &lpuart3 {
>> pinctrl-0 = <&pinctrl_uart3>;
>> };
>>
>> +&mu7 {
>> + status = "okay";
>> +};
>> +
>> /* SMARC MDIO, shared between all ethernet ports */
>> &netc_emdio {
>> pinctrl-names = "default";
>> --
>> 2.43.0
>>
Thanks Frank. You’re right.
I spotted that my patch is not working as expected, due to a last minute
renaming on my side.
I’ll rework the patch accordingly and send a v2 to align to current expected
naming.
Emanuele
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 12:13 [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7 Emanuele Ghidoli
2026-03-03 15:38 ` Frank Li
@ 2026-03-03 21:01 ` Frank Li
2026-03-04 15:52 ` Krzysztof Kozlowski
2026-03-04 16:11 ` Daniel Baluta
1 sibling, 2 replies; 7+ messages in thread
From: Frank Li @ 2026-03-03 21:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer
Cc: Frank Li, Emanuele Ghidoli, Pengutronix Kernel Team,
Fabio Estevam, devicetree, imx, linux-arm-kernel, linux-kernel
From: Frank Li (AI-BOT) <frank.li@nxp.com>
AI bot review and may be useless.
---
> + cm7: remoteproc-cm7 {
> + compatible = "fsl,imx95-cm7";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu7 0 1
> + &mu7 1 1
> + &mu7 3 1>;
> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
> + };
Line 51 exceeds 80 columns; consider breaking memory-region into
multiple lines for readability.
---
> + m7_reserved: memory@80000000 {
> + reg = <0 0x80000000 0 0x1000000>;
> + no-map;
> + };
Consider adding a comment explaining the 16 MB reservation size and
purpose (firmware load address, etc.).
---
> + rsc_table: memory@88220000 {
> + reg = <0 0x88220000 0 0x1000>;
> + no-map;
> + };
Consider documenting why rsc_table is placed at this specific offset
relative to m7_reserved.
---
> + vdevbuffer: memory@88020000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
Verify that the 1 MB vdevbuffer size is sufficient for the expected
virtio traffic between A55 and M7.
---
> +&mu7 {
> + status = "okay";
> +};
Ensure mu7 node is defined elsewhere in the base device tree; this
patch only enables it without defining its properties.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 21:01 ` Frank Li
@ 2026-03-04 15:52 ` Krzysztof Kozlowski
2026-03-04 16:11 ` Daniel Baluta
1 sibling, 0 replies; 7+ messages in thread
From: Krzysztof Kozlowski @ 2026-03-04 15:52 UTC (permalink / raw)
To: Frank Li, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Sascha Hauer
Cc: Emanuele Ghidoli, Pengutronix Kernel Team, Fabio Estevam,
devicetree, imx, linux-arm-kernel, linux-kernel
On 03/03/2026 22:01, Frank Li wrote:
> From: Frank Li (AI-BOT) <frank.li@nxp.com>
>
> AI bot review and may be useless.
>
..
> ---
>
>> +&mu7 {
>> + status = "okay";
>> +};
>
> Ensure mu7 node is defined elsewhere in the base device tree; this
> patch only enables it without defining its properties.
What? That's useless comment. Stop sending such feedback. It is just WRONG.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 21:01 ` Frank Li
2026-03-04 15:52 ` Krzysztof Kozlowski
@ 2026-03-04 16:11 ` Daniel Baluta
1 sibling, 0 replies; 7+ messages in thread
From: Daniel Baluta @ 2026-03-04 16:11 UTC (permalink / raw)
To: Frank Li, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Sascha Hauer
Cc: Emanuele Ghidoli, Pengutronix Kernel Team, Fabio Estevam,
devicetree, imx, linux-arm-kernel, linux-kernel
On 3/3/26 23:01, Frank Li wrote:
> From: Frank Li (AI-BOT) <frank.li@nxp.com>
>
> AI bot review and may be useless.
>
> ---
>
>> + cm7: remoteproc-cm7 {
>> + compatible = "fsl,imx95-cm7";
>> + mbox-names = "tx", "rx", "rxdb";
>> + mboxes = <&mu7 0 1
>> + &mu7 1 1
>> + &mu7 3 1>;
>> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
>> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
>> + };
> Line 51 exceeds 80 columns; consider breaking memory-region into
> multiple lines for readability.
Frank please relax your bot!
As of commit bdc48fa11e46f867ea ("checkpatch/coding-style: deprecate 80-column warning")
there is no such requirement for wrapping at 80 chars anymore.
<snip>
>> +&mu7 {
>> + status = "okay";
>> +};
> Ensure mu7 node is defined elsewhere in the base device tree; this
> patch only enables it without defining its properties.
>
Well it should fail compilation if mu7 was not defined? Sometimes this comments can be confusing so please
review them carefully before replying.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
2026-03-03 15:38 ` Frank Li
2026-03-03 15:55 ` Emanuele Ghidoli
@ 2026-03-05 1:14 ` Peng Fan
1 sibling, 0 replies; 7+ messages in thread
From: Peng Fan @ 2026-03-05 1:14 UTC (permalink / raw)
To: Frank Li
Cc: Emanuele Ghidoli, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Sascha Hauer, Emanuele Ghidoli, Pengutronix Kernel Team,
Fabio Estevam, devicetree, imx, linux-arm-kernel, linux-kernel
On Tue, Mar 03, 2026 at 10:38:09AM -0500, Frank Li wrote:
>On Tue, Mar 03, 2026 at 01:13:06PM +0100, Emanuele Ghidoli wrote:
>> From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
>>
>> +
>> + rsc_table: memory@88220000 {
>
>I remember driver use hardcode rsc-table, I suggest fan pan to update
>driver to support memory-region-names to avoid use hidden ABI.
>
>Fan peng, what's current status?
It is delayed because of the i.MX95 remoteproc patchset.
And i.MX94/952 is still on my list as higher priority, so the moving
to memory-region-names will be after that.
Regards
Peng
>
>Frank
>
>> + reg = <0 0x88220000 0 0x1000>;
>> + no-map;
>> + };
>> +
>> + vdev0vring0: memory@88000000 {
>> + reg = <0 0x88000000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev0vring1: memory@88008000 {
>> + reg = <0 0x88008000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev1vring0: memory@88010000 {
>> + reg = <0 0x88010000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdev1vring1: memory@88018000 {
>> + reg = <0 0x88018000 0 0x8000>;
>> + no-map;
>> + };
>> +
>> + vdevbuffer: memory@88020000 {
>> + compatible = "shared-dma-pool";
>> + reg = <0 0x88020000 0 0x100000>;
>> + no-map;
>> + };
>> };
>> };
>>
>> @@ -572,6 +618,10 @@ &lpuart3 {
>> pinctrl-0 = <&pinctrl_uart3>;
>> };
>>
>> +&mu7 {
>> + status = "okay";
>> +};
>> +
>> /* SMARC MDIO, shared between all ethernet ports */
>> &netc_emdio {
>> pinctrl-names = "default";
>> --
>> 2.43.0
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-03-05 1:13 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-03 12:13 [PATCH v1] arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7 Emanuele Ghidoli
2026-03-03 15:38 ` Frank Li
2026-03-03 15:55 ` Emanuele Ghidoli
2026-03-05 1:14 ` Peng Fan
2026-03-03 21:01 ` Frank Li
2026-03-04 15:52 ` Krzysztof Kozlowski
2026-03-04 16:11 ` Daniel Baluta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox