TDA4VEN-Q1: TDA4VEN-Q1: TDA4VEN-Q1: TDA4Entry Linux default release the MCU2_0/C7x_1/C7x_2 IPC handshake can not stable work

Part Number: TDA4VEN-Q1


Can you explain the root cause?

reference 1 :

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1581433/tda4ven-q1-tda4ven-q1-tda4entry-linux-default-release-the-mcu2_0-c7x_1-c7x_2-ipc-handshake-can-not-stable-work?keyMatch=c7x%20ipc%20tda4ven&tisearch=universal_search

reference 2 :

https://e2echina.ti.com/support/processors/f/processors-forum/1051320/tda4ven-q1-j722s-c7x-may-get-stuck-writing-mrr-registers-during-ipc-initialization

如果我屏蔽了omap_mbox_chan_send函数中的mbox_fifo_write函数,则不会复现(自测300次)。
个人推测是跟Soc核(A72/A53)向C7X发送IPC消息有关.
当读取MAILBOX_MAILBOX_CLUSTER_X寄存器时,我发现mailbox中一直有消息,mailbox的中断触发是电平触发,因此推测mailbox中断会持续触发c7x的中断,所以我在c7x初始化clec寄存器时多个地方使用
volatile int i= 0; 
while(i<=3000000){i++;}
c7x忙等待来自soc和的中断,发现并没有卡住。