作者shaopin (C.L.R.S 四大天王)
看板LinuxDev
標題Re: [問題] 關於pcie enumeration
時間Thu Aug 4 14:51:24 2011
※ 引述《lixion (畜生)》之銘言:
: 在pcie enumeration過程中,
: 會嘗試用各種可能的bus num和device num組合去讀取device。
: 但是我覺得有一個奇怪的地方在於:
: 如果device一開始不知道自己的bus num和device num,
: 那pcie fabric怎麼知道要把root complex的某個read request路由給哪個device呢?
: (例如剛開機時,在root complex內部要由上游bridge把read request傳給其中一個下游
: bridge,要傳給哪個下游bridge是怎麼決定的?)
: 這邊查spec跟上網都找不到甚麼答案,希望有人可以幫小的解答。
: 謝謝囉!
: (不知道在這邊發問對不對,但是找不太到其他版適合發問的)
一開始讀bus 0 dev 0 fn 0 讀到bridge 就會config 該bridge
為 0 0 0 , 接下來再用DFS方式讀下游device 或bridge
依你的問題來說, bridge會在DFS的時候被發現, 該bridge
的bus就會被設定number, 接著就是重複search
直到bus傳回0xffff代表沒有device或bridge為止
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 69.105.239.242
推 lixion:喔喔~~我的問題在於說一開始讀0 0 0的時候, 08/04 15:19
→ lixion:root complex的上游bridge怎麼知道是要讀哪個下游bridge呢? 08/04 15:20
→ lixion:或是說:下游bridges怎麼知道自已要不要回應這個讀取要求呢? 08/04 15:21
→ lixion:因為root complex內部是採multi-drop bus, 08/04 15:22
→ lixion:所以應該要有個機制去選擇下游bridge之類的。 08/04 15:23
推 mosn:例如bus1 接了個bridge。掃到slot0時就認到了。 01/19 18:12