Zynq-7000 SoC,GigE - 当生成大量接收资源错误时,可能会发生接收路径锁定

描述

在小型以太网帧(~64字节)的大量流程下以及当控制器遇到大量资源错误时,接收逻辑很可能完全锁定接收路径。

在刷新和重置接收逻辑之后,控制器可以再次接收帧。

在刷新和重置接收逻辑之后,控制器可以再次接收帧。
影响:
次要。这种情况很少发生,并且有一种解决方法可以重置频道。
解决方法:
软件可以监视RX通道的不活动状态并重置控制器。请参阅解决方法详细信息。
受影响的配置:
使用以太网控制器的系统。该问题可以在1千兆位以太网模式下重现,但理论上可以在所有3种速度下发生。
受影响的器件版本: 所有。没有计划修复。请参阅(Xilinx答复47916) Zynq-7000 SoC芯片版本差异答复记录。
解决方法细节:
编程步骤:

  1. 对于每个资源错误(接收缓冲区不可用错误),软件必须通过向gem.net_ctrl [18]寄存器位写入1来尽快从RX通道刷新数据包。
    这降低了在繁忙流程下生成资源错误的速率。

  2. 软件可以在接收路径上监视RX通道的非活动状态,并在需要时重置控制器。
    定期(通常每100 ms)使用一个计时器检查统计寄存器gem.frames_rx,以获取成功接收的帧数。
  3. 如果统计计数器在两次连续读取时没有递增,那么软件应该假设接收路径不活动,并通过向gem.net_ctrl [2]寄存器位写入0然后再写1来重置RX通道。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:11:40 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它