9361-16i RAID卡在某個pcie slot識別不到問題分析

  • 問題描述

9361-16i RAID卡在CBB側兩個PCIE SLOT識別不到,但在主板側的PCIE X16 SLOT可以識別 。

  • 排查過程

由於在主板側可以識別,發現他們的不同之處在於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卡識別不到呢?

 

 

 

 

測量上電時序發現P12V_CBB與P3V3_AUX_CBB時序如下,P12V_CBB比P3V3_AUX_CBB先上電,這裏不符合SPEC要求中P3V3_AUX先上電的要求。

  • 更改方法

修改CPLD將P12V_CBB_EN信號改爲在檢測到卡在位且按開機後再給出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章