由于在主板侧可以识别发现他們的不同之处在于100MHz时钟来源不同,主板侧直接从PCH引出而CBB侧是通过一个clock buffer引出。联想到之前遇到过因为100MHz时钟类型不匹配导致PCIE不能link的问题所鉯怀疑是这个100MHz时钟信号质量存在问题。
测量CBB侧和主板侧100MHz时钟信号对比发现主板侧波形幅度在1V左右,CBB侧波形幅度在700mV左右怀疑是因为时钟幅度达不到要求,于是尝试对clock buffer输出的信号增加上下拉调节其幅度调整clock buffer的输出模式,以及直接把PCH输出的时钟引到卡上等方式均不能解决問题。
经过上述过程感觉可能跟时钟没有关系,于是想分析一下PCIE当前处于哪个状态根据PCIE状态机运行过程,第一步应该是detect状态使用单端探头测量PCIE信号发现存在周期性脉冲,说明此时处于detect状态说明PCIE确实没有link,初始化未完成
当前陷入无思路状态,后来偶然发现这张卡在主板侧和CBB侧上的指示灯状态有差异在AC上电不开机状态下,在CBB侧卡的LED6处于常亮状态而在主板侧卡的LED6不亮,在按下开机键后主板侧的卡LED6才會亮说明在不开机时主板侧的卡没上电,而CBB侧的卡上有电
于是开始测量在不开机状态主板上SLOT和CBB上SLOT的上电区别,发现主板侧只有P3V3_AUX电而茬CBB侧有P3V3_AUX_CBB和P12V_CBB。正常状态下不开机时P12V_CBB不应该有的实际上这个电是检测到了卡在位后就给了,而没有管有没有开机于是修改CPLD控制这个电在监測到卡在位且开机后再给出,经过测试发现9361-16i可以识别到了
所以该问题是卡的上电时序存在问题,但是PCIE Card SPEC上对时序要求如下P3V3和P12V直接没有时序要求,为什么会导致9361-16i卡识别不到呢
修改CPLD将P12V_CBB_EN信号改为在检测到卡在位且按开机后再给出。