PCI karty/irq a $PIR: ROUTE_INTERRUPT failed.
Dan Lukes
dan at obluda.cz
Mon Dec 27 23:30:47 CET 2004
Cizek Milan napsal/wrote, On 12/27/04 20:49:
> Mam zakl.desku (i810 cipset), 5PCI slotu (zadne ISA). V ni mam 2 karty,
> jedna je ZCOM-626 (wi0) pracujici v hostap, druha je 4port DFE-580TX
> (ste0-ste3) - instalovana pred nekolika dny. V BIOSu mam povypinane vse
> zbyetcne (ACPI,usb,floppy+sekundarni radic disku, LPT...) - volnych
> preruseni mam tedy k dispozici dostatek.
DFE-580TX karta je ve skutecnosti hardwarove implementovana jako ctyri
samostatne karty D-Link DL10050 plus PCI-PCI bridge - jinymi slovy, do
slotu zasuneme bridge, za kterym je navazujici PCI sbernice a v ni jsou
"zastrkane" sitove karty. Podle DMESG je to sbernice PCI2
Tao smernice je pres zmineny bridge pripojena do PCI1, coz je sbernice
"rozvedena do slotu". Ta sama je pres dalsi PCI-PCI bridge pripojena na
PCI0, coz je "hlavni" PCI sbernice do ktere jsou pripojena interni
zarizeni (PCI-AGP a PCI-ISA bridge a interni IDE).
No v vsechny tyto PCI sbernice majo dohromady (protoze jsou zapojene za
sebe) dohromady jen ty ctyri prerusovaci draty - a jelikoz sama DFE
karta pouziva ctyri preruseni je zrejme, ze kazde zarizeni musi sdilet
preruseni s nekterou z ctverice DL10050 sitovek.
Nicmene, "sdileni preruseni" je podle PCI specifikace naprosto bezny
mode cinnosti. Samozrejme, ze to prinasi urcity overhead, kteremu je
vhodne se vyhnout, je li to mozne, ale z hlediska funkcnosti to nutne
neni - za predpokladu, ze jsou vsechny ovladace a souvisejici komponenty
zapsane korektne.
Teoreticky by to tedy fungovat melo ...
> Pri laborovani jsem si
> vsiml, ze ste1 s wi0 sdili stejne irq, mimojine jsem si take vsiml v
> messages opakovaneho vyskytu radku s "$PIR: ROUTE_INTERRUPT failed." podle
> cehoz soudim, ze se jedna o problem s irq.
>
> Osobne povazuji sdilena irq za celkem normalni stav a i podle přečtení
> několika Danovo prispevku si nejsem jist, jestli lze vubec docilit
> "nesdileni" vice jak 4 PCI preruseni (ad hardwarové A,B,C,D). No zkusil jsem
> pro jistotu ruzne sloty a prohozy karet, ale dosahl jsem maximalne zmeny irq
> u wi0, ktera ho pokazde sdilela s jinym interfacem ste.
No - puvodne hlasis, ze nejprve vypadne ste1 a pak zbytek. Kdyz to
prehazis - vypadne nejprve ta nejaka jina karta ?
> Muj dotaz primarne smeruje k hlasce "$PIR: ROUTE_INTERRUPT failed.", ktere
> nerozumim, treba je problem uplne jinde nez si myslim a nakonec pak co s tim
> lze udelat. Diky
$PIR (Pci Interrupt Routing) tabulka je tabulka, kterou poskytuje BIOS
(co neznamena nutne, ze je staticka - naopak, vetsinou se dynamicky
generuje) a tato tabulka obsahuje informace ktere umozni OS ujasnit si,
ktere preruseni jakeho zarizeni je kam zapojeno (vyraz "ujasnit si"
znamena dve veci - nektera preruseni jsou prirazena jiz BIOSem - pred
startem OS - a o tom se OS musi dozvedet, dalsi preruseni je treba
priradit - a to udela OS, ale musi to dat vedet hardware pod sebou).
Existuje jeste "nahradni" varianta pro pripad, ze $PIR tabulka neni
dostatecna nebo dokonce vubec neexistuje - a to je volani primo funkci
BIOSu (konretne BIOS32 Service Entry - PCIBIOS_ROUTE_INTERRUPT - odtud
pocatek textu chyboveho hlaseni).
Znervoznujici hlaska je, bohuzel, signalem, ze selhal i tento "zalozni"
pokus. Pro vsechan ctyri preruseni na PCI2. Nicmene, to selhal tentyz
BIOS, ktery vytvoril neuplnou $PIR tabulku - takze zas az takove
prekvapeni to neni.
Celkove to znamena, ze BIOS se neni schopen vyrovnat s aktualni
hardwarovou konfiguraci.
No a co se s tim da delat ? V kazdem pripade upgradovat BIOS, pokud
novejsi existuje.
No a pak uz jen laborovat s nastavenimi, ktera by mohla mit na
relevantni schopnost BIOSu vliv. A to je v tomto pripade predevsim "Plug
and Play OS" a "ACPI".
Mimochodem, v techto pripadech je vhodnejsi "verbose" vypis -
respektive (protoze cely je dlouhy) jeho relevantni vysek ...
Dan
More information about the Users-l
mailing list