* [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board
@ 2026-05-22 11:18 Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names" Laurentiu Mihalcea
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Hi folks,
As you can see from the title, this series attempts to introduce/enable
RPROC support for the MX95-15x15-FRDM board.
For a while now, the imx_rproc driver has been using the reserved memory
DT nodes as the carveout names, which would force DT writers to go against
the DT specification's recommendation and use non-generic names (e.g.
"vdev0vring0", "vdev0vring1", etc...). This series also tries to fix this
issue by introducing the "memory-region-names" property and using it in
the imx_rproc driver to figure out the carveout names. The driver will
still allow the old way of doing things (i.e. no "memory-region-names"
property) but a warning will now be printed since this should be
discouraged.
Laurentiu Mihalcea (5):
dt-bindings: remoteproc: imx_rproc: document optional
"memory-region-names"
remoteproc: imx_rpoc: fix carveout name parsing
arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI
arm64: dts: freescale: imx95-15x15-frdm: remove common rmem regions
arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage
.../bindings/remoteproc/fsl,imx-rproc.yaml | 8 +++
arch/arm64/boot/dts/freescale/Makefile | 3 +
.../dts/freescale/imx95-15x15-frdm-rpmsg.dtso | 65 +++++++++++++++++++
.../boot/dts/freescale/imx95-15x15-frdm.dts | 21 ------
.../dts/freescale/imx95-toradex-smarc.dtsi | 14 ++--
arch/arm64/boot/dts/freescale/imx95.dtsi | 7 ++
drivers/remoteproc/imx_rproc.c | 7 +-
drivers/remoteproc/imx_rproc.h | 19 ++++++
8 files changed, 113 insertions(+), 31 deletions(-)
create mode 100644 arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
--
2.43.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names"
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
@ 2026-05-22 11:18 ` Laurentiu Mihalcea
2026-05-22 18:00 ` Frank Li
2026-05-22 11:18 ` [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing Laurentiu Mihalcea
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Document the optional "memory-region-names" property.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
.../devicetree/bindings/remoteproc/fsl,imx-rproc.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
index c18f71b64889..6679b10f9da5 100644
--- a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
@@ -62,6 +62,14 @@ properties:
minItems: 1
maxItems: 32
+ memory-region-names:
+ minItems: 1
+ maxItems: 32
+ items:
+ oneOf:
+ - const: rsc-table
+ - pattern: '^vdev[0-9](buffer|vring[0-9])$'
+
power-domains:
minItems: 2
maxItems: 8
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names" Laurentiu Mihalcea
@ 2026-05-22 11:18 ` Laurentiu Mihalcea
2026-05-25 2:13 ` Peng Fan
2026-05-22 11:18 ` [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI Laurentiu Mihalcea
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The imx remoteproc driver assumes that the names of the reserved memory
regions reflect their usage (e.g. "vdevbuffer", "vdev0vring0", etc.). This
conflicts with the devicetree specification's recommendation, which states
that the names of the devicetree nodes should be generic.
Therefore, instead of relying on the node names, use the names passed via
the "memory-region-names" property if present. Otherwise, keep the old
behavior.
The definition of imx_rproc_rmem_to_resource() is added to a common place
as imx_dsp_rproc.c can also use it given that it suffers from the same
aforementioned problem.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
drivers/remoteproc/imx_rproc.c | 7 +++++--
drivers/remoteproc/imx_rproc.h | 19 +++++++++++++++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 7f54322244ac..1ee1c658dcc1 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -672,7 +672,7 @@ static int imx_rproc_prepare(struct rproc *rproc)
int err;
struct resource res;
- err = of_reserved_mem_region_to_resource(np, i++, &res);
+ err = imx_rproc_rmem_to_resource(np, i++, &res);
if (err)
break;
@@ -850,11 +850,14 @@ static int imx_rproc_addr_init(struct imx_rproc *priv,
if (nph <= 0)
return 0;
+ if (!of_property_present(np, "memory-region-names"))
+ dev_warn(dev, "using node names for carveouts should be avoided\n");
+
/* remap optional addresses */
for (a = 0; a < nph; a++) {
struct resource res;
- err = of_reserved_mem_region_to_resource(np, a, &res);
+ err = imx_rproc_rmem_to_resource(np, a, &res);
if (err) {
dev_err(dev, "unable to resolve memory region\n");
return err;
diff --git a/drivers/remoteproc/imx_rproc.h b/drivers/remoteproc/imx_rproc.h
index 0d7d48352a10..58e9daa41afe 100644
--- a/drivers/remoteproc/imx_rproc.h
+++ b/drivers/remoteproc/imx_rproc.h
@@ -45,4 +45,23 @@ struct imx_rproc_dcfg {
u32 reset_vector_mask;
};
+static inline int imx_rproc_rmem_to_resource(struct device_node *np,
+ int index,
+ struct resource *res)
+{
+ int ret;
+
+ ret = of_reserved_mem_region_to_resource(np, index, res);
+ if (ret)
+ return ret;
+
+ /* "memory-region-names" is optional */
+ ret = of_property_read_string_index(np, "memory-region-names",
+ index, &res->name);
+ if (ret == -EINVAL)
+ return 0;
+
+ return ret;
+}
+
#endif /* _IMX_RPROC_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names" Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing Laurentiu Mihalcea
@ 2026-05-22 11:18 ` Laurentiu Mihalcea
2026-05-22 14:02 ` Francesco Dolcini
2026-05-25 2:15 ` Peng Fan
2026-05-22 11:18 ` [PATCH 4/5] arm64: dts: freescale: imx95-15x15-frdm: remove common rmem regions Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage Laurentiu Mihalcea
4 siblings, 2 replies; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The CM7 remoteproc configuration is common to multiple MX95-based
platforms (e.g. MX95-19x19-EVK, MX95-15x15-FRDM, SMARC-IMX95, etc.).
Therefore, move the node to the MX95 SoC DTSI. While at it, split the mbox
channels using <>.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
.../boot/dts/freescale/imx95-toradex-smarc.dtsi | 14 ++++++--------
arch/arm64/boot/dts/freescale/imx95.dtsi | 7 +++++++
2 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
index 7d760470201f..c94a63a3bf8f 100644
--- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
@@ -145,14 +145,6 @@ reg_wifi_en: regulator-wifi-en {
startup-delay-us = <2000>;
};
- remoteproc-cm7 {
- compatible = "fsl,imx95-cm7";
- mboxes = <&mu7 0 1 &mu7 1 1 &mu7 3 1>;
- mbox-names = "tx", "rx", "rxdb";
- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
- <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
- };
-
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
@@ -204,6 +196,12 @@ vdevbuffer: vdevbuffer@88020000 {
};
};
+&cm7 {
+ memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
+ status = "okay";
+};
+
/* SMARC GBE0 */
&enetc_port0 {
pinctrl-names = "default";
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 3e35c956a4d7..f8760ac067fa 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -272,6 +272,13 @@ opp-1000000000 {
};
};
+ cm7: remoteproc-cm7 {
+ compatible = "fsl,imx95-cm7";
+ mboxes = <&mu7 0 1>, <&mu7 1 1>, <&mu7 3 1>;
+ mbox-names = "tx", "rx", "rxdb";
+ status = "disabled";
+ };
+
clk_ext1: clock-ext1 {
compatible = "fixed-clock";
#clock-cells = <0>;
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/5] arm64: dts: freescale: imx95-15x15-frdm: remove common rmem regions
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
` (2 preceding siblings ...)
2026-05-22 11:18 ` [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI Laurentiu Mihalcea
@ 2026-05-22 11:18 ` Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage Laurentiu Mihalcea
4 siblings, 0 replies; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Remove the reserved memory regions that are common to the MX95-19x19-EVK,
MX95-15x15-FRDM, and MX95-15x15-EVK platforms and are used for remoteproc.
At the moment, these regions are not used for anything and can be included
in an RPMSG-specific DTS.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
.../boot/dts/freescale/imx95-15x15-frdm.dts | 21 -------------------
1 file changed, 21 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
index 0f43e3be7058..f9b0e266754d 100644
--- a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm.dts
@@ -188,16 +188,6 @@ linux_cma: linux,cma {
linux,cma-default;
};
- 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;
@@ -208,17 +198,6 @@ vdev1vring1: memory@88018000 {
no-map;
};
- vdevbuffer: memory@88020000 {
- compatible = "shared-dma-pool";
- reg = <0 0x88020000 0 0x100000>;
- no-map;
- };
-
- rsc_table: memory@88220000 {
- reg = <0 0x88220000 0 0x1000>;
- no-map;
- };
-
vpu_boot: memory@a0000000 {
reg = <0 0xa0000000 0 0x100000>;
no-map;
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
` (3 preceding siblings ...)
2026-05-22 11:18 ` [PATCH 4/5] arm64: dts: freescale: imx95-15x15-frdm: remove common rmem regions Laurentiu Mihalcea
@ 2026-05-22 11:18 ` Laurentiu Mihalcea
2026-05-22 12:11 ` Daniel Baluta
4 siblings, 1 reply; 11+ messages in thread
From: Laurentiu Mihalcea @ 2026-05-22 11:18 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add RPMSG DT overlay for the MX95-15x15-FRDM board. This overlay is meant
to be used with the mx95evkrpmsg system manager configuration for
remoteproc and audio over rpmsg-usecases.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
arch/arm64/boot/dts/freescale/Makefile | 3 +
.../dts/freescale/imx95-15x15-frdm-rpmsg.dtso | 65 +++++++++++++++++++
2 files changed, 68 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 513f61eb27b8..a30a99e42426 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -521,6 +521,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx943-evk-pcie0-ep.dtb imx943-evk-pcie1-ep.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-ab2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm-rpmsg.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb
@@ -539,6 +540,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-mallow.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-yavia.dtb
dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-zinnia.dtb
+imx95-15x15-frdm-rpmsg-dtbs = imx95-15x15-frdm.dtb imx95-15x15-frdm-rpmsg.dtbo
+
imx95-15x15-evk-pcie-dtbs += imx95-15x15-evk.dtb imx-m2-pcie.dtbo
dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-pcie.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
new file mode 100644
index 000000000000..b39444dde66e
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2026 NXP
+ *
+ * This DT overlay is meant to be used alongside the mx95evkrpmsg SM
+ * configuration for remoteproc and audio over rpmsg.
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ vdev0vring0: memory@88000000 {
+ reg = <0 0x88000000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0vring1: memory@88008000 {
+ reg = <0 0x88008000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0buffer: memory@88020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0x88020000 0 0x100000>;
+ no-map;
+ };
+
+ rsc_table: memory@88220000 {
+ reg = <0 0x88220000 0 0x1000>;
+ no-map;
+ };
+ };
+
+ sound-micfil {
+ status = "disabled";
+ };
+};
+
+&cm7 {
+ memory-region = <&vdev0buffer>, <&vdev0vring0>,
+ <&vdev0vring1>, <&rsc_table>;
+ memory-region-names = "vdev0buffer", "vdev0vring0",
+ "vdev0vring1", "rsc-table";
+ status = "okay";
+};
+
+&edma1 {
+ /* reserved for M7 */
+ dma-channel-mask = <0x40>;
+};
+
+&edma2 {
+ /* reserved for M7 and V2X */
+ dma-channel-mask = <0xf>;
+};
+
+&micfil {
+ /* reserved for M7 */
+ status = "disabled";
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage
2026-05-22 11:18 ` [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage Laurentiu Mihalcea
@ 2026-05-22 12:11 ` Daniel Baluta
0 siblings, 0 replies; 11+ messages in thread
From: Daniel Baluta @ 2026-05-22 12:11 UTC (permalink / raw)
To: Laurentiu Mihalcea, Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam
Cc: Pengutronix Kernel Team, linux-remoteproc, devicetree, imx,
linux-arm-kernel, linux-kernel
On 5/22/26 14:18, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> Add RPMSG DT overlay for the MX95-15x15-FRDM board. This overlay is meant
> to be used with the mx95evkrpmsg system manager configuration for
> remoteproc and audio over rpmsg-usecases.
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/Makefile | 3 +
> .../dts/freescale/imx95-15x15-frdm-rpmsg.dtso | 65 +++++++++++++++++++
> 2 files changed, 68 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
> index 513f61eb27b8..a30a99e42426 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -521,6 +521,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx943-evk-pcie0-ep.dtb imx943-evk-pcie1-ep.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-ab2.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-frdm-rpmsg.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-19x19-evk-sof.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-toradex-smarc-dev.dtb
> @@ -539,6 +540,8 @@ dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-mallow.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-yavia.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx95-verdin-wifi-zinnia.dtb
>
> +imx95-15x15-frdm-rpmsg-dtbs = imx95-15x15-frdm.dtb imx95-15x15-frdm-rpmsg.dtbo
> +
> imx95-15x15-evk-pcie-dtbs += imx95-15x15-evk.dtb imx-m2-pcie.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx95-15x15-evk-pcie.dtb
>
> diff --git a/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
> new file mode 100644
> index 000000000000..b39444dde66e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx95-15x15-frdm-rpmsg.dtso
> @@ -0,0 +1,65 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2026 NXP
> + *
> + * This DT overlay is meant to be used alongside the mx95evkrpmsg SM
> + * configuration for remoteproc and audio over rpmsg.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +&{/} {
> + reserved-memory {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + vdev0vring0: memory@88000000 {
> + reg = <0 0x88000000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev0vring1: memory@88008000 {
> + reg = <0 0x88008000 0 0x8000>;
> + no-map;
> + };
> +
> + vdev0buffer: memory@88020000 {
> + compatible = "shared-dma-pool";
> + reg = <0 0x88020000 0 0x100000>;
> + no-map;
> + };
> +
> + rsc_table: memory@88220000 {
> + reg = <0 0x88220000 0 0x1000>;
> + no-map;
> + };
> + };
> +
> + sound-micfil {
> + status = "disabled";
> + };
> +};
> +
> +&cm7 {
> + memory-region = <&vdev0buffer>, <&vdev0vring0>,
> + <&vdev0vring1>, <&rsc_table>;
> + memory-region-names = "vdev0buffer", "vdev0vring0",
> + "vdev0vring1", "rsc-table";
> + status = "okay";
> +};
> +
> +&edma1 {
> + /* reserved for M7 */
> + dma-channel-mask = <0x40>;
> +};
> +
> +&edma2 {
> + /* reserved for M7 and V2X */
> + dma-channel-mask = <0xf>;
> +};
> +
> +&micfil {
> + /* reserved for M7 */
> + status = "disabled";
> +};
For this usecase usually status needs to be set to "reserved".
Otherwise,
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI
2026-05-22 11:18 ` [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI Laurentiu Mihalcea
@ 2026-05-22 14:02 ` Francesco Dolcini
2026-05-25 2:15 ` Peng Fan
1 sibling, 0 replies; 11+ messages in thread
From: Francesco Dolcini @ 2026-05-22 14:02 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam, Pengutronix Kernel Team,
linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel
On Fri, May 22, 2026 at 04:18:47AM -0700, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> The CM7 remoteproc configuration is common to multiple MX95-based
> platforms (e.g. MX95-19x19-EVK, MX95-15x15-FRDM, SMARC-IMX95, etc.).
> Therefore, move the node to the MX95 SoC DTSI. While at it, split the mbox
> channels using <>.
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
...
> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
> index 3e35c956a4d7..f8760ac067fa 100644
> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
> @@ -272,6 +272,13 @@ opp-1000000000 {
> };
> };
>
> + cm7: remoteproc-cm7 {
> + compatible = "fsl,imx95-cm7";
> + mboxes = <&mu7 0 1>, <&mu7 1 1>, <&mu7 3 1>;
> + mbox-names = "tx", "rx", "rxdb";
> + status = "disabled";
> + };
> +
As sashiko noticed, this is introducing a regression. No-one is enabling
this node anymore.
Francesco
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names"
2026-05-22 11:18 ` [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names" Laurentiu Mihalcea
@ 2026-05-22 18:00 ` Frank Li
0 siblings, 0 replies; 11+ messages in thread
From: Frank Li @ 2026-05-22 18:00 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Sascha Hauer, Peng Fan,
Fabio Estevam, Pengutronix Kernel Team, linux-remoteproc,
devicetree, imx, linux-arm-kernel, linux-kernel
On Fri, May 22, 2026 at 04:18:45AM -0700, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> Document the optional "memory-region-names" property.
Need add reason why need memory-region-names.
Try to fix previous use undocument ABI method, which depend memory node
name. But now prefer use morden memory-region-names to fetch related
resource.
you can rephrase it.
Frank
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> ---
> .../devicetree/bindings/remoteproc/fsl,imx-rproc.yaml | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> index c18f71b64889..6679b10f9da5 100644
> --- a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> @@ -62,6 +62,14 @@ properties:
> minItems: 1
> maxItems: 32
>
> + memory-region-names:
> + minItems: 1
> + maxItems: 32
> + items:
> + oneOf:
> + - const: rsc-table
> + - pattern: '^vdev[0-9](buffer|vring[0-9])$'
> +
> power-domains:
> minItems: 2
> maxItems: 8
> --
> 2.43.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing
2026-05-22 11:18 ` [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing Laurentiu Mihalcea
@ 2026-05-25 2:13 ` Peng Fan
0 siblings, 0 replies; 11+ messages in thread
From: Peng Fan @ 2026-05-25 2:13 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam, Pengutronix Kernel Team,
linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel
On Fri, May 22, 2026 at 04:18:46AM -0700, Laurentiu Mihalcea wrote:
>From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
>The imx remoteproc driver assumes that the names of the reserved memory
>regions reflect their usage (e.g. "vdevbuffer", "vdev0vring0", etc.). This
>conflicts with the devicetree specification's recommendation, which states
>that the names of the devicetree nodes should be generic.
>
>Therefore, instead of relying on the node names, use the names passed via
>the "memory-region-names" property if present. Otherwise, keep the old
>behavior.
>
>The definition of imx_rproc_rmem_to_resource() is added to a common place
>as imx_dsp_rproc.c can also use it given that it suffers from the same
>aforementioned problem.
>
>Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>---
> drivers/remoteproc/imx_rproc.c | 7 +++++--
> drivers/remoteproc/imx_rproc.h | 19 +++++++++++++++++++
> 2 files changed, 24 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
>index 7f54322244ac..1ee1c658dcc1 100644
>--- a/drivers/remoteproc/imx_rproc.c
>+++ b/drivers/remoteproc/imx_rproc.c
>@@ -672,7 +672,7 @@ static int imx_rproc_prepare(struct rproc *rproc)
> int err;
> struct resource res;
>
>- err = of_reserved_mem_region_to_resource(np, i++, &res);
>+ err = imx_rproc_rmem_to_resource(np, i++, &res);
> if (err)
> break;
>
>@@ -850,11 +850,14 @@ static int imx_rproc_addr_init(struct imx_rproc *priv,
> if (nph <= 0)
> return 0;
>
>+ if (!of_property_present(np, "memory-region-names"))
>+ dev_warn(dev, "using node names for carveouts should be avoided\n");
Please check 'memory-regions && !memory-region-names', some demos may not
need to use memory regions.
Regards
Peng
>+
> /* remap optional addresses */
> for (a = 0; a < nph; a++) {
> struct resource res;
>
>- err = of_reserved_mem_region_to_resource(np, a, &res);
>+ err = imx_rproc_rmem_to_resource(np, a, &res);
> if (err) {
> dev_err(dev, "unable to resolve memory region\n");
> return err;
>diff --git a/drivers/remoteproc/imx_rproc.h b/drivers/remoteproc/imx_rproc.h
>index 0d7d48352a10..58e9daa41afe 100644
>--- a/drivers/remoteproc/imx_rproc.h
>+++ b/drivers/remoteproc/imx_rproc.h
>@@ -45,4 +45,23 @@ struct imx_rproc_dcfg {
> u32 reset_vector_mask;
> };
>
>+static inline int imx_rproc_rmem_to_resource(struct device_node *np,
>+ int index,
>+ struct resource *res)
>+{
>+ int ret;
>+
>+ ret = of_reserved_mem_region_to_resource(np, index, res);
>+ if (ret)
>+ return ret;
>+
>+ /* "memory-region-names" is optional */
>+ ret = of_property_read_string_index(np, "memory-region-names",
>+ index, &res->name);
>+ if (ret == -EINVAL)
>+ return 0;
>+
>+ return ret;
>+}
>+
> #endif /* _IMX_RPROC_H */
>--
>2.43.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI
2026-05-22 11:18 ` [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI Laurentiu Mihalcea
2026-05-22 14:02 ` Francesco Dolcini
@ 2026-05-25 2:15 ` Peng Fan
1 sibling, 0 replies; 11+ messages in thread
From: Peng Fan @ 2026-05-25 2:15 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Frank Li, Sascha Hauer,
Peng Fan, Fabio Estevam, Pengutronix Kernel Team,
linux-remoteproc, devicetree, imx, linux-arm-kernel, linux-kernel
On Fri, May 22, 2026 at 04:18:47AM -0700, Laurentiu Mihalcea wrote:
>From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
>The CM7 remoteproc configuration is common to multiple MX95-based
>platforms (e.g. MX95-19x19-EVK, MX95-15x15-FRDM, SMARC-IMX95, etc.).
>Therefore, move the node to the MX95 SoC DTSI. While at it, split the mbox
>channels using <>.
>
>Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>---
> .../boot/dts/freescale/imx95-toradex-smarc.dtsi | 14 ++++++--------
> arch/arm64/boot/dts/freescale/imx95.dtsi | 7 +++++++
> 2 files changed, 13 insertions(+), 8 deletions(-)
>
>diff --git a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>index 7d760470201f..c94a63a3bf8f 100644
>--- a/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi
>@@ -145,14 +145,6 @@ reg_wifi_en: regulator-wifi-en {
> startup-delay-us = <2000>;
> };
>
>- remoteproc-cm7 {
>- compatible = "fsl,imx95-cm7";
>- mboxes = <&mu7 0 1 &mu7 1 1 &mu7 3 1>;
>- mbox-names = "tx", "rx", "rxdb";
>- memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
>- <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
>- };
>-
> reserved-memory {
> #address-cells = <2>;
> #size-cells = <2>;
>@@ -204,6 +196,12 @@ vdevbuffer: vdevbuffer@88020000 {
> };
> };
>
>+&cm7 {
>+ memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
>+ <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>, <&m7_reserved>;
>+ status = "okay";
>+};
>+
> /* SMARC GBE0 */
> &enetc_port0 {
> pinctrl-names = "default";
>diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>index 3e35c956a4d7..f8760ac067fa 100644
>--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>@@ -272,6 +272,13 @@ opp-1000000000 {
> };
> };
>
>+ cm7: remoteproc-cm7 {
>+ compatible = "fsl,imx95-cm7";
>+ mboxes = <&mu7 0 1>, <&mu7 1 1>, <&mu7 3 1>;
>+ mbox-names = "tx", "rx", "rxdb";
Please not put mboxes and mbox-names in dtsi. Some demos may not
require them and boards may use different MUs.
Regards
Peng
>+ status = "disabled";
>+ };
>+
> clk_ext1: clock-ext1 {
> compatible = "fixed-clock";
> #clock-cells = <0>;
>--
>2.43.0
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-05-25 2:15 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-22 11:18 [PATCH 0/5] Add RPROC support for the MX95-15x15-FRDM board Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 1/5] dt-bindings: remoteproc: imx_rproc: document optional "memory-region-names" Laurentiu Mihalcea
2026-05-22 18:00 ` Frank Li
2026-05-22 11:18 ` [PATCH 2/5] remoteproc: imx_rpoc: fix carveout name parsing Laurentiu Mihalcea
2026-05-25 2:13 ` Peng Fan
2026-05-22 11:18 ` [PATCH 3/5] arm64: dts: freescale: imx95-toradex-smarc: move CM7 node to SoC DTSI Laurentiu Mihalcea
2026-05-22 14:02 ` Francesco Dolcini
2026-05-25 2:15 ` Peng Fan
2026-05-22 11:18 ` [PATCH 4/5] arm64: dts: freescale: imx95-15x15-frdm: remove common rmem regions Laurentiu Mihalcea
2026-05-22 11:18 ` [PATCH 5/5] arm64: dts: freescale: add DT overlay for MX95-15x15-FRDM RPMSG usage Laurentiu Mihalcea
2026-05-22 12: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