problem with Local-PCI interrupts in drivers on xeon systems IBX Xseries server

From: Muhammad Mutahir Latif
Date: Fri Mar 19 2004 - 02:32:24 EST


Hello

Ive written a driver for a PCI-PLX board with a DSP on it. In order to
perform operations on the board the Host must send to it a PCI to Local
interrupt. On receiving the interrupt the On board DSP processes data and
sends the interrupt back to the Host via the Local-PCI interrupt which is
detected by our driver. All of this is working fine in systems with single
processor intel pentiums.

However when we tried to use the board and driver on a IBM Xseries 345
server, with dual motherboard architecture and a XEON processor, the driver
did not detect the Local-PCI interrupt. In the init_module of the driver
code we are using "request_irq" function to listen to interrupts from the
board. The driver was able to get the irq (3) for that board. We checked the
PCI configuration registered and confirmed that the board was assigned IRQ3.
We used an oscilloscope to check if our board was sending the interrupt on
the INT A line of the PCI bus and we found that it was .

When we used "Jungos" Windriver application for Linux it was able to detect
the interrupt. When we analysed the /proc/interrupts file we saw that the
even though our board was given the irq 3, the jungo driver was operating on
irq 24.
Another difference between our driver and jungo was that our driver was
associated with a "XT-PIC" interrupt controller while the Jungo driver was
associated with a "APIC-Level triggered" interrupt controller. We checked
the /proc/interrupts file on other systems and found that our driver was
associated with "XT-PIC" interrupt controller

Is there any way we can make our driver choose the type of interrupt
controller with which to associate itself when requesting an IRQ
Is there a different way of requesting an IRQ on XEON based processors and
handling interrupts on these IRQs.
why was jungo driver showing irq 24 in /proc/interrupts file and not our
driver
Is there a different way of handling interrupts for 64 bit processors

This problem has really bogged us down and we'd be grateful for any help or
suggestion

Regards
Muhammad Mutahir Latif,
And Or Logic (Pvt.) Ltd.,

H# 220, St# 33, F-10/1,
Islamabad, Pakistan.
Phone: +92-51-2212976 -Ext 202
Cell: +92-300-5216570
Email: mutahir@xxxxxxxxxx, mutahirlatif@xxxxxxxxx

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/