I am running the 2.6.23-davinci1 git kernel on a DM6446EVM. I'd like to make the EVM a USB peripheral using the gadget serial driver. So far I've been able to transmit data to the board from a host PC, but I've run into a problem when transmitting data from the board to the host PC. The data never appears to make it to the PC (to clarify, bulk endpoint 1 fails when transmitting to the PC - endpoint 0 is working correctly). I'm running some USB monitoring software on the PC, and it never sees the data, so I'm reasonably certain that the issue lies in my kernel on the EVM.
I've tried configuring the musb_hdrc module to use DMA, and I've also tried PIO (use_dma=n). In PIO mode, I've traced the data through the musb driver and determined that the data is getting loaded into the USB controller FIFO, but the controller doesn't seem to do anything with it. Subsequent writes just get queued up because the initial write never completes. I wrote some extra checks to spit out the value of the TXCSR register every time a write is queued, and TXCSR is stuck with the value 0x2003, which indicates that there is data in the FIFO that hasn't been sent. Does anyone have any ideas what might be going on? I'm not very familiar with USB, so I'm struggling to understand the driver. I was under the impression that others were running the 6446 in peripheral mode, and I didn't see any recent patches that seemed relevant, so I'm confused as to why something this fundamental wouldn't be working in my case. Any help would be appreciated. Thanks, Brian _________________________ Brian Niebuhr Senior Design Engineer E.F. Johnson _______________________________________________ Davinci-linux-open-source mailing list [email protected] http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
