3.2.2.3.2. Software Generation of Configuration Transactions
Systems must provide a mechanism that allows software to generate PCI configuration transactions.
Two DWORD I/O locations are used to generate configuration transactions for PC-AT compatible systems. The first DWORD location (CF8h) references a read/write register that is named CONFIG_ADDRESS. The second DWORD address (CFCh) references a read/write register named CONFIG_DATA.
兩個 DWORD(32bits)的IO位置用來產生Configuration transaction,一個是CF8(CONFIG_ADDRESS),一個是CFC(CONFIG_DATA)。
Bit31為enable bit,然後將要access的device的Bus/Dev/Func/Offset(Reg) Number分別填入圖3-2的對應欄位裡。
Configuration Transaction 有Read和Write兩種,
(1) 首先要先產生一個DWORD的IO Write to CF8h,格式就如圖3-2
(2) Host Bridge會latch address到CONFIG_ADDRESS register
(2) 然後DWORD的IO Read(或者是Write)to CFCh,Host bridge會check CONFIG_ADDRESS的bit31有沒有為1,如果為1且bus number和host bridge的bus number吻合,則接收這筆transaction
另外介紹兩種Transaction type,分別為Type0和Type1。
Type0: 如果這筆transaction的target device再當前這個bus上,則會將CONFIG_ADDRESS 轉化成Type0的格式(如圖3-3),Device Number field會換成31:11的某一個bit,例如Device Number field為2h,那麼bit 12就會為1其餘則為0,Register Number和Function Number則原封不動的被複製到bit2-10,bit0-1則為"00"
Type1: 則發生再當bus number不match當前Bridge的bus上的話(表示target device再別的bus上),Bridge則直接將CONFIG_ADDRESS 原封不動的放到PCI bus上的AD lines。
沒有留言:
張貼留言