PCIe學習筆記(12)--- PCIe總線的枚舉過程 ENUMERATION

1.

畫張圖


PROCESSOR

^

|

|Primary bus*

|

Root Complex

Host to PCI bridge

|

|Secondary bus *

|Bus 0*


Host to PCI Bridge (對其它BRIDGE也類似)的UPSTREAM, 我們稱它爲PRIMARY BUS

Host to PCI Bridge (對其它BRIDGE也類似)的DOWNSTREAM,我們稱它爲SECONDARY BUS


2.

在枚舉過程中,存在幾種情況

第一種,設備不存在

PCI的情況下,如果設備不存在,則CONFIGURATION REQUEST READ會TIMEOUT(MASTER ABORT ERROR),且返回0xFFFF的VENDOR ID

PCIE的情況下,如果設備不存在,則該目標地址的設備上層的BRIDGE會返回一個Cpld without data, status爲UR(UNSUPPORTED REQUEST),爲了與PCI的情況兼容,RC會返回0xFFFF的VENDOR ID


3.

在枚舉過程中產生的TIMEOUT與UR,不被當作一個錯誤,所以不需要被軟件來處理

事實上,在枚舉過程中的軟件,可能也沒有相應的錯誤處理的能力


4.

對配置空間的讀的時間問題

如果小於或等於5G的情況,需要在reset 100ms之後,發起

如果大於5G的情況,需要在LINK TRAINING100ms這後,發起 (因爲GEN3的EQUALIZER TRAINING需要更長的時間,相對於GEN2, GEN1而言)


5.

第二種,設備沒有準備好應答CONFIGURATION READ

PCI的情況下,有三種反應

一, 無視這個請求

二, 系統重試這個請示

三,接受這個請求,但在設備準備好的情況下,再返回請求的內容


PCIE的情況下

設備返回,CRS (CONFIGURATION REQUEST RETRY STATUS)


RC在設備沒有準備好的情況下(返回CRS)

一,返回0x0001這樣的一個VENDOR ID, 其它讀取的內容都返回全1,示意SW,去做別的事情

二,如果是CONFIGURATION 寫,或者是其它(除VENDOR ID之外)讀,則需重試


6.

 確認了一下,PCIE的枚舉,是DEPTH-FIRST,這個是軟件的行爲,與硬件無關

硬件需要配合軟件,提供的就是

SECONDARY BUS NUMBER REGISTER與SUBORDINATE BUS NUMBER REGISTER





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