Why does Linux report "DMA engine initialization failed" error when EMAC uses GMII interface? - Why does Linux report "DMA engine initialization failed" error when EMAC uses GMII interface?
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.
Custom Fields values:
['novalue']
Troubleshooting
1508998016, 1508997988
False
['novalue']
['FPGA Dev Tools Quartus® Prime Software Pro']
21.2
19.3
['Arria® V SX FPGA', 'Cyclone® V SX FPGA', 'Agilex™ 7 FPGAs and SoCs', 'Arria® 10 SX FPGA', 'Stratix® 10 SX FPGA']
['novalue']
['novalue']
['novalue'] - 2021-08-30
external_document