Avalon® 存储器映射(Avalon-MM) Intel® Stratix® 10 Hard IP+用于 PCI Express* 解决方案用户手册

ID 683527
日期 9/30/2019
Public
文档目录

A.1. 故障排查

通过如下表格列出常见问题和解决方案。如果IP代码支持 Transceiver Toolkit,则客户可通过Transceiver Toolkit 网页了解有关收发器连接信号完整性问题。

实例

表 65.  链路挂在L0(Link Hangs in L0)

可能的原因

症状和根本原因

解决方法和解决方案

Avalon‑ST信号违反Avalon-ST协议

Avalon-ST协议违规包括以下错误:

  • tx_st_eop有多个tx_st_sop
  • 两个或两个以上tx_st_eop无对应的tx_st_sop
  • rx_st_valid未通过tx_st_soptx_st_eop置位。

这些错误适用于仿真以及硬件。

添加逻辑以检测tx_st_ready保持解除置位超过100个周期的情况。设置后触发条件以检查最后2个TLP的Avalon-ST信令(signaling)从而验证正确的tx_st_soptx_st_eop信令。

错误的有效负载大小

确定由Endpoint传输的最后一个TLP的长度字段是否大于由链路伙伴通告的InitFC信用。请参阅日志文件和仿真转储了解关于仿真的信息。对于硬件,请使用第三方逻辑分析程序追踪来捕获PCIe事务。

如果有效负载(payload)大于通告的initFC信用,那么必须将已发表请求的InitFC增加到大于max payload size的值,或者将请求的TLP的有效负载大小减小到小于InitFC的值。

流程控制信用上溢(Flow control credit overflows)

确定tx_cred总线中与当前TLP类型关联的信用字段是否小于请求的信用值。当信用不足时,内核会等待链路伙伴(link partner)发布正确的信用类型。如果链路伙伴的信用增加超过预期,则可能无法获得足够的信用,从而会导致 Intel® Arria® 10 Hard IP for PCI Express IP Core信用计算与链路伙伴不同步的情况。

添加逻辑以检测tx_st_ready信号保持解除置位超过100个周期的情况。设置后触发条件来检查tx_cred_ *tx_st_ *接口的值。添加一个FIFO状态信号来确定TXFIFO是否已满。

发送给了格式错误的TLP

请参阅错误日志文件以查找链路上传输的最后一个良好数据包。将此数据包与Avalon-ST接口上发送的TLP相关联。确定发送的最后一个TLP是否存在以下错误:

  • 发送的实际有效负载与长度字段不匹配。
  • 错误指定格式和类型字段。
  • TD字段被置位,表示TLP digest (ECRC)的存在,但ECRC dword未出现在TLP的末尾。
  • 有效负载跨4KByte边界。

修改Application Layer逻辑以纠正错误状况。

Root Port发布的Posted信用不足

如果使用大于maximum payload size的有效载荷发送一个Memory Write TLP,则Root Port可能会向仿真中的Endpoint释放不正确的posted数据信用。因此,Endpoint没有足够的信用来发送其他Memory Write Request(存储器写请求)。

确保Application Layer发送的Memory Write Requests的有效载荷小于或等于maximum payload size指定的值。

缺少完成数据包或已丢弃数据包

RX Completion TLP可能导致RX FIFO溢出。确保所有未决Memory Read Requests的未完成读取数据总数小于RX缓冲区中分配的完成信用。

您必须确保所有未完成读取请求的数据不超过RX缓冲区中的完成信用(completion credit)。