由于linux-socfpga内核版本4.1.22-ltsi中的Synopsys®以太网MAC的Linux驱动程序存在问题,如果HPS子系统内的流程增加,以太网接口可能会停止。
出现此问题时,HPS EMAC DMA状态寄存器将显示以下状态:
i_emac_ <X> _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事务。
没有回复内容