由於 Linux-socfpga 核心版本 4.1.22-ltsi 中 Synopsys® Ethernet MAC 的 Linux 驅動程式出現問題,如果 HPS 子系統內的流量增加,乙太網路介面可能會失效。
當此問題出現時,HPS EMAC DMA 狀態註冊機將顯示下列狀態:
i_emac__dmagrp_status:
rs(接收程式狀態):0x5:RUNCLOSE:執行:關閉接收描述元
下列註冊器狀態可能也隨之出現
tu (無法傳輸緩衝區):0x1:無法使用傳輸描述元
ovf(接收溢出):0x1:接收緩衝區溢位
對於 HTTPs://github.com/altera-opensource 提供的 linux-socfpga 4.1.33-ltsi 核心,這個問題已經得到解決
承諾 ID:9a8bc214cc13bb318f403b (「stmmac:在 dwmac100 和 dwmac1000 之間共用重設功能」)
承諾 ID:b0db4ee2b475f0b7ac1e36 (「stmmac:重制 DMA 匯流排設定並引入新的平臺 AXI 結構」)
若要在早期的核心版本中解決這個問題,請編輯 EMAC DMA 控制器,將axi_bus_mode rd_osr_lmt和wr_osr_lmt收銀機設為0xF。 此設定允許在 EMAC DMA AXI 主介面上進行更多未完成的 AXI 交易。