这几年主要在带PCIe相关团队自己不一定每个问题都下去debug但看过的case多了之后会发现一个比较明显的现象很多问题其实不是难而是方向一开始就错了。我一般会先帮大家判断3个方向1. 是链路问题还是软件/配置问题如果链路都没起来比如LTSSM没有进入L0那后面所有枚举、驱动的问题其实都不用看。反过来如果链路正常那大概率就是配置空间或者软件侧问题。——这个判断可以帮你少走很多弯路。2. 是时序问题还是功能问题比如- 复位时序- 时钟稳定时间- 上电顺序这些问题很容易被忽略但实际上在项目中占比不低。很多“看起来很复杂”的问题最后都是时序细节。3. 是单点问题还是平台共性问题我一般会问一个问题 这个问题在别的平台/版本上有没有出现如果只有当前环境有那优先考虑- 硬件差异- 配置差异如果多个环境都有那可能是设计或者共性问题。这个判断可以避免在错误的方向上反复消耗时间。总结一下PCIe问题排查很多时候不是拼谁更会看寄存器而是先把问题分类清楚再去看细节。方向对了问题往往会简单很多。如果有类似问题也可以一起交流。