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

1