From: Nicolas S. <ns...@fr...> - 2001-12-19 16:44:16
|
On Wed, Dec 19, 2001 at 01:18:12PM +0100, Jos Hulzink wrote: > > > I wonder if we could take this into account at the KGI level. IIRC, the > > > location of the IRQ line number in the PCI config space is standardized > > > no? Maybe the driver could simply ask for the registration of the > > > "irq_handler" without even supplying the IRQ line number itself? > > > > This exactly how irq registration works in FreeBSD. > > The big point was that in Linux you can't use the PCI cfg > space anymore, unless the PCI cfg space is modified according to the > values in struct pcidev; Besides, your solution is PCI bus specific, read: > not an option IMHO. You refer to my solution... which one? Sorry, I'm a bit lost there. > > Since the driver handlers are never directly called by the interrupt > > exceptions, instead a lot of OS code is executed before the driver handler, > > why bother with IRQ numbers? The only important thing is to be sure that the > > handler is called at the right moment, for the right event. > > Don't see the connection between shared interrupt handlers (that is why so > many OS code is executed first) and interrupt numbers ? I was just stating that the OS should hide the driver the irq number by providing some registration API without this kind of (irq number) parameter. > > All this is OS specific and more a question of kernel API. I'm not really > > aware of the PCI specifications but I'm usually confident in FreeBSD design ;) > > > > As far as I understand, things are also different when ACPI is invloved... > > ACPI doesn't affect interrupts afaik, maybe you are confused with the APIC > which causes all my trouble ? Same characters, totally different > component. My understanding is that ACPI is responsible for (among other things maybe) system resource allocation and passing the result to the OS. I think it must set correctly the pcicfg space according to its choices, as the BIOS does when "PnP OS" is set to "YES". But all this are assumptions... On the other hand APIC is responsible for the actual routing of interrupts from the PCI bus to the CPU. I think that the ACPI is responsible for configuring the APIC too so that informations passed to the OS are actually wired in the HW configuration. Nicholas -- Alcôve Technical Manager - Nic...@fr... - http://www.alcove.com FreeBSD Developer - ns...@fr... |