我们做了一款设备,用了usb网卡,运行一段时间后,经常发现usb发数据正常,usb收数据不正常,具体描述如下:
1 现在用的dvsdk的版本是4.02,用的dm368芯片;usb设备用的是 host模式。
2 通过Usb网卡做ping命令,一般3分钟后就不通了,这时网络连接还在, 向外发出的UDP包还可以被服务器收到,服务器向DM365发回的UDP包就收不到了。
3 在使用usb网卡收发数据时,经常可以看到MUSB驱动一秒钟打印几十次这样的调试信息,DMA complete but packet still in FIFO, CSR 0x2003.
4 还有在musb_host.c 1572行,代码也会执行到错误打印处。
if (unlikely(dma_channel_status(dma) == MUSB_DMA_STATUS_BUSY))
{ /* SHOULD NEVER HAPPEN … but at least DaVinci has done it */
ERR("RX%d dma busy, csr %04x\n", epnum, rx_csr); goto finish;
}
5 还有这个打印 也会出现
WARNING: at drivers/usb/musb/musb_host.c:126 musb_h_tx_flush_fifo+0x94/0xd4() Could not flush host TX2 fifo: csr: 2003
请问一下这具体是什么原因,是不是驱动程序的问题,Musb模块的驱动有新版本吗?谢谢!
Chris Meng:
你好,
1. 是所有的机器都有该问题么?发生问题机器,每次都是运行3分多钟就会出现问题(毕现)?这三分钟在做什么网络操作?
2. 能否提供一个较为完整的log,你提供的信息比较多,有些乱。
3. 请确认USB VBUS 5V供电没有电压跳变。
Chris Meng:
回复 Chris Meng:
最新的驱动在http://processors.wiki.ti.com/index.php/DaVinci_(ARM9)_PSP_Releases#DM36x。
还有在git上http://arago-project.org/git/projects/?p=linux-davinci.git;a=summary。
Tuff Li:
回复 Chris Meng:
DVSDK4里带的PSP版本比较老,请用新的PSP或者驱动看看
另外一个,看看关掉USB host的DMA是否不会再次出现问题?
jianning Li:
回复 Tuff Li:
谢谢,用新的psp我们的代码先得移植一下,再看一下吧。
James lin1:
回复 jianning Li:
请问下最后问题怎么解决的?我们也碰到这个问题