* [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs
@ 2026-07-23 13:00 Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-23 13:00 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>
---
Changes in v2:
- Change to vdev0buffer in patch 1 for i.MX95
- Link to v1: https://patch.msgid.link/20260715-imx-rproc-dts-v1-0-d02b583c507b@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 v2 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
@ 2026-07-23 13:00 ` Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
` (3 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-23 13:00 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..814da90243b21 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;
+ };
+
+ vdev0buffer: vdev0buffer@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 = <&vdev0buffer>, <&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 v2 2/4] arm64: dts: imx952-evk: Add CM7 node and related memory nodes
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
@ 2026-07-23 13:00 ` Peng Fan (OSS)
2026-07-23 13:11 ` sashiko-bot
2026-07-23 13:00 ` [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
` (2 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-23 13:00 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 v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
@ 2026-07-23 13:00 ` Peng Fan (OSS)
2026-07-23 13:11 ` sashiko-bot
2026-07-23 13:00 ` [PATCH v2 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
2026-07-23 15:38 ` [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Frank Li
4 siblings, 1 reply; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-23 13:00 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 v2 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
` (2 preceding siblings ...)
2026-07-23 13:00 ` [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
@ 2026-07-23 13:00 ` Peng Fan (OSS)
2026-07-23 15:38 ` [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Frank Li
4 siblings, 0 replies; 8+ messages in thread
From: Peng Fan (OSS) @ 2026-07-23 13:00 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 v2 2/4] arm64: dts: imx952-evk: Add CM7 node and related memory nodes
2026-07-23 13:00 ` [PATCH v2 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
@ 2026-07-23 13:11 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-23 13:11 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: conor+dt, imx, devicetree, Frank.Li, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The vdev buffer memory region bypasses the name check in `imx_rproc_prepare()`, causing it to be incorrectly mapped as a general carveout.
--
--- Patch [2]: [PATCH v2 2/4] arm64: dts: imx952-evk: Add CM7 node and related memory nodes ---
commit 22a3bbe540374b7f9198ab38657f1b8b84d70816
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx952-evk: Add CM7 node and related memory nodes
This commit adds the remoteproc CM7 node and reserved memory regions for the
Cortex-M7 remote processor. The reserved memory includes firmware memory,
vring buffers, and a resource table.
> 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 {
[ ... ]
> + vdev1vring1: vdev1vring1@88018000 {
> + reg = <0 0x88018000 0 0x8000>;
> + no-map;
> + };
> +
> + vdevbuffer: vdevbuffer@88020000 {
[Severity: Medium]
Should this node be named vdev0buffer instead of vdevbuffer?
Because this node is named vdevbuffer, it bypasses the driver's hardcoded
skip check strstarts(res.name, "vdev0buffer") in imx_rproc_prepare().
Will this cause the memory region to be incorrectly mapped as a general
carveout during rproc_start()?
This unnecessarily consumes 1MB of vmalloc space via ioremap_wc and
double-maps the memory since it is simultaneously initialized as a DMA
coherent pool.
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260723-imx-rproc-dts-v2-0-a5f5cf2eb55a@nxp.com?part=2
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes
2026-07-23 13:00 ` [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
@ 2026-07-23 13:11 ` sashiko-bot
0 siblings, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-07-23 13:11 UTC (permalink / raw)
To: Peng Fan (OSS); +Cc: robh, imx, Frank.Li, devicetree, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing reserved memory regions for remote processor firmware
--
--- Patch [3]: [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes ---
commit 348fa25c5d73cddade66c1646cc1a5d82686eae7
Author: Peng Fan <peng.fan@nxp.com>
arm64: dts: imx943-evk: Add CM7 and CM33S nodes
This commit adds remoteproc nodes for the Cortex-M7 (CM7-0, CM7-1) and
Cortex-M33S cores on the i.MX943 EVK. It configures the mailbox units and
various reserved memory regions for inter-processor communication.
> 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.
[Severity: Medium]
The commit message states that reserved memory regions for firmware are added,
but they appear to be entirely missing from the device tree changes.
If the remote processors are intended to execute their firmware from system DDR
RAM, the omission means Linux will not carve out this memory. If preloaded by a
bootloader, Linux might map and clobber the live firmware.
Are these firmware reservations accidentally omitted, or does the firmware run
exclusively from TCM memory for this specific EVK?
> 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: Medium]
Does this memory-region list need a reference to the firmware reserved memory
(e.g., cm70_reserved), or is it intentionally omitted here?
[ ... ]
> @@ -145,6 +175,99 @@ linux,cma {
> size = <0 0x10000000>;
> linux,cma-default;
> };
> +
> + cm33s_vdev0vring0: vdev0vring0@20800000 {
> + reg = <0 0x20800000 0 0x8000>;
> + no-map;
> + };
[Severity: Medium]
The added reserved-memory nodes fail to define firmware memory regions for the
CM7-0, CM7-1, and CM33S cores, which contradicts the commit message.
If the firmware is loaded into system DDR by the remoteproc driver,
imx_rproc_da_to_va will fail to find the carveout and the load will fail.
Will these firmware regions need to be added?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260723-imx-rproc-dts-v2-0-a5f5cf2eb55a@nxp.com?part=3
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
` (3 preceding siblings ...)
2026-07-23 13:00 ` [PATCH v2 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
@ 2026-07-23 15:38 ` Frank Li
4 siblings, 0 replies; 8+ messages in thread
From: Frank Li @ 2026-07-23 15:38 UTC (permalink / raw)
To: Peng Fan (OSS)
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Frank Li,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam, devicetree,
imx, linux-arm-kernel, linux-kernel, Peng Fan, Biwen Li
On Thu, Jul 23, 2026 at 09:00:02PM +0800, Peng Fan (OSS) wrote:
> 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>
> ---
> Changes in v2:
> - Change to vdev0buffer in patch 1 for i.MX95
Others also need change
Frank
> - Link to v1: https://patch.msgid.link/20260715-imx-rproc-dts-v1-0-d02b583c507b@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
end of thread, other threads:[~2026-07-23 15:38 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-23 13:00 [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 1/4] arm64: dts: imx95-19x19-evk: Add CM7 node and related memory nodes Peng Fan (OSS)
2026-07-23 13:00 ` [PATCH v2 2/4] arm64: dts: imx952-evk: " Peng Fan (OSS)
2026-07-23 13:11 ` sashiko-bot
2026-07-23 13:00 ` [PATCH v2 3/4] arm64: dts: imx943-evk: Add CM7 and CM33S nodes Peng Fan (OSS)
2026-07-23 13:11 ` sashiko-bot
2026-07-23 13:00 ` [PATCH v2 4/4] arm64: dts: imx8ulp-evk: Update rpmsg resource table address Peng Fan (OSS)
2026-07-23 15:38 ` [PATCH v2 0/4] arm64: dts: freescale: Add remoteproc support for i.MX EVKs Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox