Xilinx HSSIO 解决方案中心 — 设计辅助调试 GTR 相关问题
发布时间:2018/3/8
描述
本答复记录包含有关 GTR 问题的调试技巧以及与 GTR 相关的协议问题。
注意:本答复记录是 Xilinx HSSIO 解决方案中心的一部分(Xilinx 答复 37181)。
Xilinx HSSIO 解决方案中心可解决所有与 HSSIO 相关的问题。
无论您是要启动新设计还是要调试问题,请访问HSSIO 解决方案中心来指导您获取相应的信息。
解决方案
第 1 部分,已知问题:
在转向调试指南之前,请先检查以下已知问题,看看您遇到的问题是否可以匹配。
答复记录编号 | 标题 |
Zynq UltraScale+ MPSoC — PS-GTR:PCle 的多信道链路对齐可能需要一个以上的 SKP 顺序集 | |
Zynq UltraScale+ MPSoC — 将流量过大错误地表示为 CRC 错误 | |
Zynq UltraScale+ MPSoC、Vivado 2015.4 — 支持 PS DDR3/DDR4/LPDDR4 和 GTR 收发器的的补丁 | |
Zynq UltraScale+ MPSoC PS-GTR:在 SGMII 工作模式下,传输随机抖动不符合 IEEE 规范。 | |
Zynq UltraScale+ MPSoC、Vivado 2015.4 — 支持 MIO 以太网、PS GTR 和安全工作的 FSBL 补丁 | |
Zynq UltraScale+ MPSoC — 使用 PS-GTR 的 SGMII | |
Zynq UltraScale+ MPSoC:PS-GTR 参考时钟相位噪声屏蔽 | |
Zynq UltraScale+ MPSoC 系统监控器 — 为什么 PS 系统监控器会在 | |
Zynq UltraScale+ MPSoC — PS-GTR 忽略了奇数边界对齐的 PCIe SKP 顺序集 | |
Zynq UltraScale+ MPSoC — 使用 PS-GTR 的 SGMII — 为什么是 Zynq MP PHY 驱动程序,其可重新配置之前由 FSBL 为 SGMII 设置的信道? |
第 2 部分 — GTR 问题调试指南:
1) GTR 寄存器
所有 GTR 设置均由寄存器控制。我们可以通过访问以下链接并按关键字搜索串行解串器找到 GTR 的一部分。
https://china.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html
如果您想访问以上链接中没有的其它寄存器,请咨询 Xilinx 技术支持。
GTR 寄存器大多以 SERDES 前缀命名。
基址是 0xFD400000。
地址映射如下:
LANE0 特定空间:0xFD400000-0xFD403FFF
LANE1 特定空间:0xFD404000-0xFD407FFF
LANE2 特定空间:0xFD408000-0xFD40BFFF
LANE3 特定空间:0xFD40C000-0xFD40FFFF
公共空间:0xFD410000-0xFD41021F
2) 眼扫描
如果出现了链路不一致问题,建议执行眼扫描。
参考 (UG936)(v2017.2 以后版本)实验 10,查看了解眼扫描步骤的教程。
如果使用较早版本的 Vivado,请咨询 Xilinx 技术支持。
有了眼扫描结果,就可以确定链路裕度。
3) 转储寄存器
如果您有一个成功的案例和失败的案例,请根据以上地址映射转储 GTR (SERDES) 寄存器,以便进行比较。
下面是 UART 端口转储 LANE1 特定空间的示例命令:
md 0xfd404000 0x1000
UART 端口转储公共空间的另一个示例
md 0xfd410000 0x20
4) 检查参考时钟
必须使用 AC 耦合。推荐的电容是 10 nF。据 (UG583) 图 5-32 所示,LVPECL
时钟输入需要两个下拉电阻器。
差分输入电压有效范围为 250mV 至 2000mV。
有效频率列在 (DS925) 表 60 中。
占空比应处于 (DS925) 表 60 中规定的范围内。
相位噪声必须符合 (DS925) 表 61 中的掩模要求。对于本表中没有的参考时钟频率,请使用相位噪声掩模来表示最近的参考时钟频率。
5) 检查电源
有两个电源轨。将其命名为 PS_MGTRAVCC 和 PS_MGTRAVTT。
参考 (DS925) 表 2,查看 Xilinx 推荐的电压范围。这些电源轨上的电压可通过 PS 系统监控器进行监控。
从 10 kHz 到 80 MHz,噪声必须低于 10 mVPP。
参考(Xilinx 答复 57737),了解 GT 电源调试。
查看 DS925 的电源排序部分,确保完全符合所有需求。
6) PCB 检查表
参考 (UG583) 表 5-38,查看 GTR PCB 设计检查表。
7) 信号完整性
在电路板布局前运行 IBIS-AMI 仿真,以确保良好的信号完整性。
下载链接如下:
https://www.xilinx.com/member/ultrascale_plus_ibis_ami.html
8) 用于调试的回路
GTR 不支持 PMA 回路。该回路可在协议 IP 中完成。
例如,在 SGMII 模式下的 GEM 上,请参考在下一个协议相关调试部分的 GEM PCS 层中设置的回路。
9) 有些寄存器是否可反映 8b10b 解码器错误?
在 GTR 中没有寄存器,但是一些协议层寄存器可以反映同等错误。
例如,GEM 中有一个 rx_symbol_errors (GEM)
寄存器、frames_rxed_ok (GEM) 寄存器和
fcs_errors (GEM) 寄存器,可反映帧错误是否已被检测到。
10) 检查串行数据
不可能在 GTR 中检查实时并行 TX/RX 数据,就像我们通过 ILA 使用 PL GTH/GTY 执行的操作一样。
有时检查串行数据有助于研究问题。
例如,在 SGMII 链路发生故障时,如果该链路掉线,高速范围就会捕捉到以下波形。这可从 GTR 接收端捕获。
在该波形中,我们可以获得以下信息。
发送器(远程配套设备,通常是一个开关)正在发送 K28.5/D21.5/D0.0/D0.0 和 K28.5/D2.2/D0.0/D0.0。
根据协议,可从远程配套设备启用自动协商,因为配置 1 及配置 2 有序集可发送。
如果禁用了自动协商,则只能发送闲置的有序集 (K28.5/D16.2)。请看下图。因此,如果从 PS SGMII 禁用自动协商,而从远程配套设备启用,链路就会发生故障。
如果两边都启用了自动协商,另一件事是 Config Reg 总是为
D0.0/D0.0,这表明远程配套设备处于 1000BaseX 模式,而不是 SGMII 模式,因为最后一位是 0。
此外,这也会导致链路故障,因为在启用自动协商时,两者间的模式是不同的。
第 3 部分 — 协议相关调试指南:
1) SGMII 模式:
请先参考第 1 部分,了解已知问题。
查看 pcs_status (GEM) Register Bit2(链路状态),确定链路是否连上。
通过设置 pcs_control (GEM) Register Bit14 (loopback_mode) 尝试 PCS 层中的环路,以便旁路 GTR 并查看链路是否联通。
确保正确选择了 GEM*_REF_SRC_SEL。使用 GTR 时,这些寄存器应该设置为 1,以选择外部专用参考时钟输入。如果设置为 0,则选择内部 PS PLL 时钟。
这可能会降低性能或链路裕度。可能会出现链路不一致问题或数据包丢失情况。
自动协商的设置必须与远程配套设备相同。如果远程配套设备启用了 AN,则 GEM 必须启用。反过来也是一样的。
查看 pcs_status (GEM) Register bit3,看看 PCS 是否有自动协商能力。
设置或清除 pcs_control (GEM) Register bit 12
(enable_auto_neg),以启用或禁用 GEM 中的自动协商能力。
如果启用 AN,请查看 pcs_status (GEM)
Register bit5 auto_neg_complete,确定是否完成自动协商。
查看 pcs_control (GEM) Register Bit 15 中的 pcs_software_reset 是否被断言。
当该位为高时,链路无法在 GEM 中联通。设置
network_config (GEM) Register Bit27 (sgmii_mode_enable) 及 Bit11 (pcs_select),可发布 pcs_software_reset(它变为低)。
参考 (Xilinx 答复 66592),了解通过 GTR 使用 SGMII 的问题与解答。
2) PCI Express 模式:
参考第 1 部分,了解已知问题。
不要忘记为 PCIe 指定正确的分类代码,尤其是在根模式下。如果
Linux 枚举驱动程序发现不正确的分类代码,就会导致 BAR 分配失败。
以下快照展示了如何在 PCW 中定位分类代码设置。
MSI 可能无法跟英特尔 Mini PCIe WiFi 卡连用。
该桥接器丢弃了由 Intel 发布的不足 2 字节的 MSI MWr,MSI TLP 等不兼容。
查看下列从 PCIe 协议分析仪捕获的快照。
3) USB 模式:
参考第 1 部分,了解已知问题
4) SATA 模式:
参考第 1 部分,了解已知问题
5) 显示端口模式:
参考第 1 部分,了解已知问题