Thomas Guettler schrieb:
Ich frage mich, wieso sich das Geruecht, man muss/kann PCI-Karten-Treibern io und irq-Parameter uebergeben, so hartnaeckig haelt.
Mist, jetzt habe ich mir hier als totaler Hardware-doofi geouted. Habe ja eigentlich zu Hause ein schoen dickes Buch ueber PC-Hardware. Werde wahrscheinlich aber erst dazu kommen das zu lesen wenn ich in Rente bin. Obwohl es mich eigentlich sehr interessiert wie das intern funktioniert.
Ich werde mal versuchen, hier kurz ein paar Fakten anzudeuten (in der Hoffnung, dass es nicht allzusehr stoert ;-).
Der PCI-Bus besitzt genau 4 Interrupt-Leitungen (INT#A, INT#B, INT#C, INT#D). PCI-Karten sind defaultmaessig auf INT#A eingestellt. Damit nicht alle Karten umkonfiguriert werden muessen, sind diese Leitungen nicht parallel auf allen Slots gleich verkabelt. Das bedeutet, dass z.B. INT#A von Slot3 INT#D des Bus-Controllers sein kann. Gute Handbuecher informieren ueber diese Verdrahtung. Das Bios ordnet waehrend des Bootvorgangs diesen Leitungen im Bus-Controller nun "numerische" Interrupts zu, wobei fuer alle Leitungen im Notfall auch ein einziger IRQ genommen werden kann. PCI-Karten koennen also gar nicht den von Ihren Treibern verwendeten IRQs kennen. Die genaue Verfahrensweise bei den io-Adressen kenne ich leider auch nicht, aber sie werden genau wie die IRQs vom Bios vergeben. Angesprochen werden die Karten meines Wissens nach ueber ihre Bus:Steckplatznummer und teilen beim Initialisieren dem Bios ihre Anforderungen bezueglich benoetigter Ressourcen mit.
Konnte mich bloss daran erinnern, das ich bei meiner Soundblaster16 mich mit io/irq herumaergerte. Naja, die war natuerlich ISA.
Genau das sollte mit der Einfuehrung von legacy free Rechner nicht mehr noetig sein.
CU Thomas