Citace Původně odeslal PeterM
PnP PCI kariet je založené na "BIOSe" každej karty... Obsahuje malý programček vo FORTH (aby bola nezávislá na procesore - PCI karty chodia v pohode aj na MACoch..) ako bootloader s definíciou požadovaných zdrojov (prerušenia, IO adresy, ...). Minimálne toto by musel napísať. Pre PCI/ISA mostík na MB je tento súčasťou BIOSu konkrétnej dosky, ale pochybujem, že by to dokázal z nejakého BIOSu vypreparovať...
O tom zase nic neviem ja - nie je to nieco ako Open Firmware?. IMHO je to nejako takto:
Kazde PCI zariadenie sa tvari ako sada registrov (najviac 256), ktore sa objavia v PCI configuration space. Kazde taketo zariadenie je jednoznacne identifikovane (pomocou cisel BUS, DEVICE a FUNCTION - tie zalezia od slotu, v ktorom karta je a od toho, aj od toho, ci je za nejakym PCI-to-PCI bridge). K tymto registrom sa pristupuje cez I/O porty CF8h a CFCh, takmer vzdy po DWORDoch (4B). Prvych niekolko z tychto registrov ma pevne danu strukturu - je tam Vendor ID, Device ID, typ zariadenia a potom registre, ktore urcuju I/O rozsah(y), rozsah adries v pamati a IRQ vystup (A, B, C alebo D). Tieto registre maju niektore bity nemenne - tym su urcene obmedzenia pre jednotlive hodnoty. Po RESETe su tieto registre v takom stave, ze zariadenie nema pridelene nic - tzn. akoby vobec neexistovalo, pristupne su len registre v PCI configuration space. BIOS pri POSTe prechadza vsetky zariadenia a priraduje im I/O a pamatove rozsahy. Ak ma karta vlastny BIOS (grafiky, SCSI radice, sietovky s Boot ROM), tak tento tiez namapuje do pamati, prekopiruje do RAM a spusti.