]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: freescale: imx95-toradex-smarc: Support Cortex M7
authorEmanuele Ghidoli <emanuele.ghidoli@toradex.com>
Tue, 3 Mar 2026 21:01:07 +0000 (22:01 +0100)
committerFrank Li <Frank.Li@nxp.com>
Fri, 27 Mar 2026 13:52:23 +0000 (09:52 -0400)
Enable Cortex M7, the vring nodes, a mailbox and reserve DDR memory for
the M7. The remoteproc framework is so capable to load and run the M7
firmware.

Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
arch/arm64/boot/dts/freescale/imx95-toradex-smarc.dtsi

index f64c05dc50f802f169ea87e8c021466580473325..7a73958f6eecc3775b04fe0348c0186386d891df 100644 (file)
                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>;
                        alloc-ranges = <0 0x80000000 0 0x7f000000>;
                        linux,cma-default;
                };
+
+               m7_reserved: memory@80000000 {
+                       reg = <0 0x80000000 0 0x1000000>;
+                       no-map;
+               };
+
+               rsc_table: rsc-table@88220000 {
+                       reg = <0 0x88220000 0 0x1000>;
+                       no-map;
+               };
+
+               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;
+               };
        };
 };
 
        pinctrl-0 = <&pinctrl_uart3>;
 };
 
+&mu7 {
+       status = "okay";
+};
+
 /* SMARC MDIO, shared between all ethernet ports */
 &netc_emdio {
        pinctrl-names = "default";