Add an overlay used for remote processor inter-core communication
between A55 and M33 cores on the phyCORE-i.MX93 SoM based boards.
Overlay adds the required reserved memory regions and enables the
mailbox unit and the M33 core for RPMsg (Remote Processor Messaging
Framework).
Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
---
arch/arm64/boot/dts/freescale/Makefile | 4 ++
.../dts/freescale/imx93-phycore-rpmsg.dtso | 60 +++++++++++++++++++
2 files changed, 64 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index 0b473a23d120..08a1de299538 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb
+
+imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo
+dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb
+
dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba91xxca.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxca.dtb
dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxla.dtb
diff --git a/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso
new file mode 100644
index 000000000000..9200113c9ec3
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 PHYTEC Messtechnik GmbH
+ * Author: Primoz Fiser <primoz.fiser@norik.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+&{/} {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ vdev0vring0: vdev0vring0@a4000000 {
+ reg = <0 0xa4000000 0 0x8000>;
+ no-map;
+ };
+
+ vdev0vring1: vdev0vring1@a4008000 {
+ reg = <0 0xa4008000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring0: vdev1vring0@a4010000 {
+ reg = <0 0xa4010000 0 0x8000>;
+ no-map;
+ };
+
+ vdev1vring1: vdev1vring1@a4018000 {
+ reg = <0 0xa4018000 0 0x8000>;
+ no-map;
+ };
+
+ rsc_table: rsc-table@2021e000 {
+ reg = <0 0x2021e000 0 0x1000>;
+ no-map;
+ };
+
+ vdevbuffer: vdevbuffer@a4020000 {
+ compatible = "shared-dma-pool";
+ reg = <0 0xa4020000 0 0x100000>;
+ no-map;
+ };
+ };
+};
+
+&cm33 {
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu1 0 1>,
+ <&mu1 1 1>,
+ <&mu1 3 1>;
+ memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>,
+ <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>;
+ status = "okay";
+};
+
+&mu1 {
+ status = "okay";
+};
--
2.34.1
On Thu, Jun 19, 2025 at 08:39:51AM +0200, Primoz Fiser wrote: > Add an overlay used for remote processor inter-core communication > between A55 and M33 cores on the phyCORE-i.MX93 SoM based boards. > > Overlay adds the required reserved memory regions and enables the > mailbox unit and the M33 core for RPMsg (Remote Processor Messaging > Framework). > > Signed-off-by: Primoz Fiser <primoz.fiser@norik.com> > --- > arch/arm64/boot/dts/freescale/Makefile | 4 ++ > .../dts/freescale/imx93-phycore-rpmsg.dtso | 60 +++++++++++++++++++ > 2 files changed, 64 insertions(+) > create mode 100644 arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index 0b473a23d120..08a1de299538 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb > + > +imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo > +dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb > + > dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba91xxca.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxca.dtb > dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxla.dtb > diff --git a/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso > new file mode 100644 > index 000000000000..9200113c9ec3 > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso > @@ -0,0 +1,60 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (C) 2025 PHYTEC Messtechnik GmbH > + * Author: Primoz Fiser <primoz.fiser@norik.com> > + */ > + > +/dts-v1/; > +/plugin/; > + > +&{/} { > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + > + vdev0vring0: vdev0vring0@a4000000 { > + reg = <0 0xa4000000 0 0x8000>; > + no-map; > + }; > + > + vdev0vring1: vdev0vring1@a4008000 { > + reg = <0 0xa4008000 0 0x8000>; > + no-map; > + }; > + > + vdev1vring0: vdev1vring0@a4010000 { > + reg = <0 0xa4010000 0 0x8000>; > + no-map; > + }; > + > + vdev1vring1: vdev1vring1@a4018000 { > + reg = <0 0xa4018000 0 0x8000>; > + no-map; > + }; > + > + rsc_table: rsc-table@2021e000 { Can we sort the node in order of unit-address? Shawn > + reg = <0 0x2021e000 0 0x1000>; > + no-map; > + }; > + > + vdevbuffer: vdevbuffer@a4020000 { > + compatible = "shared-dma-pool"; > + reg = <0 0xa4020000 0 0x100000>; > + no-map; > + }; > + }; > +}; > + > +&cm33 { > + mbox-names = "tx", "rx", "rxdb"; > + mboxes = <&mu1 0 1>, > + <&mu1 1 1>, > + <&mu1 3 1>; > + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, > + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>; > + status = "okay"; > +}; > + > +&mu1 { > + status = "okay"; > +}; > -- > 2.34.1 >
Hi Shawn, On 7. 07. 25 05:36, Shawn Guo wrote: > On Thu, Jun 19, 2025 at 08:39:51AM +0200, Primoz Fiser wrote: >> Add an overlay used for remote processor inter-core communication >> between A55 and M33 cores on the phyCORE-i.MX93 SoM based boards. >> >> Overlay adds the required reserved memory regions and enables the >> mailbox unit and the M33 core for RPMsg (Remote Processor Messaging >> Framework). >> >> Signed-off-by: Primoz Fiser <primoz.fiser@norik.com> >> --- >> arch/arm64/boot/dts/freescale/Makefile | 4 ++ >> .../dts/freescale/imx93-phycore-rpmsg.dtso | 60 +++++++++++++++++++ >> 2 files changed, 64 insertions(+) >> create mode 100644 arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso >> >> diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile >> index 0b473a23d120..08a1de299538 100644 >> --- a/arch/arm64/boot/dts/freescale/Makefile >> +++ b/arch/arm64/boot/dts/freescale/Makefile >> @@ -324,6 +324,10 @@ dtb-$(CONFIG_ARCH_MXC) += imx93-14x14-evk.dtb >> dtb-$(CONFIG_ARCH_MXC) += imx93-kontron-bl-osm-s.dtb >> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-nash.dtb >> dtb-$(CONFIG_ARCH_MXC) += imx93-phyboard-segin.dtb >> + >> +imx93-phycore-rpmsg-dtbs += imx93-phyboard-nash.dtb imx93-phyboard-segin.dtb imx93-phycore-rpmsg.dtbo >> +dtb-$(CONFIG_ARCH_MXC) += imx93-phycore-rpmsg.dtb >> + >> dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba91xxca.dtb >> dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxca.dtb >> dtb-$(CONFIG_ARCH_MXC) += imx93-tqma9352-mba93xxla.dtb >> diff --git a/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso >> new file mode 100644 >> index 000000000000..9200113c9ec3 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/freescale/imx93-phycore-rpmsg.dtso >> @@ -0,0 +1,60 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +/* >> + * Copyright (C) 2025 PHYTEC Messtechnik GmbH >> + * Author: Primoz Fiser <primoz.fiser@norik.com> >> + */ >> + >> +/dts-v1/; >> +/plugin/; >> + >> +&{/} { >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + vdev0vring0: vdev0vring0@a4000000 { >> + reg = <0 0xa4000000 0 0x8000>; >> + no-map; >> + }; >> + >> + vdev0vring1: vdev0vring1@a4008000 { >> + reg = <0 0xa4008000 0 0x8000>; >> + no-map; >> + }; >> + >> + vdev1vring0: vdev1vring0@a4010000 { >> + reg = <0 0xa4010000 0 0x8000>; >> + no-map; >> + }; >> + >> + vdev1vring1: vdev1vring1@a4018000 { >> + reg = <0 0xa4018000 0 0x8000>; >> + no-map; >> + }; >> + >> + rsc_table: rsc-table@2021e000 { > > Can we sort the node in order of unit-address? Sure. I will move rsc_table to the top in v2. BR, Primoz > > Shawn > >> + reg = <0 0x2021e000 0 0x1000>; >> + no-map; >> + }; >> + >> + vdevbuffer: vdevbuffer@a4020000 { >> + compatible = "shared-dma-pool"; >> + reg = <0 0xa4020000 0 0x100000>; >> + no-map; >> + }; >> + }; >> +}; >> + >> +&cm33 { >> + mbox-names = "tx", "rx", "rxdb"; >> + mboxes = <&mu1 0 1>, >> + <&mu1 1 1>, >> + <&mu1 3 1>; >> + memory-region = <&vdevbuffer>, <&vdev0vring0>, <&vdev0vring1>, >> + <&vdev1vring0>, <&vdev1vring1>, <&rsc_table>; >> + status = "okay"; >> +}; >> + >> +&mu1 { >> + status = "okay"; >> +}; >> -- >> 2.34.1 >> > -- Primoz Fiser phone: +386-41-390-545 email: primoz.fiser@norik.com -- Norik systems d.o.o. Your embedded software partner Slovenia, EU phone: +386-41-540-545 email: info@norik.com
© 2016 - 2025 Red Hat, Inc.