通常PCIe器件无法被枚举出来,需要进行下列步骤进行排查
一、软件排查手段
1.确认器件的参考时钟
根据参考时钟的来源进行定位。一般参考时钟来源于CPU提供或专用时钟芯片提供,通过BSP提供接口,以软件排查时钟的配置。
2. 设备boot阶段是否有特殊的初始化时序
一些专用PCIe器件需要在boot阶段存在特殊的初始化时序,需要排查boot阶段的初始化流程及结果是否正确。
3. 器件的内部逻辑(如FPGA)的启动时间
协议要求PCIe需要在120ms内加载完毕,以保证可以正常被枚举到,如果逻辑文件较大,配置时间大于协议要求,则会导致RC设备发现不了器件。
需要想办法缩短PCIe的加载时间,比如提交CCLK、压缩配置文件、更改配置方式等。
4. 确认上级Bridge或switch是否能够被枚举
(1)、如果上级是Bridge,确认Bridge被枚举的方式。Bridge可能被配置成下级若没有设备则隐藏。如果BIOS设置Bridge下无PCIe设备时不隐藏,则看Bridge是否能被枚举出来,如果能被枚举,则认为CPU无问题。否则CPU可能存在问题;
如果BIOS设置Bridge下无PCIe设备时隐藏,则无法定位是否是CPU的问题。
(2)、如果上级是switch,看switch是否能被枚举。如果switch不能被枚举,则认为switch存在问题;如果switch能被枚举,不能认为switch下游端口是好的,需要硬件介入排查。
二、硬件排查手段
1. 示波器测量参考时钟信号
使用示波器测量是否有时钟信号,并且时钟信号的振幅、频率是否是符合预期。
2. 电源上电时序问题
一般系统器件存在一定的上电时序,如果器件上电时序未按照要求进行设计,则可能发生器件启动不了。此时需要调整上电时序,以满足时序要求。
3. 器件发生硬件故障
使用电流表等设备看一下PCIe器件的电流波动情况,以排查硬件是否损坏。
4. CPU可能存在Bridge损坏
更换CPU或者将PCIe器件迁移至好的板卡上进行交叉验证。
如有错误和描述不当,尽请指正,谢谢!