Enable remoteproc support for imx9331

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Enable remoteproc support for imx9331

ソリューションへジャンプ
439件の閲覧回数
Josh-256
Contributor II

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

0 件の賞賛
返信
1 解決策
235件の閲覧回数
Josh-256
Contributor II

I have fixed the issue. the firmare had to be copied to /lib/firmware. The address was correct. but I had to disable the cache for M-core as the firmware loops for confirmation.

元の投稿で解決策を見る

2 返答(返信)
236件の閲覧回数
Josh-256
Contributor II

I have fixed the issue. the firmare had to be copied to /lib/firmware. The address was correct. but I had to disable the cache for M-core as the firmware loops for confirmation.

297件の閲覧回数
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Josh-256 

I hope you are doing very well.

 

Could you please share what BSP version are you using?

Also, please share the error logs that you are having.

 

The changues seems to similar to our official device tree of our EVK. 

 

Best regards,

Salas.

0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2353323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3Eimx9331%20%E3%81%AE%20remoteproc%20%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2353323%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3C%2FP%3E%3CP%3Eimx9331%20%E3%81%AE%20remoteproc%20%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81%E4%BB%A5%E4%B8%8B%E3%81%AE%20dtsi%20%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Ftq-systems%2Flinux-tqmaxx%2Fblob%2FTQM-linux-v6.12.y%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Ftq-systems%2Flinux-tqmaxx%2Fblob%2FTQM-linux-v6.12.y%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%3C%2FA%3E%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E3%81%AB%E7%A4%BA%E3%81%99%E3%82%88%E3%81%86%E3%81%AB%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3Ediff%20--git%20a%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%20b%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%0Aindex%207bc3852c6ef8..5e8b8ee0b2f6%20100644%0A---%20a%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%0A%2B%2B%2B%20b%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93.dtsi%0A%40%40%20-211%2C7%20%2B211%2C16%20%40%40%20map0%20%7B%0A%20%09cm33%3A%20remoteproc-cm33%20%7B%0A%20%09%09compatible%20%3D%20%22fsl%2Cimx93-cm33%22%3B%0A%20%09%09clocks%20%3D%20%26lt%3B%26amp%3Bclk%20IMX93_CLK_CM33_GATE%26gt%3B%3B%0A-%09%09status%20%3D%20%22disabled%22%3B%0A%2B%09%09mbox-names%20%3D%20%22tx%22%2C%20%22rx%22%2C%20%22rxdb%22%3B%0A%2B%09%09mboxes%20%3D%20%26lt%3B%26amp%3Bmu1%200%201%26gt%3B%2C%20%26lt%3B%26amp%3Bmu1%201%201%26gt%3B%2C%20%26lt%3B%26amp%3Bmu1%203%201%26gt%3B%3B%0A%2B%0A%2B%09%09%2F*%20Link%20to%20the%20memory%20defined%20above%20*%2F%0A%2B%09%09memory-region%20%3D%20%26lt%3B%26amp%3Bm33_reserved%26gt%3B%2C%20%26lt%3B%26amp%3Bvdev0vring0%26gt%3B%2C%20%26lt%3B%26amp%3Bvdev0vring1%26gt%3B%2C%20%26lt%3B%26amp%3Bvdevbuffer%26gt%3B%3B%0A%2B%0A%2B%09%09%2F*%20This%20allows%20Linux%20to%20reset%20the%20M33%20*%2F%0A%2B%09%09syscon%20%3D%20%26lt%3B%26amp%3Bsrc%26gt%3B%3B%0A%2B%0A%2B%09%09status%20%3D%20%22okay%22%3B%0A%20%09%7D%3B%0A%20%0A%20%09mqs1%3A%20mqs1%20%7B%0A%40%40%20-305%2C7%20%2B314%2C7%20%40%40%20mu1%3A%20mailbox%4044230000%20%7B%0A%20%09%09%09%09interrupts%20%3D%20%3CGIC_SPI%2022%3D%22%22%20irq_type_level_high%3D%22%22%3E%3B%0A%20%09%09%09%09clocks%20%3D%20%26lt%3B%26amp%3Bclk%20IMX93_CLK_MU1_B_GATE%26gt%3B%3B%0A%20%09%09%09%09%23mbox-cells%20%3D%20%26lt%3B2%26gt%3B%3B%0A-%09%09%09%09status%20%3D%20%22disabled%22%3B%0A%2B%09%09%09%09status%20%3D%20%22okay%22%3B%0A%20%09%09%09%7D%3B%0A%20%0A%20%09%09%09system_counter%3A%20timer%4044290000%20%7B%0A%40%40%20-1332%2C4%20%2B1341%2C31%20%40%40%20ddr-pmu%404e300dc0%20%7B%0A%20%09%09%09interrupts%20%3D%20%3CGIC_SPI%2090%3D%22%22%20irq_type_level_high%3D%22%22%3E%3B%0A%20%09%09%7D%3B%0A%20%09%7D%3B%0A%2B%0A%2B%09reserved-memory%20%7B%0A%2B%09%20%20%20%20%23address-cells%20%3D%20%26lt%3B2%26gt%3B%3B%0A%2B%09%20%20%20%20%23size-cells%20%3D%20%26lt%3B2%26gt%3B%3B%0A%2B%09%20%20%20%20ranges%3B%0A%2B%0A%2B%09%20%20%20%20%2F*%20This%20is%20where%20the%20M33%20code%2Fdata%20will%20live%20if%20you%20use%20DDR%20*%2F%0A%2B%09%20%20%20%20%2F*%20If%20you%20only%20use%20TCM%2C%20you%20still%20need%20this%20for%20the%20VirtIO%20rings%20*%2F%0A%2B%09%20%20%20%20m33_reserved%3A%20m33%400x80000000%20%7B%0A%2B%09%20%20%20%20%20%20%20%20no-map%3B%0A%2B%09%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0%200x80000000%200%200x1000000%26gt%3B%3B%0A%2B%09%20%20%20%20%7D%3B%0A%2B%0A%2B%09%20%20%20%20%2F*%20Virtio%20vring%20and%20buffers%20(needed%20for%20RPMsg)%20*%2F%0A%2B%09%20%20%20%20vdev0vring0%3A%20vdev0vring0%400x81000000%20%7B%0A%2B%09%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0%200x81000000%200%200x8000%26gt%3B%3B%0A%2B%09%20%20%20%20%20%20%20%20no-map%3B%0A%2B%09%20%20%20%20%7D%3B%0A%2B%09%20%20%20%20vdev0vring1%3A%20vdev0vring1%400x81008000%20%7B%0A%2B%09%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0%200x81008000%200%200x8000%26gt%3B%3B%0A%2B%09%20%20%20%20%20%20%20%20no-map%3B%0A%2B%09%20%20%20%20%7D%3B%0A%2B%09%20%20%20%20vdevbuffer%3A%20vdevbuffer%400x81010000%20%7B%0A%2B%09%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0%200x81010000%200%200x100000%26gt%3B%3B%0A%2B%09%20%20%20%20%20%20%20%20no-map%3B%0A%2B%09%20%20%20%20%7D%3B%0A%2B%09%7D%3B%0A%20%7D%3B%3C%2FGIC_SPI%3E%3C%2FGIC_SPI%3E%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3Esysfs%E3%81%ABremoteproc%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81M-core%E3%81%AETCM%E3%81%ABelf%E5%BD%A2%E5%BC%8F%E3%81%AE%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%82%92%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%93%E3%82%8C%E3%82%89%E3%81%AE%E4%BD%8F%E6%89%80%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%E3%81%A9%E3%81%AA%E3%81%9F%E3%81%8B%E6%AD%A3%E3%81%97%E3%81%84%E4%BD%8F%E6%89%80%E3%82%92%E8%A6%8B%E3%81%A4%E3%81%91%E3%82%8B%E3%81%AE%E3%82%92%E6%89%8B%E4%BC%9D%E3%81%A3%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%9B%E3%82%93%E3%81%8B%EF%BC%9F%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%2B%09%20%20%20%20m33_reserved%3A%20m33%400x80000000%20%7B%0A%2B%09%20%20%20%20%20%20%20%20no-map%3B%0A%2B%09%20%20%20%20%20%20%20%20reg%20%3D%20%26lt%3B0%200x80000000%200%200x1000000%26gt%3B%3B%0A%2B%09%20%20%20%20%7D%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2356272%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Enable%20remoteproc%20support%20for%20imx9331%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2356272%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%95%8F%E9%A1%8C%E3%82%92%E4%BF%AE%E6%AD%A3%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AF%2Flib%2Ffirmware%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E4%BD%8F%E6%89%80%E3%81%AF%E6%AD%A3%E3%81%97%E3%81%8B%E3%81%A3%E3%81%9F%E3%80%82%E3%81%97%E3%81%8B%E3%81%97%E3%80%81%E3%83%95%E3%82%A1%E3%83%BC%E3%83%A0%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E7%A2%BA%E8%AA%8D%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AB%E3%83%AB%E3%83%BC%E3%83%97%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81M-core%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2355394%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20Enable%20remoteproc%20support%20for%20imx9331%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2355394%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F217050%22%20target%3D%22_blank%22%3E%E3%80%81%40Josh-256%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E3%81%8A%E5%85%83%E6%B0%97%E3%81%A7%E3%81%8A%E9%81%8E%E3%81%94%E3%81%97%E3%81%AE%E3%81%93%E3%81%A8%E3%81%A8%E6%80%9D%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%81%8A%E4%BD%BF%E3%81%84%E3%81%AEBSP%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%3C%2FP%3E%0A%3CP%3E%E3%81%BE%E3%81%9F%E3%80%81%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%AD%E3%82%B0%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E5%A4%89%E6%9B%B4%E7%82%B9%E3%81%AF%E3%80%81EVK%E3%81%AE%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2Flf-6.12.y%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx93-11x11-evk.dts%23L295%22%20target%3D%22_self%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3E%E5%85%AC%E5%BC%8F%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%84%E3%83%AA%E3%83%BC%3C%2FA%3E%E3%81%A8%E4%BC%BC%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%82%B5%E3%83%A9%E3%82%B9%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E