Part Number:TDA4VM
HI,
I found a bug in the linux kernel code with rproc driver in ti_k3_dsp_remoteproc.c/ti_k3_r5_remoteproc.c when these drivers use mailbox to send messages.
I doubte why you didn't have this problem.
Jukuo zhang:
第一次在TI的社区上发贴子,不知道有没人回复,我用中文也描述一遍。
不知道有没有人用过TI 的TDA4的板子,这个板子会用rpmsg + rproc做核间通信,会用mailbox发消息。
在TI 的K3_XX_remoteproc.c系列的驱动中使用mailbox 貌似有一个bug,就像正文中描述的那样,rproc的kick函数要将mailbox消息发往对端,发送侧申请一个msg buffer作为发送缓冲,可是这个buffer是个临时变量,如果我们在申请mailbox client时设置的发送属性为non-block,则存在问题:mbox_send_message调用后将消息缓冲放在mailbox client的自己的发送缓冲(看代码,是一个深度为20的缓冲哦)后立马返回,因为是局部变量,此时的“msg"这个kick函数中申请的变量将会释放,又因为是异步的,这时候kick提交到mailbox client中待发送的任务可能还没发送,这时候如果重新发送,则用的就是一个已经释放的局部变量,这不就踩踏了吗?
大家看看有没有遇到我类似的问题。
不过有一个差异,我的mailbox是ARM的,mailbox的消息的data长度是7字节,所以我用的是msg[7]的数组. TI原生代码用的一个32位,用的是一个
typedef unsigned long uintptr_t,不知是否是这里的差异,所以TI一直没问题。
,
Shine:
我把您说的bug升级到英文e2e论坛确认,请关注下面帖子的回复。https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1160755/tda4vm-the-function-k3-rproc-use-mailbox-to-send-data-seems-has-a-bug
相关推荐
- TDA4VM: DATA Write模式下driving端的两个timing参数,min transmit setup \min transmit hold
- LDC5072-Q1: Unequal output voltage difference of LDC5072 chip and subsequent processing issues
- LMK1D1208: Inquiry Regarding LMK1D1208 Buffer Output Issues
- AM6442: 如何确保CPSW 的 RMII接口 速率设置位100M? TRM检索不到pn_xgig的相关说明。
- TDA4VM: R5F runs C++ code
- TMS320F28377S: ccs5.5可以新建tms320f28377s的工程吗?我在新建工程的时候,New ccs project的variant界面没找到28377s器件支持。
- TDA4VM: ti-processor-sdk-rtos-j721e-evm-08_01_00_13
- TDA4VM: 芯片管脚G23,管脚名PMIC_POWER_EN1在芯片上电阶段输出波形问题