|
|
发表于 2009-7-8 09:06:27
|
显示全部楼层
to dangdangtop:0 P, R2 x- ?) J C( Q8 W
PCI SCAN阶段通过组合BUS+DEV+FUN可以访问PCI bus上的所有device,然后根据这些device configuration space中的Header Type可以辨别该device是不是P2P bridge,然后就可以配置P2P bridge。
- N1 F0 z! m0 v3 t: L如果你想在BIOS PCI SCAN之前访问该P2P bridge下面的device那么你就要先分配primary/secondary/subordinate bus number然后就可以访问P2P bridge下面的device了。+ z7 b) S0 F9 [* F' c
! r. l/ x2 X. I, J F o' Z
bini的意思应该是在没有配置P2P bridge之前想访问就要先配置这些信息。9 \% G4 f$ o1 {/ d
0 p3 t f( u1 J+ x0 Z& I4 ]0 AREFF:[我所知道的BIOS->PCISCAN]$ X& H" o$ T8 N4 v1 Y) X
[Practice]
c2 J: r5 Z1 G$ q+ P* Q! }% Y* w# \# Y6 O假設有一個 P2P bridge ,下面有一PCI device;現在必須要去 accessPCI device's Device ID/Vendor ID(that is, PCI config read).
8 A9 o0 V9 l, N& `. b6 X- Z' d) g
: g1 p! B1 m) v4 u" o但是,問題是:做這事的"點"要在 PCI_SCAN之"前"....那要如何做到呢 ^_^ ?* Y" G8 Z1 H4 ~, E1 w
-----------------: W9 H; C5 p1 P8 d- z0 z/ I
Ans:假如要在很早前(Ex. PCI SCAN之前)去 access P2P bridge後面的 device,照理是做不到的,因為: P2P bridge沒有被正確的 configed...
6 G7 q, Z& }2 Z5 M- Q( ^- l9 @; h: G$ f0 f
在此例中,P2P bridge的 primary/secondary/subordinate bus要被 set,後面的device才能被 accessed到 !# |3 y. N6 J9 p& j# r
/ Q& H! M2 }( l0 F; m& y所以,假如要在 PCI SCAN前就 access,則BIOS必須手動去 set 此 3 bytes;然後,PCI config access才能被 forward to 其後的 PCI devices... |
|