当前位置:首页 > 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]

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭