天天看點

PCIe裝置Link Training調試心得----之PERST是否使用

   由于PCIe spec未嚴格限定PHY層Link方式,使得不同的廠家有自己的做法,比如Loongson、X86、PPC都有自己的做法,這給我們調試PCIe裝置相容性帶來了諸多不便。

   從目前的兩家主流的PCIe IP供應商 Synopsys、Cadence的IP來說,要相容各家主機闆并非易事。

   PCIe spec有講,有建議使用PERST,但未強制。

  主流PCIe主機闆廠商:

        X86陣營: Intel 、AMD、兆芯

       MIPS陣營:Loongson

      PPC陣營:NXP

     ARM陣營:飛騰、鲲鵬

   從不同CPU測試結果來看:

              X86陣營大部分是支援PERST,且對于不支援PERST device也有很好的支援,即PERST電平信号會從CPU引出,同時發出主動發起TS1碼流。

             ARM陣營測試類似于X86,但有遇到不支援PERST主機闆。

             PPC目前測試有一款晶片,對PERST和NO-PERST都支援。

             MIPS:有PERST電平信号,但CPU不會主動發起TS1碼流。

 主流PCIe Device處理Link Trainning 方法:

           1. 依賴于上電host PERST信号進行内部reset. 

           2. Polling electrical signal,check到對端TS1碼流進行内部的reset. 

           3. Polling electrical signal,reset内部後直接發起TS1碼流. 

       目前都有針對 Synopsys、Cadence 調過三種方案或它們的結合,不幸的是都有發現一些弊端,還沒有找到一個完美的解決方案。