Article ID: 000086358 Content Type: Troubleshooting Last Reviewed: 05/01/2017

Why does the ethernet hang when running Linux on my Arria 10 HPS system?

Environment

  • Intel® Arria® 10 SX SoC FPGA
  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    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

     

     

    Resolution

    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.

     

     

    Disclaimer

    1

    All postings and use of the content on this site are subject to Intel.com Terms of Use.