文章 ID: 000088371 内容类型: 故障排除 上次审核日期: 2022 年 02 月 09 日

为什么我会看到在Cyclone® V SoC 设计上充满 RX 缓冲区的 HPS EMAC?

环境

Linux-socfpga

BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

由于 Linux-socfPGA 内核版本 5.4 及更高版本出现问题,HPS EMAC 在某些情况下可能会挂起或停止。

出现此问题的原因Cyclone® V SoC Linux 设备树设置不正确

  • 必须在 L2C-310 高速缓存控制器上启用"共享启用覆盖位"
  • 阅读和写入未处理交易限制应设置为在 EMAC DMA 上0xf
分辨率

要解决此问题,执行以下步骤:


1. 通过编辑 arch/arm/boot/dts/socfpga.dtsi, 确保 L2C-310 设备树节点设置共享的 Enable Override 位

       二级:高速缓存controller@fffef000 {

兼容 = "arm,pl310-cache";

reg = ;

中断 = ;

高速缓存统一;

高速缓存级别 = ;

arm,tag-latency = ;

arm,数据延迟 = ;

预先提取数据 = ;

预取存储器 = ;

arm,共享覆盖;  # 检查是否存在

arm,双线填充 = ;

arm,double-linefill-incr = ;

arm,双线填充包装 = ;

arm,prefetch-drop = ;

arm,prefetch-offset = ;

};

2. 编辑 以太网节点,以添加用于 snps、axi-config 的参考,以及 添加 snps、axi-config 中 arch/arm/boot/dts/socfpga.dtsi 的节点

GMAC0 示例:

diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfPGA.dtsi

索引 e404220.。90a0560 100644

--- a/arch/arm/boot/dts/socfPGA.dtsi

+++ b/arch/arm/boot/dts/socfPGA.dtsi

@@ -560,10 +560,16@@

重置名称 = "stmmaceth";

snps, multicast-filter-bins = ;

snps, perfect-filter-entries = ;

+ snps,axi-config = ;

tx-fifo-depth = ;

rx-fifo-depth = ;

状态 = "已禁用";

};

+

+ stmmac_axi_setup_0:stmmac-axi-config_0 {

+ snps,wr_osr_lmt = ;

+ snps,rd_osr_lmt = ;

+    };

此问题计划在 Linux-SocfPGA 内核的未来版本中解决。

相关产品

本文适用于 3 产品

Cyclone® V ST SoC FPGA
Cyclone® V SX SoC FPGA
Cyclone® V SE SoC FPGA

法律声明

1

在此网站发表的所有帖子以及对网站内容的使用均受 Intel.com 使用条款的约束。

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。