Back to back packets lost in MAC + DMA?

We use the NET+50 to receive a video stream (numbered packets). It looks as if the MAC + DMA combination sometimes does not process the second packet when two packets with the proper (unicast) MAC address are received back to back. The RX_DV signal from the Intel LXT971A PHY looks OK with the required 0.96 us gap in between, but the second packet sometimes is not present in the DMA buffers. There are enough free DMA buffers (descriptors) available. The lost packet does not change any error or status bits, it is as if it was never received. The error rate is below 1 : 1E6, but it’s enough to cause severe problems. We have to use UDP and cannot retry lost packets. Is this a known problem? Is there some setting in the EFE or DMA registers that could influence this behavior? Regards, Arie de Muynck

it could be a performance issue or buffer size issue. Try the same at 10Mbs. (you can force this in the BSP)

Have you figured out this problem? Have you checked the EFE receive error registers, (RXCRC, RXAEC, RXLFC, RXSFC, RXCEC)?

Hi Paul, All EFE and DMA registers seem quite normal. Since more problems with lost packets occurred we have not put much attention to this detail. We are now concentrating on packets being lost that are far apart - possible the same problem as mentioned above. We have detected packet loss between MAC and DMA. Sometimes the message just is not there and the DMA has not incremented. Sometimes the DMA has incremented but the EFE status has not been written into the descriptor. This is a known problem (see the narmenet.c sources) but apparently nobody noticed that not just the DMA stepped but that also a packet got lost. We have done measurements with a logic analyzer grabbing a proper msg (CRC correct) on the MII bus, but with the (sequentially numbered) packet not being received. Regards, Arie de Muynck