Tool/software: Code Composer Studio
Hello experts,
I have a problem with a stalling CPDMA/Tx interrupt when sending Ethernet data on a Sitara AM3359 custom board with custom firmware RTOS based.
Under heavy load the CPDMA stops sending and I don't get the Tx interrupt anymore. My test condition is about 200 ping consoles sending 1472 bytes each to the port. After some minutes or hours, sending stops but receiving goes on. I am not able to restart a transmission. The last package was finished by the DMA (e.g. HDP=0x4A102A8C, flags=0xE0000071 and CP=0x4A102A78, flags=0x1000003C, next=0x0) and the DMA_STAT is idle 0x80000000. Looks like I have a race condition here, but I followed the instruction of the TRM about the misqueued handling. I cannot see any error condition of the DMA.
When this happens I already tried a DMA restart by writing the TX_CP and TX_HDP again, disable and enable TX_EN, writing EOI_TX_PULSE again. No success.
My question: In which register can I see, why the CPDMA does not start again?
Best Regards,
Stephan
