From 89d93ad8afedfcbc8281d07f68b18829325d73ab Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Fri, 24 Jul 2026 14:17:57 +0800 Subject: [PATCH] arm64: dts: imx943-evk: Add CM7 and CM33S nodes 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 Signed-off-by: Frank Li --- 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 49fb1744d992..64660f94f4e9 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_vdev0buffer>, <&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_vdev0buffer>, <&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_vdev0buffer>, <&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_vdev0buffer: vdev0buffer@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_vdev0buffer: vdev0buffer@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_vdev0buffer: vdev0buffer@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>;