Communication between Cortex-A53 and Cortex-M4 using Messaging Unit(MU)

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

Communication between Cortex-A53 and Cortex-M4 using Messaging Unit(MU)

2,085 Views
Bhargava
Contributor I

Hi,

I have a requirement to setup inter-processor communication between A53 and M4 using Messaging Unit. I know there is RPMsg available but the requirement demands IPC realization directly on MU.

Is it possible to realize IPC directly on MU?

And if yes, please share the procedure and test application for the same.

The SoC I am working on is IMX8M MINI and Yocto Dunfell.

 

Regards,

Bhargava

0 Kudos
Reply
7 Replies

106 Views
yfliu
Contributor IV

Maybe this can help you:

https://github.com/nxp-imx-support/imx-mu/tree/master

Regards,

yf

 

0 Kudos
Reply

158 Views
StarryKnight04
Contributor I

Seamless communication between Cortex-A53 and Cortex-M4 is essential for efficient embedded system operation. NXP’s Messaging Unit (MU) and the RPMsg protocol enable reliable data exchange and coordination between these heterogeneous cores. Proper implementation ensures smooth inter-processor messaging for real-time applications.

0 Kudos
Reply

163 Views
Vince100
Contributor I

Bump!

I know it's 4 years later, but still, bump.

I'm on a i.MX8MP, so I have a M7 in baremetal and the 4x A53 cores running Linux. In the baremetal I can use:

MU_Init(MUB);
NVIC_SetPriority(MU1_M7_IRQn, APP_MU_IRQ_PRIORITY);
NVIC_EnableIRQ(MU1_M7_IRQn);
 
MU_SendMessage(MUB, regIndex, msg);
MU_ReceiveMsg(MUB, 0, &msg)
 
In Linux, I got nothing. I understand I could run the A53 cores in baremetal too and then the send/receive messages would work, but is there something in Linux? Even the VPU application notes (RM00294) refers to the Linux Reference Manual (RM00293), which contains nothing useful. My understanding is that one could simply call request_irq() with the right irq number (88 in my case) and a handler. But <linux/interrupt.h> doesn't exists.
 
Anything happened in there in the last couple years?
0 Kudos
Reply

1,870 Views
shivumatha
Contributor I

Hello,

 

I needed one information. Do you have mcmgr in your SDK which you downloaded from NXP site?

 

0 Kudos
Reply

2,072 Views
b36401
NXP Employee
NXP Employee

Please note that inter process_communication depends on the software. I mean the OS.
So you need to reference to Linux in point of inter process_communication.

0 Kudos
Reply

2,041 Views
Bhargava
Contributor I

Hi,

Could the issue be addressed please?

 

 

Regards,

Bhargava

0 Kudos
Reply

2,062 Views
Bhargava
Contributor I

Hi,

Thanks for replying.

Actually I am referring to Asymmetric Multiprocessing between Cortex-A53 and Cortex-M4.

Instead of using RPMsg (Remote Processor Messaging) for the same, is there a possibility to realize inter-processor communication directly on Messaging Unit(MU)?

Are these APIs [sc_ipc_open() , sc_ipc_read(), sc_ipc_write(), sc_ipc_close()] available in the linux mainline, Because I could not find any of them in the entire kernel source.

Please provide information about how those APIs can be used along with an user space application(if any).

 

Regards,

Bhargava

0 Kudos
Reply