@XuanTran, intuitively it makes me think of an unhandled error condition. Something went wrong and the peripheral is waiting for an acknowledgment from the application.
I am familiar with the Zynq 7000 network, although I only use FreeRTOS-Plus-TCP.
I used both 100 Mb and 1 Gb without problems.
In the FreeRTOS+TCP Xylinx driver, 3 interrupts are being used: send, receive, and error:
XEmacPs_SetHandler( &xemacpsif->emacps, XEMACPS_HANDLER_DMASEND,
( void * ) emacps_send_handler,
( void * ) xemacpsif );
XEmacPs_SetHandler( &xemacpsif->emacps, XEMACPS_HANDLER_DMARECV,
( void * ) emacps_recv_handler,
( void * ) xemacpsif );
XEmacPs_SetHandler( &xemacpsif->emacps, XEMACPS_HANDLER_ERROR,
( void * ) emacps_error_handler,
( void * ) xemacpsif );
Can you put a break in you emacps error handler? Or set some variable to remember what events have occurred?