UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 52028

Zynq-7000 AP SoC, GigE - Receive Path Lock-Up Might Occur When a Large Number of Receive Resource Errors are Generated

描述

Under heavy traffic of small sized Ethernet frames (~64 bytes) and when the controller encounters a large number of resource errors, there is a rare chance that the receive logic will completely lock down the receive path.

The controller can again receive frames after a flush and reset of the receive logic.

解决方案

The controller can again receive frames after a flush and reset of the receive logic.
 
Impact:
Minor.  It is a rare occurrence and there is a workaround to reset the channel.
Work-around:
Software can monitor the Rx channel for inactivity and reset the controller. Refer to Work-around Details.
Configurations Affected:
Systems using the Ethernet controller. The issue can be reproduced at 1 Gigabit Ethernet mode, but can theoretically occur at all 3 speeds.
Device Revision(s) Affected: All. No plan to fix. Refer to (Xilinx Answer 47916) Zynq-7000 AP SoC Silicon Revision Differences Answer Record.
 
 
Work-around Details:
 
Programming Steps:
 
  1. For every resource error (receive buffer not available error), the software must flush a packet from the Rx channel as soon as possible, by writing a 1 to the gem.net_ctrl [18] register bit.
    This reduces the rate at which resource errors are generated under heavy traffic.
     
  2. Software can monitor the Rx channel for non-activity on the receive path and reset the controller when needed.
    Use a timer to periodically (typically every 100 ms) check the statistic register, gem.frames_rx, for a count of successfully received frames.
     
  3. If the statistics counter does not increment for two consecutive reads, then software should assume inactivity on the receive path and reset the Rx channel by writing a 0 and then a 1 to the gem.net_ctrl [2] register bit.

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
47916 Zynq-7000 AP SoC 器件:芯片修订差异 N/A N/A
AR# 52028
日期 10/17/2014
状态 Active
Type 设计咨询
器件
  • Zynq-7000
的页面