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.

DM368IPNC: EMAC does not set the EOQ bit

Hello,

I'm using the DM368IPNC camera with IPNC application, based on MontaVista 2.6.18 Linux kernel.

I've modified the EMAC driver a bit for our needs and currently working on the receiving part. We are using polled mode only, so interrupts are disabled.

 

I am facing the following problem, I hope anyone has a hint for me:

1) A list of 32 RX BDs is prepared, the "next", i.e. "h_next" pointer of the last BD in the queue is set to zero (verified). Word 3 of the BDs only have the OWNER bit set.

2) Driver is started, and EMAC receives exactly 32 packets, so the queue is full, and there are no more buffer descriptors available.

3) I poll/receive the 32 packets. Content is correct. Word 3 of all BDs has the SOP and EOP bits set, and the length is valid. BUT: The last packet should have the EOQ bit set, if I understood the manual correctly, but this is not the case.

4) If I send more packets, the driver gets into the host error handling section, complaining about the OWNER bit not set. EMAC should have stopped, but obviously, it didn't.

 

Please help! Thank you,

Harald