How to implement remoteproc on i.MX93 (A55 running Linux controlling Cortex-M33)?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to implement remoteproc on i.MX93 (A55 running Linux controlling Cortex-M33)?

494 Views
Manjunathb
Contributor II

Hello NXP Community,

I am working on i.MX93 and want to enable remoteproc so that the Cortex-A55 core (running Linux) can control and communicate with the Cortex-M33 core.

I have a few doubts and would like step-by-step clarification:

  1. What are the initial steps required to enable and configure remoteproc on i.MX93?

    • Do I need to modify the device tree in Linux for the M33 core?

    • Which kernel configurations must be enabled for remoteproc/rpmsg support?

  2. On the M33 side, do I need to build the FreeRTOS SDK example (like the multicore demo) and load it through remoteproc?

    • If I run the multicore demo example, can I use that to test whether remoteproc is working correctly?

  3. How do I load the M33 firmware from the A55 core using Linux remoteproc?

    • Where should the firmware binary be placed in the root filesystem (/lib/firmware/)?

    • What changes are required in the DTS to bind the firmware to remoteproc?

  4. Once remoteproc is working, how do I verify communication between A55 and M33 using rpmsg?

    • Is there a test application in the Linux BSP for this?

  5. Are there any NXP reference guides, example projects, or documentation specific to remoteproc/rpmsg on i.MX93?

Any guidance, documentation links, or step-by-step instructions would be very helpful.

Thanks,
Manjunath

 

i.MX93 i.MX93EVK 

Labels (1)
0 Kudos
Reply
1 Reply

442 Views
danielchen
NXP TechSupport
NXP TechSupport

Hi @Manjunathb :

 

I would suggest you refer to AN5317.  In chapter 9,  the Linux rproc framework and i.MX Linux rproc support are described.

AN5317: Loading Code on Cortex-M from U-Boot/Linux for the i.MX Asymmetric Multi-Processing Applicat...

 

 

 

Regards

Daniel

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2154290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EHow%20to%20implement%20remoteproc%20on%20i.MX93%20(A55%20running%20Linux%20controlling%20Cortex-M33)%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2154290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%20NXP%20Community%2C%3C%2FP%3E%3CP%3EI%20am%20working%20on%20%3CSTRONG%3Ei.MX93%3C%2FSTRONG%3E%20and%20want%20to%20enable%20%3CSTRONG%3Eremoteproc%3C%2FSTRONG%3E%20so%20that%20the%20Cortex-A55%20core%20(running%20Linux)%20can%20control%20and%20communicate%20with%20the%20Cortex-M33%20core.%3C%2FP%3E%3CP%3EI%20have%20a%20few%20doubts%20and%20would%20like%20step-by-step%20clarification%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%3EWhat%20are%20the%20initial%20steps%20required%20to%20enable%20and%20configure%20%3CSTRONG%3Eremoteproc%3C%2FSTRONG%3E%20on%20i.MX93%3F%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EDo%20I%20need%20to%20modify%20the%20device%20tree%20in%20Linux%20for%20the%20M33%20core%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EWhich%20kernel%20configurations%20must%20be%20enabled%20for%20remoteproc%2Frpmsg%20support%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%3CP%3EOn%20the%20%3CSTRONG%3EM33%20side%3C%2FSTRONG%3E%2C%20do%20I%20need%20to%20build%20the%20FreeRTOS%20SDK%20example%20(like%20the%20%3CSTRONG%3Emulticore%20demo%3C%2FSTRONG%3E)%20and%20load%20it%20through%20remoteproc%3F%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EIf%20I%20run%20the%20multicore%20demo%20example%2C%20can%20I%20use%20that%20to%20test%20whether%20remoteproc%20is%20working%20correctly%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%3CP%3EHow%20do%20I%20load%20the%20M33%20firmware%20from%20the%20A55%20core%20using%20Linux%20remoteproc%3F%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EWhere%20should%20the%20firmware%20binary%20be%20placed%20in%20the%20root%20filesystem%20(%2Flib%2Ffirmware%2F)%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EWhat%20changes%20are%20required%20in%20the%20DTS%20to%20bind%20the%20firmware%20to%20remoteproc%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%3CP%3EOnce%20remoteproc%20is%20working%2C%20how%20do%20I%20verify%20communication%20between%20A55%20and%20M33%20using%20%3CSTRONG%3Erpmsg%3C%2FSTRONG%3E%3F%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EIs%20there%20a%20test%20application%20in%20the%20Linux%20BSP%20for%20this%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3C%2FLI%3E%3CLI%3E%3CP%3EAre%20there%20any%20NXP%20reference%20guides%2C%20example%20projects%2C%20or%20documentation%20specific%20to%20%3CSTRONG%3Eremoteproc%2Frpmsg%20on%20i.MX93%3C%2FSTRONG%3E%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3EAny%20guidance%2C%20documentation%20links%2C%20or%20step-by-step%20instructions%20would%20be%20very%20helpful.%3C%2FP%3E%3CP%3EThanks%2C%3CBR%20%2F%3EManjunath%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2Fi.MX93%2Fpd-p%2Fi.MX93%22%20class%3D%22lia-product-mention%22%20data-product%3D%22509-1%22%20target%3D%22_blank%22%3Ei.MX93%3C%2FA%3E%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fc-pwmxy87654%2Fi.MX93EVK%2Fpd-p%2Fi.MX93EVK%22%20class%3D%22lia-product-mention%22%20data-product%3D%222927-1%22%20target%3D%22_blank%22%3Ei.MX93EVK%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2154290%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3ELinux%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2154821%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20implement%20remoteproc%20on%20i.MX93%20(A55%20running%20Linux%20controlling%20Cortex-M33)%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2154821%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F252048%22%20target%3D%22_blank%22%3E%40Manjunathb%3C%2FA%3E%26nbsp%3B%3A%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3EI%20would%20suggest%20you%20refer%20to%20AN5317.%26nbsp%3B%20In%20chapter%209%2C%26nbsp%3B%20the%20Linux%20rproc%20framework%20and%20i.MX%20Linux%20rproc%20support%20are%20described.%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.nxp.com%2Fbundle%2FAN5317%2Fpage%2Ftopics%2Fintroduction.html%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3EAN5317%3A%20Loading%20Code%20on%20Cortex-M%20from%20U-Boot%2FLinux%20for%20the%20i.MX%20Asymmetric%20Multi-Processing%20Applicat...%3C%2FA%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CP%3ERegards%3C%2FP%3E%0A%3CP%3EDaniel%3C%2FP%3E%3C%2FLINGO-BODY%3E