Due to a problem in the Linux driver for the Synopsys® Ethernet MAC in the linux-socfpga kernel version 4.1.22-ltsi, ethernet interface may stall if there is increased traffic within the HPS sub system.
When this problem appears the HPS EMAC DMA Status registers will show the following state:
i_emac_<X>_dmagrp_status:
rs (Received Process State) : 0x5: RUNCLOSE : Running: Closing Receive Descriptor
The following registers status may also be present
tu (Transmit Buffer Unavailable): 0x1 : Transmit Descriptor Unavailable
ovf (Receive Overflow): 0x1 : Receive Buffer overflow
This problem has been fixed for the linux-socfpga 4.1.33-ltsi kernel available from https://github.com/altera-opensource
Commit ID: 9a8bc214cc13bb318f403b ("stmmac: share reset function between dwmac100 and dwmac1000")
Commit ID: b0db4ee2b475f0b7ac1e36 ("stmmac: rework DMA bus setting and introduce new platform AXI structure")
To work around this problem in earlier Kernel versions, edit the EMAC DMA control registers to set axi_bus_mode rd_osr_lmt and wr_osr_lmt registers to 0xF. This setting allows a greater number of outstanding AXI transactions on the EMAC DMA AXI Master interface.