Article ID: 000086384 Content Type: Troubleshooting Last Reviewed: 08/30/2021

Why does Linux report "DMA engine initialization failed" error when EMAC uses GMII interface?

Environment

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    When supporting GMII interface for HPS EMAC, there are three clocks exported to FPGA:

    emac_tx_clk_i(input), emac_rx_clk_i(input), emac_gtx_clk(output)

     

    The Linux would report below error if the emac_tx_clk_i clock is not connected correctly:

    ......

    [    4.291414] socfpga-dwmac ff802000.ethernet: Failed to reset the dma

    [    4.297785] socfpga-dwmac ff802000.ethernet eth1: stmmac_hw_setup: DMA engine initialization failed

    [    4.306806] socfpga-dwmac ff802000.ethernet eth1: stmmac_open: Hw setup failed

    ......

    Resolution

    Besides connecting the emac_rx_clk_i(125MHz) for GMII, the emac_tx_clk_i also needs to be connected correctly (2.5MHz or 25MHz), although it is not used in GMII mode. 

     

    The emac_tx_clk_i requirement information has been added in the HPS document beginning with version 21.2.

     

    Related Products

    This article applies to 5 products

    Intel Agilex® 7 FPGAs and SoC FPGAs
    Arria® V SX SoC FPGA
    Cyclone® V SX SoC FPGA
    Intel® Stratix® 10 SX SoC FPGA
    Intel® Arria® 10 SX SoC FPGA