A PCI konfigurációs tér a PCI konfiguráció címtere , a tipikus memória és I/O címterek mellett.
A PCI busz egyik fő fejlesztése a többi I/O architektúrához képest a konfigurációs mechanizmusa, amelynek konfigurációs címtere 256 bájt, amelyet a PCI buszszám, az eszközszám és az eszköz funkciószámának ismeretében lehet megcímezni. A 256 bájtból az első 64 bájt szabványosított, a többi regiszter az eszközgyártó döntése szerint használható.
A szállítóazonosító és az eszközazonosító regiszter azonosítja az eszközt, és általában PCI azonosítóként hivatkoznak rájuk . A tizenhat bites Vendor ID regisztert a PCI SIG adja ki . A tizenhat bites Device ID regisztert az eszköz gyártója rendeli hozzá. Van egy projekt az összes ismert regiszterérték – Szállítóazonosító és eszközazonosító – adatbázis létrehozására . (Lásd a hivatkozások listáját .)
A konfigurációs címtér első 16 dupla szava (a PCI Local Bus Specification 2.2 szerint ):
Cím | 31 ... 24 | 23 ... 16 | 15 ... 8 | 7 ... 0 |
---|---|---|---|---|
0x00 | Eszköz azonosító | VendorID | ||
0x04 | Állapot | parancs | ||
0x08 | osztály kódja | revízióazonosító | ||
0x0C | BIST | Fejléc típusa | Késés időzítő | Gyorsítótár vonal mérete |
0x10 | Alapcímregiszter 0 | |||
0x14 | Alapcímregiszter 1 | |||
0x18 | Alapcímregiszter 2 | |||
0x1C | Alapcímregiszter 3 | |||
0x20 | Alapcímregiszter 4 | |||
0x24 | Alapcímregiszter 5 | |||
0x28 | Cardbus CIS mutató | |||
0x2C | Alrendszer-azonosító | Alrendszer szállítói azonosítója | ||
0x30 | Bővítő ROM alapcím | |||
0x34 | Fenntartott | Képességmutató _ | ||
0x38 | Fenntartott | |||
0x3C | Max_Lat | Min_Gnt | Megszakítás Pin | Megszakítási vonal |
A DeviceID , VendorID , Status , Command , Class Code , Revision ID , Header Type regiszterek minden PCI-eszközhöz szükségesek (sok eszköztípushoz az alrendszer-azonosító és az alrendszer-szállító-azonosító regiszter is szükséges ).
Az összes többi regiszter nem kötelező.
Annak érdekében, hogy a memória vagy I/O címterén keresztül hozzáférjen az eszközhöz, a rendszerszoftver vagy az operációs rendszer beprogramozza az alapcímregisztereket ( az angol Base Address Registers , más néven BAR), konfigurációs parancsokat küldve a PCI-vezérlőnek. A rendszerindítás kezdetén minden PCI eszköz inaktív állapotban van, nincs hozzájuk rendelve cím, amelyen az eszközillesztők kommunikálni tudnak velük. Vagy a BIOS , vagy maga az operációs rendszer hozzáfér a PCI-nyílásokhoz, és beállítja a BAR-okat a konfigurációs címtérben. A BAR értékek mindaddig érvényesek, amíg a rendszer be van kapcsolva. A tápellátás kikapcsolásakor ezeknek a regisztereknek az értékei elvesznek a következő rendszerindításig, amely során a beállítási eljárás megismétlődik. Mivel ez a folyamat teljesen automatizált, a számítógép-felhasználó megszabadul a PCI-buszra csatlakoztatott új hardverek konfigurálásának nehéz feladatától (ellentétben pl. az ISA-busszal , amelyhez csatlakozó eszközök alapcímét jumperekkel, ill. kapcsolók).
Bármely nem áthidaló PCI-eszköz (lásd: PCI-PCI Bridge Architecture Specification. Revision 1.1 ) legfeljebb hat BAR-ral rendelkezhet, amelyek mindegyike egy adott címtartományért felelős a memóriában vagy az I/O-címtérben. Ezenkívül az eszköznek lehet firmware -je ).
A PC-AT és a kompatibilis gépek PCI-busszal való működéséhez két fő port van kijelölve.
0CF8h -W cím port Cím
0CFCh RW adatport Adat
Mindkét port 32 bites.
A címport a következő 32 bites felépítésű: A címport a busz, az eszköz és a regiszter címét határozza meg az eszköz konfigurációs területén. Durván szólva az eszköz egy fizikailag jelen lévő eszköz. A függvény egy logikai eszköz. С — eszköz hozzáférési jelző.
A címportban a legkisebb jelentőségű két bit mindig 0.
Ha végzett az eszközzel, állítsa vissza a címet 0-ra.
+---+---------+-------+----------+--------+---------------+-+-+
|31 |30 24|23 16|15 11|10 8|7 2|1|0|
+---+---------+-------+----------+--------+---------------+-+-+
| с | резерв |шина |устройство| функция|Индекс регистра|0|0|
+---+---------+-------+----------+--------+---------------+-+-+
Ha a nulla regiszter lekérdezésére 0FFFFh kerül vissza, akkor az eszköz nem létezik. Szállítói azonosító (gyártói azonosító) - Intel esetében ez 8086h, de nem lehet 0FFFFh.
Eszközazonosító (eszközazonosító) - különböző értékeket vesz fel
Revízióazonosító (Revision ID) – az eszköz gyártó által hozzárendelt verziószámát jelzi.
Osztálykód (Class Code) - három részből áll
+---------------+--------------+---------------------+
|23 16|15 8|7 0|
+---------------+--------------+---------------------+
|Base Class Code|Sub Class Code|Programming Interface|
+---------------+--------------+---------------------+
Base Class Code – alaposztály, rövidítve BCC.
Alosztály kódja - egy alosztály, rövidítve SCC.
Programozói felület - interfész, rövidítve PI.
Fejléc típusa – Ha a 7. bit értéke 1, akkor az eszköz több funkciót is tartalmaz.
Ha a 6. bit értéke 0, akkor a fejléc szabványos. Szabványos fejlécek:
00 – lásd a fenti szabványt.
01 - szabvány a PCI-PCI
hídhoz 02 - szabvány a CardBus hídhoz.