【PCIe】无法建链问题定位手段之一

声明

  • 文章目的在于学习记录,知识分享。因个人能力有限:如有错误之处,请帮忙指出;如有疑问,欢迎随时交流

        在硅后的测试过程中,经常会遇到会遇到:在bootrom正常启动,完成初始化PCIe子系统,但其是无法正常link up。导致这个结果的可能性非常多,现在让我们站在Spec的角度,来逐一进行分析。

        首先,肯定要通过查看主状态机来判断当前的变换轨迹,最简单的方式就是通过状态机轨迹进行初步方向的定位。   

        先看Detect状态。

        如果发现状态机一直处于Detect状态,无法跳转至Poll,大概率问题有:

        Receiver detect失败: 这种问题很常见,因为其不仅涉及板级的可靠性设计,也包括芯片内部电路设计的准确性。那如何进行隔离呢?

        1. 一般设计都会支持Receiver detect Bypass功能。即:允许状态机忽略detect的结果,让状态机继续向后走。如果配置该功能后,可正常建链,问题得以证明。就需要检查相关设计是否可靠。

        2.那如果第一步设置后,状态机仍然无法跳转到Poll状态,而是在Detect.quiet和detect.active状态只来来回跳转呢?那就需要来排查芯片内部的正确性。一般来说,可以通过(如果芯片支持的话。当然,强烈建议在设计之初就要添加足够多定位手段。)

                2.1 确认SerDes是否支持local loopback模式,可进行LPBK测试,看是否正常;

                2.2 确认PCIe 控制器是否支持PIPE looopback模式,可进行LPBK测试,看是否正常;

        若以上都没有问题,这说明芯片设计本身存在问题的可能性较小,仍需进一步查看板级设计是否准备。比如:阻抗是否满足要求等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值