This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM814x USB MUSB CPPI DMA issue?

Hi,

I've been looking at the USB serial gadget on DM814x. I had to insert a schedule_timeout() in the txdma_completion_work() loop in board-support/linux-2.6.37-psp04.04.00.01/drivers/usb/musb/cppi41_dma.c, as suggested in http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/p/230498/842210.aspx. Even so, I see that the MUSB_TXCSR_FIFONOTEMPTY bit never goes away. Specifically, I see:

  • The first packet gets sent by the PSP itself, by DMA transparent mode from acm_cdc_notify() in drivers/usb/gadget/f_acm.c, into the DMA channel for EP1.
  • The txdma_completion_work() loop shows that the EP1 fifo is never emptied - FIFONOTEMPTY is always set in TXCSR, and never goes away
  • When my application writes to the ttyGS0, that data goes to the DMA channel for EP0, in generic RNDIS mode.
  • The txdma_completion_work() loop shows that the EP0 fifo gets emptied.  I.e., the FIFONOTEMPTY bit gets set, then goes away, as expected.

I don't see mention of this in the known deficiencies in the EZSDK 5_05_02_00 release notes. Is this a problem with CPPI 4.1 DMA, or USB CDC notifications?

Dan -