2009-08-21 12:29:36     Problem receiving data from UART in DMA mode

Document created by Aaronwu Employee on Aug 18, 2013
Version 1Show Document
  • View in full screen mode

2009-08-21 12:29:36     Problem receiving data from UART in DMA mode

Steve Bo (UNITED STATES)

Message: 79123   

 

Hi,

 

 

We are using a Blackfin 527 UART in DMA mode to receive 500kbps data.  We are using the Blackfin ttyBFx driver. Most incoming packets are 5 bytes, some are a little longer.

 

We are using a snapshot from Feb. 2009.

 

Generally when a packet comes in, the DMA timeout interrupt receives the data and pushes it up to the tty layer.  This happens in < 20ms.  Our problem is that occasionally the DMA timeout interrupt fails to send the data to the tty layer.   Eventually another data packet will come in 1.5 seconds later.  Then the next DMA interrupt will receive the data from both packets and send it all to the tty layer.  No data is lost.

 

We know that the DMA timeout interrupt in the driver is executing every 20 ms.

 

Why aren't we consistently getting the data in user space after it comes in?  Has there been a fix for this?

 

Thanks,

 

Steve

QuoteReplyEditDelete

 

 

2009-08-21 16:45:44     Re: Problem receiving data from UART in DMA mode

Mike Frysinger (UNITED STATES)

Message: 79131   

 

i'm pretty sure this is fixed already.  you shouldnt be taking random snapshots and hoping they work, you should be sticking to the latest svn branch.

 

Steve Bo (UNITED STATES)

Message: 79123   

 

Hi,

 

 

We are using a Blackfin 527 UART in DMA mode to receive 500kbps data.  We are using the Blackfin ttyBFx driver. Most incoming packets are 5 bytes, some are a little longer.

 

We are using a snapshot from Feb. 2009.

 

Generally when a packet comes in, the DMA timeout interrupt receives the data and pushes it up to the tty layer.  This happens in < 20ms.  Our problem is that occasionally the DMA timeout interrupt fails to send the data to the tty layer.   Eventually another data packet will come in 1.5 seconds later.  Then the next DMA interrupt will receive the data from both packets and send it all to the tty layer.  No data is lost.

 

We know that the DMA timeout interrupt in the driver is executing every 20 ms.

 

Why aren't we consistently getting the data in user space after it comes in?  Has there been a fix for this?

 

Thanks,

 

Steve

QuoteReplyEditDelete

 

 

2009-08-21 16:45:44     Re: Problem receiving data from UART in DMA mode

Mike Frysinger (UNITED STATES)

Message: 79131   

 

i'm pretty sure this is fixed already.  you shouldnt be taking random snapshots and hoping they work, you should be sticking to the latest svn branch.

Attachments

    Outcomes