Hi
I am enabling remoteproc support for imx9331, where i have modified the following dtsi file
https://github.com/tq-systems/linux-tqmaxx/blob/TQM-linux-v6.12.y/arch/arm64/boot/dts/freescale/imx9...
as shown below
diff --git a/arch/arm64/boot/dts/freescale/imx93.dtsi b/arch/arm64/boot/dts/freescale/imx93.dtsi
index 7bc3852c6ef8..5e8b8ee0b2f6 100644
--- a/arch/arm64/boot/dts/freescale/imx93.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx93.dtsi
@@ -211,7 +211,16 @@ map0 {
cm33: remoteproc-cm33 {
compatible = "fsl,imx93-cm33";
clocks = <&clk IMX93_CLK_CM33_GATE>;
- status = "disabled";
+ mbox-names = "tx", "rx", "rxdb";
+ mboxes = <&mu1 0 1>, <&mu1 1 1>, <&mu1 3 1>;
+
+ /* Link to the memory defined above */
+ memory-region = <&m33_reserved>, <&vdev0vring0>, <&vdev0vring1>, <&vdevbuffer>;
+
+ /* This allows Linux to reset the M33 */
+ syscon = <&src>;
+
+ status = "okay";
};
mqs1: mqs1 {
@@ -305,7 +314,7 @@ mu1: mailbox@44230000 {
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX93_CLK_MU1_B_GATE>;
#mbox-cells = <2>;
- status = "disabled";
+ status = "okay";
};
system_counter: timer@44290000 {
@@ -1332,4 +1341,31 @@ ddr-pmu@4e300dc0 {
interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
};
};
+
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ /* This is where the M33 code/data will live if you use DDR */
+ /* If you only use TCM, you still need this for the VirtIO rings */
+ m33_reserved: m33@0x80000000 {
+ no-map;
+ reg = <0 0x80000000 0 0x1000000>;
+ };
+
+ /* Virtio vring and buffers (needed for RPMsg) */
+ vdev0vring0: vdev0vring0@0x81000000 {
+ reg = <0 0x81000000 0 0x8000>;
+ no-map;
+ };
+ vdev0vring1: vdev0vring1@0x81008000 {
+ reg = <0 0x81008000 0 0x8000>;
+ no-map;
+ };
+ vdevbuffer: vdevbuffer@0x81010000 {
+ reg = <0 0x81010000 0 0x100000>;
+ no-map;
+ };
+ };
};
I have remoteproc in sysfs but when I tried to load firmware in elf format in the TCM of the M-core I get errors.
I think these addresses are wrong. Could someone please help me find the right address
+ m33_reserved: m33@0x80000000 {
+ no-map;
+ reg = <0 0x80000000 0 0x1000000>;
+ };
Thanks