|
|
发表于 2009-7-8 09:06:27
|
显示全部楼层
to dangdangtop:$ Q0 y, X* f Y) A% o
PCI SCAN阶段通过组合BUS+DEV+FUN可以访问PCI bus上的所有device,然后根据这些device configuration space中的Header Type可以辨别该device是不是P2P bridge,然后就可以配置P2P bridge。: R x1 `3 r3 s1 z5 @7 v/ J) y
如果你想在BIOS PCI SCAN之前访问该P2P bridge下面的device那么你就要先分配primary/secondary/subordinate bus number然后就可以访问P2P bridge下面的device了。: ~& S F! D( k: h/ ]
4 ^2 I2 l) J+ n7 _6 L0 u8 {
bini的意思应该是在没有配置P2P bridge之前想访问就要先配置这些信息。+ f& |6 f' |/ T, O3 `
% P) y: D8 U: E/ dREFF:[我所知道的BIOS->PCISCAN]; q# ^ B" x, e/ n2 l
[Practice]
! w: G9 R1 C( R1 W( y! p: {假設有一個 P2P bridge ,下面有一PCI device;現在必須要去 accessPCI device's Device ID/Vendor ID(that is, PCI config read).
: ~! l& E% L9 g! g6 J# Q1 s
# { k6 K, q v, e9 C但是,問題是:做這事的"點"要在 PCI_SCAN之"前"....那要如何做到呢 ^_^ ?6 }; P- L0 s( E l0 ]% O% b6 m6 w) B
-----------------
' a* J4 q) L# H2 |1 Q' ZAns:假如要在很早前(Ex. PCI SCAN之前)去 access P2P bridge後面的 device,照理是做不到的,因為: P2P bridge沒有被正確的 configed... n# [) d8 }- B& v
0 x' b8 ]6 |' `( I+ \' ?
在此例中,P2P bridge的 primary/secondary/subordinate bus要被 set,後面的device才能被 accessed到 !
5 _& f A* F6 n) P( w
$ h' ^0 \+ ^2 H9 P5 p5 \. K所以,假如要在 PCI SCAN前就 access,則BIOS必須手動去 set 此 3 bytes;然後,PCI config access才能被 forward to 其後的 PCI devices... |
|