* [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs
@ 2026-07-15 7:10 Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-15 7:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan,
Biwen Li
This series adds remoteproc node and reserved memory regions for the
i.MX95, i.MX952 and i.MX943 EVK boards.
- Patch 1 adds CM7 support for imx95-19x19-evk
- Patch 2 adds CM7 support for imx952-evk
- Patch 3 adds CM7-0, CM7-1 and CM33S support for imx943-evk
- Patch 4, update resource table address for i.MX8ULP-EVK
Each patch defines the remoteproc device node with mailbox channels
and the associated reserved memory regions (firmware memory, virtio
vring buffers, resource tables and shared DMA pools).
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
Biwen Li (1):
arm64: dts: imx8ulp-evk: Update rpmsg resource table address
Peng Fan (3):
arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
arm64: dts: imx952-evk: Add CM7 node and related memory nodes
arm64: dts: imx943-evk: Add CM7 and CM33S nodes
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 4 +-
arch/arm64/boot/dts/freescale/imx943-evk.dts | 135 ++++++++++++++++++++++
arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts | 46 ++++++++
arch/arm64/boot/dts/freescale/imx952-evk.dts | 50 ++++++++
4 files changed, 233 insertions(+), 2 deletions(-)
---
base-commit: cc2b5f627e8ccbae1188ef2d8be3e451d7f933a5
change-id: 20260715-imx-rproc-dts-6c78f82652f9
Best regards,
--
Peng Fan <peng.fan@nxp.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
2026-07-15 7:10 [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
@ 2026-07-15 7:10 ` Peng Fan (OSS)
2026-07-15 7:17 ` sashiko-bot
2026-07-15 7:10 ` [PATCH 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-15 7:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
Add remoteproc CM7 node and reserved memory regions to enable the
Cortex-M7 remote processor. The reserved memory includes firmware
memory, virtio device vring buffers, a resource table and a shared
DMA pool for inter-processor communication via the MU7 mailbox.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts | 46 +++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
index 340ab0253ec21..e7d1afc6e1b8e 100644
--- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
@@ -76,6 +76,42 @@ linux_cma: linux,cma {
linux,cma-default;
reusable;
};
+
+ m7_reserved: memory@80000000 {
+ no-map;
+ reg = <0 0x80000000 0 0x1000000>;
+ };
+
+ vdev0vring0: vdev0vring0@88000000 {
+ reg = <0 0x88000000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0vring1: vdev0vring1@88008000 {
+ reg = <0 0x88008000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring0: vdev1vring0@88010000 {
+ reg = <0 0x88010000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring1: vdev1vring1@88018000 {
+ reg = <0 0x88018000 0 0x8000>;
+ no-map;
+ };
+
+ rsc_table: rsc-table@88220000 {
+ reg = <0 0x88220000 0 0x1000>;
+ no-map;
+ };
+
+ vdevbuffer: vdevbuffer@88020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x88020000 0 0x100000>;
+ no-map;
+ };
};
flexcan1_phy: can-phy0 {
@@ -185,6 +221,16 @@ reg_usb_vbus: regulator-vbus {
enable-active-high;
};
+ 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>;
+ };
+
sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,name = "bt-sco-audio";
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] arm64: dts: imx952-evk: Add CM7 node and related memory nodes
2026-07-15 7:10 [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
@ 2026-07-15 7:10 ` Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
3 siblings, 0 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-15 7:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
Add remoteproc CM7 node and reserved memory regions to enable the
Cortex-M7 remote processor. The reserved memory includes firmware
memory, virtio device vring buffers and a resource table for
inter-processor communication via the MU7 mailbox.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx952-evk.dts | 50 ++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx952-evk.dts b/arch/arm64/boot/dts/freescale/imx952-evk.dts
index 62d1c1c7c5013..fec851544fb11 100644
--- a/arch/arm64/boot/dts/freescale/imx952-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx952-evk.dts
@@ -82,6 +82,42 @@ linux_cma: linux,cma {
linux,cma-default;
reusable;
};
+
+ m7_reserved: memory@80000000 {
+ no-map;
+ reg = <0 0x80000000 0 0x1000000>;
+ };
+
+ vdev0vring0: vdev0vring0@88000000 {
+ reg = <0 0x88000000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0vring1: vdev0vring1@88008000 {
+ reg = <0 0x88008000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring0: vdev1vring0@88010000 {
+ reg = <0 0x88010000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring1: vdev1vring1@88018000 {
+ reg = <0 0x88018000 0 0x8000>;
+ no-map;
+ };
+
+ vdevbuffer: vdevbuffer@88020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x88020000 0 0x100000>;
+ no-map;
+ };
+
+ rsc_table: rsc-table@88220000 {
+ reg = <0 0x88220000 0 0x1000>;
+ no-map;
+ };
};
flexcan1_phy: can-phy0 {
@@ -151,6 +187,16 @@ reg_usb_vbus: regulator-vbus {
enable-active-high;
};
+ 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>;
+ };
+
sound-bt-sco {
compatible = "simple-audio-card";
simple-audio-card,bitclock-inversion;
@@ -451,6 +497,10 @@ &micfil {
status = "okay";
};
+&mu7 {
+ status = "okay";
+};
+
&sai1 {
assigned-clocks = <&scmi_clk IMX952_CLK_AUDIOPLL1_VCO>,
<&scmi_clk IMX952_CLK_AUDIOPLL2_VCO>,
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes
2026-07-15 7:10 [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
@ 2026-07-15 7:10 ` Peng Fan (OSS)
2026-07-15 7:18 ` sashiko-bot
2026-07-15 7:10 ` [PATCH 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
3 siblings, 1 reply; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-15 7:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan
From: Peng Fan <peng.fan@nxp.com>
Add remoteproc nodes for the two Cortex-M7 cores (CM7-0, CM7-1) and
the Cortex-M33S core, along with their respective reserved memory
regions for firmware, virtio device vrings, resource tables and
shared DMA pools. Enable the MU11, MU13 and MU15 mailbox units used
for inter-processor communication with each remote processor.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx943-evk.dts | 135 +++++++++++++++++++++++++++
1 file changed, 135 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
index 674410e541cba..da7bfbd52e312 100644
--- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
@@ -133,6 +133,36 @@ reg_audio_pwr: regulator-wm8962-pwr {
enable-active-high;
};
+ remoteproc-cm70 {
+ compatible = "fsl,imx94-cm70";
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu11 0 1
+ &mu11 1 1
+ &mu11 3 1>;
+ memory-region = <&cm70_vdevbuffer>, <&cm70_vdev0vring0>, <&cm70_vdev0vring1>,
+ <&cm70_vdev1vring0>, <&cm70_vdev1vring1>, <&cm70_rsc_table>;
+ };
+
+ remoteproc-cm71 {
+ compatible = "fsl,imx94-cm71";
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu13 0 1
+ &mu13 1 1
+ &mu13 3 1>;
+ memory-region = <&cm71_vdevbuffer>, <&cm71_vdev0vring0>, <&cm71_vdev0vring1>,
+ <&cm71_vdev1vring0>, <&cm71_vdev1vring1>, <&cm71_rsc_table>;
+ };
+
+ remoteproc-cm33s {
+ compatible = "fsl,imx94-cm33s";
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu15 0 1
+ &mu15 1 1
+ &mu15 3 1>;
+ memory-region = <&cm33s_vdevbuffer>, <&cm33s_vdev0vring0>, <&cm33s_vdev0vring1>,
+ <&cm33s_vdev1vring0>, <&cm33s_vdev1vring1>, <&cm33s_rsc_table>;
+ };
+
reserved-memory {
ranges;
#address-cells = <2>;
@@ -145,6 +175,99 @@ linux,cma {
size = <0 0x10000000>;
linux,cma-default;
};
+
+ cm33s_vdev0vring0: vdev0vring0@20800000 {
+ reg = <0 0x20800000 0 0x8000>;
+ no-map;
+ };
+
+ cm33s_vdev0vring1: vdev0vring1@20808000 {
+ reg = <0 0x20808000 0 0x8000>;
+ no-map;
+ };
+
+ cm33s_vdev1vring0: vdev1vring0@20810000 {
+ reg = <0 0x20810000 0 0x8000>;
+ no-map;
+ };
+
+ cm33s_vdev1vring1: vdev1vring1@20818000 {
+ reg = <0 0x20818000 0 0x8000>;
+ no-map;
+ };
+
+ cm33s_rsc_table: rsc-table@208a0000 {
+ reg = <0 0x208a0000 0 0x1000>;
+ no-map;
+ };
+
+ cm33s_vdevbuffer: vdevbuffer@20820000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x20820000 0 0x80000>;
+ no-map;
+ };
+
+ cm70_vdev0vring0: vdev0vring0@82000000 {
+ reg = <0 0x82000000 0 0x8000>;
+ no-map;
+ };
+
+ cm70_vdev0vring1: vdev0vring1@82008000 {
+ reg = <0 0x82008000 0 0x8000>;
+ no-map;
+ };
+
+ cm70_vdev1vring0: vdev1vring0@82010000 {
+ reg = <0 0x82010000 0 0x8000>;
+ no-map;
+ };
+
+ cm70_vdev1vring1: vdev1vring1@82018000 {
+ reg = <0 0x82018000 0 0x8000>;
+ no-map;
+ };
+
+ cm70_rsc_table: rsc-table@82220000 {
+ reg = <0 0x82220000 0 0x1000>;
+ no-map;
+ };
+
+ cm70_vdevbuffer: vdevbuffer@82020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x82020000 0 0x100000>;
+ no-map;
+ };
+
+ cm71_vdev0vring0: vdev0vring0@84000000 {
+ reg = <0 0x84000000 0 0x8000>;
+ no-map;
+ };
+
+ cm71_vdev0vring1: vdev0vring1@84008000 {
+ reg = <0 0x84008000 0 0x8000>;
+ no-map;
+ };
+
+ cm71_vdev1vring0: vdev1vring0@84010000 {
+ reg = <0 0x84010000 0 0x8000>;
+ no-map;
+ };
+
+ cm71_vdev1vring1: vdev1vring1@84018000 {
+ reg = <0 0x84018000 0 0x8000>;
+ no-map;
+ };
+
+ cm71_rsc_table: rsc-table@84220000 {
+ reg = <0 0x84220000 0 0x1000>;
+ no-map;
+ };
+
+ cm71_vdevbuffer: vdevbuffer@84020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x84020000 0 0x100000>;
+ no-map;
+ };
};
sound-bt-sco {
@@ -592,6 +715,18 @@ &micfil {
status = "okay";
};
+&mu11 {
+ status = "okay";
+};
+
+&mu13 {
+ status = "okay";
+};
+
+&mu15 {
+ status = "okay";
+};
+
&netc_blk_ctrl {
assigned-clocks = <&scmi_clk IMX94_CLK_MAC4>,
<&scmi_clk IMX94_CLK_MAC5>;
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address
2026-07-15 7:10 [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
` (2 preceding siblings ...)
2026-07-15 7:10 ` [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
@ 2026-07-15 7:10 ` Peng Fan (OSS)
3 siblings, 0 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-15 7:10 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam
Cc: devicetree, imx, linux-arm-kernel, linux-kernel, Peng Fan,
Biwen Li
From: Biwen Li <biwen.li@nxp.com>
The MCU firmware copies the rsc table to a fixed address (0x1FFF8000) at
startup. However, this address is occupied by variables used in the MCU
firmware, so copying the rsc table there corrupts those variables.
Move the rsc-table reserved memory region from 0x1FFF8000 to 0x20000000
to avoid the conflict. The M33 firmware linker script has been updated
accordingly to place the rpmsg resource table at 0x20000000 (DTCM
m_rsc_tbl region).
Signed-off-by: Biwen Li <biwen.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
index 5dea66c1e7aa0..0f9d55e811391 100644
--- a/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
@@ -42,8 +42,8 @@ m33_reserved: noncacheable-section@a8600000 {
no-map;
};
- rsc_table: rsc-table@1fff8000 {
- reg = <0 0x1fff8000 0 0x1000>;
+ rsc_table: rsc-table@20000000 {
+ reg = <0 0x20000000 0 0x1000>;
no-map;
};
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
2026-07-15 7:10 ` [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
@ 2026-07-15 7:17 ` sashiko-bot
2026-07-15 16:12 ` Frank Li
0 siblings, 1 reply; 8+ messages in thread
From: sashiko-bot @ 2026-07-15 7:17 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: Frank.Li, conor+dt, imx, robh, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The virtio device buffer memory region is named `vdevbuffer` which fails the driver's hardcoded check for `vdev0buffer`, leading to it being erroneously registered as a carveout and double-mapped.
--
--- Patch [1]: [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes ---
commit b818b56116c9f6f62676b904ae89c90565f8f036
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
This commit adds a remoteproc CM7 node and reserved memory regions to enable
the Cortex-M7 remote processor. The reserved memory includes firmware memory,
vring buffers, a resource table, and a shared DMA pool for inter-processor
communication.
> diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
> --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
[ ... ]
> + rsc_table: rsc-table@88220000 {
> + reg = <0 0x88220000 0 0x1000>;
> + no-map;
> + };
> +
> + vdevbuffer: vdevbuffer@88020000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
[Severity: Medium]
Will this node name cause the region to be mapped twice?
During device probe, the driver iterates over the memory-region nodes in
imx_rproc_prepare() and attempts to skip the virtio buffer by checking:
strstarts(res.name, "vdev0buffer")
Because this node is named vdevbuffer instead of vdev0buffer, it appears the
strstarts() check will fail. Does this cause the 1MB region to be erroneously
registered as a carveout and unnecessarily double-mapped via ioremap_wc() into
the vmalloc space?
> };
>
> flexcan1_phy: can-phy0 {
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260715-imx-rproc-dts-v1-0-d02b583c507b@nxp.com?part=1
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes
2026-07-15 7:10 ` [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
@ 2026-07-15 7:18 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-15 7:18 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: imx, Frank.Li, conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Missing reserved memory regions for remoteproc firmware, breaking DDR firmware loading.
--
--- Patch [3]: [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes ---
commit a58e64cf15c23fbbaba6ea1a5241a2bcdda233ef
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx943-evk: Add CM7 and CM33S nodes
This commit adds remoteproc nodes for Cortex-M7 (CM7-0, CM7-1) and Cortex-M33S
cores on the imx943-evk. It enables mailbox units and defines reserved memory
regions for vrings, resource tables, and shared DMA pools.
> diff --git a/arch/arm64/boot/dts/freescale/imx943-evk.dts b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> index 674410e541cba..da7bfbd52e312 100644
> --- a/arch/arm64/boot/dts/freescale/imx943-evk.dts
> +++ b/arch/arm64/boot/dts/freescale/imx943-evk.dts
> @@ -133,6 +133,36 @@ reg_audio_pwr: regulator-wm8962-pwr {
> enable-active-high;
> };
>
> + remoteproc-cm70 {
> + compatible = "fsl,imx94-cm70";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu11 0 1
> + &mu11 1 1
> + &mu11 3 1>;
> + memory-region = <&cm70_vdevbuffer>, <&cm70_vdev0vring0>, <&cm70_vdev0vring1>,
> + <&cm70_vdev1vring0>, <&cm70_vdev1vring1>, <&cm70_rsc_table>;
[Severity: High]
The commit message mentions adding reserved memory regions for firmware, but
are those regions missing from this memory-region list?
Without the firmware memory region defined, imx_rproc_da_to_va() will fail to
translate DDR addresses, which aborts firmware loading for segments destined
for DDR.
> + };
> +
> + remoteproc-cm71 {
> + compatible = "fsl,imx94-cm71";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu13 0 1
> + &mu13 1 1
> + &mu13 3 1>;
> + memory-region = <&cm71_vdevbuffer>, <&cm71_vdev0vring0>, <&cm71_vdev0vring1>,
> + <&cm71_vdev1vring0>, <&cm71_vdev1vring1>, <&cm71_rsc_table>;
[Severity: High]
Is the firmware memory region missing here as well?
> + };
> +
> + remoteproc-cm33s {
> + compatible = "fsl,imx94-cm33s";
> + mbox-names = "tx", "rx", "rxdb";
> + mboxes = <&mu15 0 1
> + &mu15 1 1
> + &mu15 3 1>;
> + memory-region = <&cm33s_vdevbuffer>, <&cm33s_vdev0vring0>, <&cm33s_vdev0vring1>,
> + <&cm33s_vdev1vring0>, <&cm33s_vdev1vring1>, <&cm33s_rsc_table>;
[Severity: High]
And similarly, is the firmware memory region missing for the CM33S core?
> + };
> +
> reserved-memory {
> ranges;
> #address-cells = <2>;
> @@ -145,6 +175,99 @@ linux,cma {
> size = <0 0x10000000>;
> linux,cma-default;
> };
> +
> + cm33s_vdev0vring0: vdev0vring0@20800000 {
[Severity: High]
Does this block omit the actual firmware memory regions?
The reserved memory declarations define vrings, resource tables, and shared DMA
pools, but the firmware memory regions themselves seem to be completely missing.
There appears to be a 32MB gap in the DDR addresses (e.g., 0x80000000 to
0x81FFFFFF before cm70_vdev0vring0 at 0x82000000), which suggests the firmware
regions might have been unintentionally dropped.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260715-imx-rproc-dts-v1-0-d02b583c507b@nxp.com?part=3
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
2026-07-15 7:17 ` sashiko-bot
@ 2026-07-15 16:12 ` Frank Li
0 siblings, 0 replies; 8+ messages in thread
From: Frank Li @ 2026-07-15 16:12 UTC (permalink / raw)
To: sashiko-reviews; +Cc: Peng Fan (OSS), Frank.Li, conor+dt, imx, robh, devicetree
On Wed, Jul 15, 2026 at 07:17:41AM +0000, sashiko-bot@kernel.org wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] The virtio device buffer memory region is named `vdevbuffer` which fails the driver's hardcoded check for `vdev0buffer`, leading to it being erroneously registered as a carveout and double-mapped.
> --
>
> --- Patch [1]: [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes ---
> commit b818b56116c9f6f62676b904ae89c90565f8f036
> Author: Peng Fan <peng.fan@nxp.com>
>
> arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
>
> This commit adds a remoteproc CM7 node and reserved memory regions to enable
> the Cortex-M7 remote processor. The reserved memory includes firmware memory,
> vring buffers, a resource table, and a shared DMA pool for inter-processor
> communication.
>
> > diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
> > --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
> > +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts
> [ ... ]
> > + rsc_table: rsc-table@88220000 {
> > + reg = <0 0x88220000 0 0x1000>;
> > + no-map;
> > + };
> > +
> > + vdevbuffer: vdevbuffer@88020000 {
> > + compatible = "shared-dma-pool";
> > + reg = <0 0x88020000 0 0x100000>;
> > + no-map;
> > + };
>
> [Severity: Medium]
> Will this node name cause the region to be mapped twice?
>
> During device probe, the driver iterates over the memory-region nodes in
> imx_rproc_prepare() and attempts to skip the virtio buffer by checking:
>
> strstarts(res.name, "vdev0buffer")
>
> Because this node is named vdevbuffer instead of vdev0buffer, it appears the
> strstarts() check will fail. Does this cause the 1MB region to be erroneously
> registered as a carveout and unnecessarily double-mapped via ioremap_wc() into
> the vmalloc space?
Look like correct, it should be vdev0buffer@88020000 ?
I hope laurentiu can speed up memory-region-names support. otherwise it
missed CHECK_DTBS.
Frank
>
> > };
> >
> > flexcan1_phy: can-phy0 {
>
> --
> Sashiko AI review · https://sashiko.dev/#/patchset/20260715-imx-rproc-dts-v1-0-d02b583c507b@nxp.com?part=1
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-07-15 16:12 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-15 7:10 [PATCH 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
2026-07-15 7:17 ` sashiko-bot
2026-07-15 16:12 ` Frank Li
2026-07-15 7:10 ` [PATCH 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
2026-07-15 7:10 ` [PATCH 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
2026-07-15 7:18 ` sashiko-bot
2026-07-15 7:10 ` [PATCH 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.