当前位置:首页 > EDA > 电子设计自动化
[导读]当PCIe出现链路不稳定时,如何进行进行问题定位。本文描述的场景:EP PCIe 最高速率为gen4模式,ltssm状态机无法持续稳定在L0状态。

当PCIe出现链路不稳定时,如何进行进行问题定位。本文描述的场景:EP PCIe 最高速率为gen4模式,ltssm状态机无法持续稳定在L0状态。

1.使用lspci观察配置空间的状态寄存器

使用lspci查看Endpoint(EP)和downstream port(DSP)的配置空间,两者都要看,方便定位问题出现在Endpoint的TX侧链路还是RX侧链路。重点看配置空间的状态寄存器,状态寄存器记录了曾经发生的错误状态。NOTE: 如下案例中的状态位支持写1清零,可以通过setpci 命令将状态位清零,观察错误状态是否再次置1。setpci -s 1a:00.0 110.L=FFFFFFFF //将bdf为1a:00.0的0x110地址的寄存器写全1清零,对应图1-2中的CESta状态寄存器。

1.1.看device status寄存器

下图是DSP的device status寄存器,可以发现存在可纠正错误(CorrErr+)。

PCIe 定位:链路问题定位方法

1.2.看AER的状态寄存器

Advanced Error Reporting能够提供更详细的异常状态记录,可以重点看Uncorrectable Error Status Register(UESta)和Correctable Error Status Register(CESta),UESta和CESta都提供了详细的错误分类,例如CESta就支持如下错误记录:Receiver Error Status、Bad TLP Status、Bad DLLP Status、REPLAY_NUM Rollover Status、Replay Timer Timeout Status、Advisory Non-Fatal Error Status、Corrected Internal Error Status。 

PCIe 定位:链路问题定位方法

 图1-2:AER能力结构状态

PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法

2.尝试调整lane数量,观察链路状态

通过修改EP的配置调整LnkCap(Link Capabilities Register)的Maximum Link Width数值(主流的PCIe IP均支持此功能),观察在不同lane数量的情况下,链路是否稳定,例如x16、x8、x4、x2和x1。NOTE: 可以重点观察x16 --> x8 -->x16 两次跳变场景下的链路情况。 

PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法

3.尝试调整PCIe速率,观察链路质量

通过修改EP的配置调整LnkCap(Link Capabilities Register)的Max Link Speed数值(主流的PCIe IP均支持此功能),观察在不同速率的情况下,链路是否稳定,例如gen4、gen3、gen2、gen1。NOTE: 可以重点观察gen4--> gen3-->gen4两次跳变场景下的链路情况。

PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法

4.尝试Perform Equalization,观察链路状态

通过对DSP的Secondary PCI Express Extended Capability中Link Control 3 Register的Perform Equalization字段写1,使得DSP再次执行Equalization,等待LTSSM进入L0后,观察链路质量。本操作调整的是DSP和EP发送侧的均衡参数。

PCIe 定位:链路问题定位方法

5.进行lane眼图测试,观察眼图质量

在出现链路问题的时候,对所有的lane进行眼图测试,观察不同lane的眼图质量。重点关注:是否存在部分lane的眼图在特定场景下(高速率)质量很差。

PCIe 定位:链路问题定位方法

6.尝试进行PHY RX adapter,观察链路状态

对PHY的RX进行配置,使其再次进行adapter,PHY会根据链路状态进行自适应参数调整以满足链路质量的要求,不同的PHY vendor拥有不同的配置方法和限制条件,需要根据IP SPEC进行配置。此类配置是逐lane配置的,重点关注方法5中发现的有问题的lane。

7.尝试调整TX Equalization preset,观察链路状态

TX Equalization是PCIe中一项很重要的技术,用于提高信号传输质量。PCIe通过评估不同的Preset和Tx coefficients,最终选择最优的配置。在ASIC芯片中,部分vendor的PCIe IP支持用户选择不同的preset,可以对PCIe 进行配置,在特定的preset中进行扫描。以Endpoint为例,通过不同的配置,在recovery.Equalization的phase2阶段,EP可以选择在Preset P0、P1、P2、P3、P4、P5、P6、P7、P8、P9、P10 中选择任意个preset进行链路质量评估扫描,最终选择链路质量最优的一个Preset。部分PCIe IP还可以配置Tx coefficients调整的次数,可以通过适量增加Tx coefficients调整次数以获取更好的链路质量。

PCIe 定位:链路问题定位方法PCIe 定位:链路问题定位方法

8.通过PCIe 内部监控手段判断问题

PCIe 中的物理层、链路层和事务层通常都会存在中断、统计等常见的定位手段,包括但不限于:链路层和事务层:

Receiver encoding error

Received bad TLPRx buffer overflow

Received bad DLLPParity error detected

Received TLP with LCRC error

物理层

128b/130b framing error detected

Elastic Buffer overflow

Elastic Buffer underflow

Phystatus[LNAE_NUM-1:0]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

摘 要:介绍了一种光伏制氢多端口变流器的设计原理、组成与各端口特性 ,该设备可应用于光伏电站配属的制氢站 ,给制 氢车间电解槽提供稳定的可调电源。实验证明:在光伏制氢应用中 ,该设备具有为制氢车间提供稳定的可调电源...

关键字: 光伏制氢;多端口变流器;汇流端口

摘 要:针对NRL型测氡仪在取样过程全程计数的测氡模型中计算复杂的问题 ,构建了一种简单计算氡浓度标定测氡仪刻 度因子的方法 。该方法在实验标定仪器标准刻度因子后 ,再根据氡的衰变规律计算任意测量周期的刻度因子 ,且...

关键字: 连续测氡;刻度因子;等效时间

摘 要:随着制造加工技术的发展 , 以及医疗、军工等重要领域对平面类零件加工的表面精度要求提高 , 目前对平面类零件 多数采用研磨盘进行加工 ,成本高且操作复杂。磁粒研磨作为一种新型研磨方式具有精度高、易 自动化等特...

关键字: 磁粒研磨;永磁交变磁场;磁性磨料

摘 要:针对传统绝缘操作杆作业法带电接引流线工作中存在的安全隐患及线路绝缘化处理的问题 ,提出了配电线路带电 接引流线组合工具的设计方案 ,分析了组合工具主要设计思路及各部分构造 , 阐述了组合工具的配合方式及使用流...

关键字: 带电作业;可靠性;引流线;配电线路

摘 要:介绍了一种基于STM32控制的肌电诱发康复器的恒流源设计 , 能够实现电流的步进可调控制 , 电流调节范围:0 ~ 3 000 mA 。恒流电源系统包括硬件系统和软件系统 ,硬件系统以控制器STM32为核...

关键字: 恒流源;PI反馈调节;STM32微控器

在这篇文章中,小编将为大家带来FPGA三段式状态机设计的相关内容。如果你对本文即将要讲解的内容存在一定兴趣,不妨继续往下阅读哦。

关键字: FPGA 状态机

本文中,小编将对FPGA不复位的代码实现予以介绍

关键字: FPGA 复位

本文中,小编将对OV7670 驱动设计予以详细介绍,如果你想对它的详细情况有所认识,或者想要增进对设计方案的了解程度,不妨请看以下内容哦。

关键字: OV7670 驱动设计 FPGA 开发板

以下内容中,小编将对基于FPGA的多通道频率检测仪设计的相关内容进行着重介绍和阐述,本文仅为上篇,具体实现方案放在下篇文章中,大家可以按需检索。

关键字: 检测仪 频率检测仪

在下述的内容中,小编将会对基于FPGA的多通道频率检测仪实现方案部分予以详细,如果频率检测仪的设计是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: 检测仪 频率检测仪
关闭