[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: irq routing conflict - einige varianten



Hallo Liste,

> Nun, passive Karten (weitverbreitet sind die AVM Fritz, deine HFCs
> wahrscheinlich auch) lassen einen großen Teil der Arbeit die CPU
> erledigen, was bei schwachen Rechnern bzw. starke Nutzung der CPU schon
> mal in die Hose gehen kann. Aktive Karten haben erweiterte Chips und
> damit Logik auf der Karte selbst, entlasten also die CPU,

axo, thx für die info - also rein prinzipiell dürfte das eigentlich kein
problem für
die pentium2 cpu sein mit mehreren passiven karten zurechtzukommen, eine
pentium1 cpu
kam ja schon gut mit nur einer passiven karte aus ....

> > nur wenn die karte korrekt initialisiert wird (mit optionalem
> > routing-conflict), geht die pbx oder
> > es kommt ein routing conflict und der alte mISDN-treiber wird verwendet,
> > dann geht die pbx auch - bringt aber ein echo.
>
> "Echo" ist irgendeine Reaktion von pbx?

ich vermute das echo hängt mit dem mISDN Treiber zusammen,
also mit echo meine ich hier während eines telefonats über die anlage
hört man sein eigenes, akustisches echo.
es gab auf der mailingliste von pbx4linux bereits einen thread mit
lösungsvorschlag, jedoch
ist der für den alten Treiber gedacht und funktioniert zudem auch nicht...
http://ischtar.koeln.ccc.de/pipermail/pbx4linux/2004-June/000258.html
...deswegen auch der versuch mit dem neuen mISDN treiber.

> Außer der Hersteller würde (meist für DOS/Windows) ein Konfig-Tool für
> die Karten anbieten: das wäre dann ein Hinweis, das *doch*
> Einstellungen möglich bzw. auch *nötig* sind.

ich habe mal geschaut:
http://www.colognechip.com/isdn/controllers/frame-software.htm
da gibts nur treiber, aber hier verwende ich sowieso mISDN, da pbx4linux
nur damit funktioniert (DSP).

> Nein, lass sie auf PCI/PnP. Ich meinte eher: manche BIOSe haben die
> Möglichkeit, im BIOS den PCI-Slots manuell die IRQs zuzuordnen. Heißt
> dann irgendwie wie: SLOT-A: auto/IRQx. Wenn du sowas hast, da meinte
> ich auf auto zurückzustellen. Oder halt per Funktionstaste das ganze
> BIOS auf Default zu stellen.

ok, ich werde das mal machen, jeweils mit neuer und alter Bios Version.

> Doch, sollten sie. Die Debian-Kernel sind i.d.R. mit allen vorhandenen
> Treibern und Funktionen kompililiert.

nunja, mISDN wird erst durch einen patch im kernel verfügbar, also es ist
ein seperates paket für den kernel.
http://home.foni.net/~jolly/download/

> Ja, weil *beide* Karten sollten eigentlich (auch gleichzeitig) über
> Hisax-Module ladbar sein. Im ungünstigen Fall würde halt auch eine der
> beiden Karten nicht initialisiert werden, dann wären wir IMHO aber um
> eine Erkenntniss reicher (Kernel-unabhängiges Problem).

ok, kommt auch noch auf die to-test liste *g* werde heute abend mal einen
neuen 2.6.x debian und 2.4.x zusätzlich zum 2.4.18-bf2.4 ausprobieren.

> Ich weiß, wollte aber ein bißchen Heiterkeit in diesen Thread bringen.
> Aber da kann dir wahrscheinlich nur jemand helfen, der auch
> gleichzeitig vor Ort ist.

*g* np, falls wirklich garnichts funktioniert, es keine möglichkeit gibt das
zum laufen zu bekommen,
hole ich mir noch weitere 15 Interrupts - sprich einen weiteren betagteren
PC über ebay o.ä. und
dann wird einer als telefonanlage und einer als lan-router im einsatz sein
;-)

> Der Kernel-PCI Treiber liest aus einem Register der PCI-Karte aus welchen
> Pin (INTn#) die Karte verwendet und mit welchem Pin (PIRQn) des Interrupt
> Routers dieser verbunden ist

ok, damit ich das auch verstehe *g* man kann sich das so vorstellen, dass
es gibt verschiedene "informations"-Leitungen vom gerät in richtung router
gibt, welche
eine karte verwenden kann ?

____________ router_____
|                       _ |   | _         |
|     ========|====|====|====  pci#1
|     ========|====|====|====  pci#2
|     ========|====|====|====  pci#3
|    ===|=====|====|=========  pci#4
|     ===|=========|=========  pci#5
|______|

also es bspw. so aussieht, wenn die karte in einem der steckplätze sich
befindet, sie eine begrente auswahl hat,
welche Leitung sie zum router verwendet ?

> Dann schaut er nach zu welchem IRQn des PIC der
> PIRQn geroutet wird (das kann man manchmal im BIOS einstellen).

dh sobald eine leitung zwischen karte und router ausgehandelt ist, weißt der
router dem steckplatz mit der dann
zugehörigen leitung einen Interrupt zu (im Bios eingestellt), wobei ein IRQ
router 8 interrupts vergeben kann an geräte ?
würde das bedeuten, dass prinzipiell hier die begrenzte anzahl der
interrupts nicht am router selbst liegt (man könnte ihn
mittels weiteren pins für leitungen erweitern), sondern an unzureichend
flexibel verschalteten leitungen zu den steckplätzen ?
wie kann es dann sein, dass manche geräte immer nur einen bestimmten IRQ
haben ?
also wenn beispielsweise die uhr auf IRQ0 immer ist, kann das ja durchaus
bedeuten, dass diese
eine seperate leitung zum IRQ router hat, aber es würde nicht bedeuten, dass
der router prinzipiell den IRQ nicht frei zuweisen kann, oder ?
eine weitere Frage wäre, wie die CPU mit dem IRQ Router verbunden ist, also
wie die Interaktion zwischen beiden funktioniert.

> Der Interrupt Router -durch BIOS programmiert- weist also diesem
Steckplatz
> den IRQ11 zu.

hmm - also ist hardwaremäßig der pci steckplatz nicht fest verschaltet, der
router hat prinzipiell die möglichkeit, den IRQ zuzuweisen, auch
wenn das bios keine einstellungsmöglichkeiten bietet, programmierbar ist der
router doch trotzdem ....
und APIC bedeutet dann, dass das OS wieder etwas am IRQ Router machen kann,
also die IRQs neu verteilen ?
nun, ich weiß nicht, ob sich das lohnt  bzw. das mainboard es überlebt - ich
hab da mal ein Tool gesehen, "WCPUID" hieß das glaube ich,
mit denen man direkt dinge editieren konnte, die es zwar gab, aber nicht im
bios waren ... (wo ist sowas denn gespeichert ?).
im zusammanhang war beispielsweise beschrieben, wie man das board anweist,
s-ata laufwerke als normale IDE laufwerke erscheinen zu
lassen, auch wenn man das im bios nicht einstellen konnte, zum zwecke der
unterstützung durch den linux-kernel, als dieser mit der
s-ata unterstützung nicht soweit war... wie auch immer - wäre es möglich,
damit auch den IRQ router zu manipulieren ?

> Christoph, kannst Du mir bitte den Output von scanpci -v oder von
dump_pirq
> zumailen? scanpci ist in den xutils...

server:/usr/src/pbx4linux# scanpci -v

pci bus 0x0 cardnum 0x00 function 0x0000: vendor 0x1106 device 0x0691
 VIA  Device unknown
  STATUS    0xa290  COMMAND 0x0006
  CLASS     0x06 0x00 0x00  REVISION 0x01
  HEADER    0x00  LATENCY 0x10

pci bus 0x0 cardnum 0x01 function 0x0000: vendor 0x1106 device 0x8598
 VIA VT 82C598 MVP3 PCI/AGP Bridge
  STATUS    0x2220  COMMAND 0x0007
  CLASS     0x06 0x04 0x00  REVISION 0x00
  HEADER    0x01  LATENCY 0x00
  PRIBUS    0x00  SECBUS 0x01  SUBBUS 0x01  SECLT 0x00
  IOBASE    0xb000  IOLIM 0xbfff  SECSTATUS 0x0000
  NOPREFETCH_MEMBASE 0xfdd00000  MEMLIM 0xffdfffff
  PREFETCH_MEMBASE   0xf3b00000  MEMLIM 0xf5bfffff
  NO_FAST_B2B NO_SEC_BUS_RST NO_M_ABRT VGA_EN NO_ISA_EN NO_PERR_EN

pci bus 0x0 cardnum 0x07 function 0x0000: vendor 0x1106 device 0x0596
 VIA  Device unknown
 CardVendor 0x1106 card 0x0000 (VIA, Card unknown)
  STATUS    0x0200  COMMAND 0x0087
  CLASS     0x06 0x01 0x00  REVISION 0x05
  HEADER    0x80  LATENCY 0x00

pci bus 0x0 cardnum 0x07 function 0x0001: vendor 0x1106 device 0x0571
 VIA VT 82C586 MVP3 IDE Bridge
  STATUS    0x0280  COMMAND 0x0007
  CLASS     0x01 0x01 0x8a  REVISION 0x06
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
  BASE4     0x0000ffa1  addr 0x0000ffa0  I/O
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x00  INT_LINE 0xff
  BYTE_0    0xba09c20b  BYTE_1  0x00  BYTE_2  0x806cb48  BYTE_3  0xffffffff

pci bus 0x0 cardnum 0x07 function 0x0003: vendor 0x1106 device 0x3050
 VIA  Device unknown
  STATUS    0x0280  COMMAND 0x0000
  CLASS     0x06 0x00 0x00  REVISION 0x00

pci bus 0x0 cardnum 0x09 function 0x0000: vendor 0x1397 device 0x2bd0
 Device unknown
 CardVendor 0x1397 card 0x2bd0 (Card unknown)
  STATUS    0x0210  COMMAND 0x0006
  CLASS     0x02 0x80 0x00  REVISION 0x02
  BIST      0x00  HEADER 0x00  LATENCY 0x10  CACHE 0x00
  BASE0     0x0000de01  addr 0x0000de00  I/O
  BASE1     0xffefff00  addr 0xffefff00  MEM
  MAX_LAT   0x10  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x09
  BYTE_0    0x7e210001  BYTE_1  0x00  BYTE_2  0x806d238  BYTE_3  0xffffffff

pci bus 0x0 cardnum 0x0a function 0x0000: vendor 0x1397 device 0x2bd0
 Device unknown
 CardVendor 0x1397 card 0x2bd0 (Card unknown)
  STATUS    0x0210  COMMAND 0x0006
  CLASS     0x02 0x80 0x00  REVISION 0x02
  BIST      0x00  HEADER 0x00  LATENCY 0x10  CACHE 0x00
  BASE0     0x0000dc01  addr 0x0000dc00  I/O
  BASE1     0xffeffe00  addr 0xffeffe00  MEM
  MAX_LAT   0x10  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x0a
  BYTE_0    0x7e210001  BYTE_1  0x00  BYTE_2  0x806d5b0  BYTE_3  0xffffffff

pci bus 0x0 cardnum 0x0b function 0x0000: vendor 0x1282 device 0x9102
 Device unknown
 CardVendor 0x3030 card 0x5032 (Card unknown)
  STATUS    0x8210  COMMAND 0x0107
  CLASS     0x02 0x00 0x00  REVISION 0x31
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
  BASE0     0x0000da01  addr 0x0000da00  I/O
  BASE1     0xffeffd00  addr 0xffeffd00  MEM
  BASEROM   0xffe80000  addr 0xffe80000  not-decode-enabled
  MAX_LAT   0x28  MIN_GNT 0x14  INT_PIN 0x01  INT_LINE 0x0b

pci bus 0x0 cardnum 0x0c function 0x0000: vendor 0x10ec device 0x8139
 Realtek RTL8139 10/100 Ethernet
 CardVendor 0x10ec card 0x8139 (Realtek Generic)
  STATUS    0x8290  COMMAND 0x0107
  CLASS     0x02 0x00 0x00  REVISION 0x10
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
  BASE0     0x0000d801  addr 0x0000d800  I/O
  BASE1     0xffeffc00  addr 0xffeffc00  MEM
  BASEROM   0xffee0000  addr 0xffee0000  not-decode-enabled
  MAX_LAT   0x40  MIN_GNT 0x20  INT_PIN 0x01  INT_LINE 0x0c

pci bus 0x1 cardnum 0x00 function 0x0000: vendor 0x10de device 0x0020
 NVidia Riva TNT
 CardVendor 0x1092 card 0x0550 (Diamond Viper 550)
  STATUS    0x02b0  COMMAND 0x0007
  CLASS     0x03 0x00 0x00  REVISION 0x04
  BIST      0x00  HEADER 0x00  LATENCY 0x40  CACHE 0x00
  BASE0     0xfe000000  addr 0xfe000000  MEM
  BASE1     0xf4000008  addr 0xf4000000  MEM PREFETCHABLE
  BASEROM   0xffdf0000  addr 0xffdf0000  not-decode-enabled
  MAX_LAT   0x01  MIN_GNT 0x05  INT_PIN 0x01  INT_LINE 0x00
  BYTE_0    0x5501092  BYTE_1  0x00  BYTE_2  0x806e018  BYTE_3  0xffffffff


dump_pirq habe ich auch gefunden:

server:~# ./dump_pirq.pl
Interrupt routing table found at address 0xf7940:
  Version 1.0, size 0x0090
  Interrupt router is device 00:07.0
  PCI exclusive interrupt mask: 0x0000 []
  Compatible router: vendor 0x1106 device 0x0596

Device 00:01.0 (slot 0): PCI bridge
  INTA: link 0xd6, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x56, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0xd7, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0xd5, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:07.0 (slot 0): ISA bridge
  INTA: link 0xfe, irq mask 0x4000 [14]
  INTB: link 0xff, irq mask 0x8000 [15]
  INTD: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:08.0 (slot 1):
  INTA: link 0x03, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x02, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0x05, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:09.0 (slot 2): Network controller
  INTA: link 0x02, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x05, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0x03, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:0a.0 (slot 3): Network controller
  INTA: link 0x05, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0x03, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0x02, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:0b.0 (slot 4): Ethernet controller
  INTA: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x03, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0x02, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0x05, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Device 00:0c.0 (slot 5): Ethernet controller
  INTA: link 0x03, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTB: link 0x02, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTC: link 0x05, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]
  INTD: link 0x01, irq mask 0xdeb8 [3,4,5,7,9,10,11,12,14,15]

Interrupt router at 00:07.0: VIA 82C596 PCI-to-ISA bridge
  PIRQA (link 0x01): irq 12
  PIRQB (link 0x02): irq 9
  PIRQC (link 0x03): irq 10
  PIRQD (link 0x05): irq 11
  PIRQA : level
  PIRQB : level
  PIRQC : level
  PIRQD : level
  PIC Level mask: 0x1e20 [5,9,10,11,12]

> Kompilier Deinen kernel nochmal neu, diesmal mit CONFIG_PCI_MSI=y (bei den
BUS
> Optionen). Damit wird die Fehlermeldung (IRQ conflict) verschwinden, wenn
der
> kernel booten kann...

okay, das probiere ich heute abend/nacht dann auch mal aus...

vielen dank für eure hilfe :-)

mfg christoph




Reply to: