Ethernet TX complete interrupt occasionally not triggered, but frame transmitted correctly
Hello, I am developing a driver for the STM32H743 Ethernet Interface with external LAN8742A PHY on the NUCLEO H743ZI2 board.
I am doing stress tests. When transmitting and receiving a large amount of frames simultaneously, sometimes the TI interrupt is not triggered, even though I can see the frame was transmitted correctly to the other endpoint. Even though the interrupt is not triggered, the descriptor of the frame I transmitted is released by the ETH DMA, and shows no error. Lowering the transmission rate seems to solve the issue.
I checked the state of the descriptor and the internal current descriptor pointer of the ETH, before transmitting and some time after I know the frame was transmitted. Before transmission, my driver prepares the descriptor, sets its OWN bit, and sends the transmit command via the tail pointer. Just before the transmit command, the ETH internal descriptor pointer points to the descriptor I just prepared.
After transmission, this descriptor is released by the DMA and shows no error. The ETH internal current descriptor pointer points to the next descriptor, as expected.
Do you have any idea what might be happening, and how I could debug this further?
Thank you.
