作者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
1F:推 lixion:喔喔~~我的问题在於说一开始读0 0 0的时候, 08/04 15:19
2F:→ lixion:root complex的上游bridge怎麽知道是要读哪个下游bridge呢? 08/04 15:20
3F:→ lixion:或是说:下游bridges怎麽知道自已要不要回应这个读取要求呢? 08/04 15:21
4F:→ lixion:因为root complex内部是采multi-drop bus, 08/04 15:22
5F:→ lixion:所以应该要有个机制去选择下游bridge之类的。 08/04 15:23
6F:推 mosn:例如bus1 接了个bridge。扫到slot0时就认到了。 01/19 18:12