Messages in this thread | | | Date | Mon, 14 Feb 2000 09:10:26 -0500 (EST) | From | "Richard B. Johnson" <> | Subject | Re: Port of 3c575_cb to 2.3.43pre8 |
| |
On Mon, 14 Feb 2000, Alan Cox wrote:
> > IRQ7 has always been connected to the printer port. The interrupt > > controller handles it just like all the other PWB traces going > > to it. It is not an "unknown" interrupt. > > IRQ7 is also raised to indicate a spurious interrupt (ie nobody owning up > to having requested it). That is one reason its used for the parallel port > on a PC - the odd extra irq does no harm >
This is not possible. Hardware interrupts are created by hardware. There are only two interrupt bits going to the Intel CPUs, one is maskable and comes from the first interrupt controller and/or APIC, the second interrupt controller is connected to the first (cascaded) because only the first is connected to the CPU. The non-maskable interrupt comes from the parity error detection if it exists.
All of the traces (bits) connected to the interrupt controllers are treated exactly the same way, defined by the programming of the interrupt controllers. They have a certain priority (programmable) and they can be masked (enabled or disabled). They also set an internal latch which can be reset either with a specific EOI or a non-specific EOI.
Neither the controllers nor the CPU have any notion of "spurious" interrupts. They are all real. IRQ7 is the lowest priority interrupt when the controller is programmed in the usual way without rotating priority. The Centronics printer port does not require any interrupts to function in the PC/XT-AT environment. This is why the lowest priority bit was connected there. It could be used to signal a problem such as "paper out", but in the PC/XT-AT BIOS environment, it was not used at all.
It is commonplace to provide an interrupt service routine for any unallocated interrupts. Such a routine may print a "unknown interrupt" message. The presence of such a routine has nothing specific to do with IRQ7. If IRQ7 was not allocated, and the printer control port had bit 4 set to enable its IRQ line, and then the -ACK bit was set from true to false, then such an "unallocated interrupt" would occur. Considering the trouble one must go through to do this, it is hardly "spurious" nor "unknown".
Cheers, Dick Johnson
Penguin : Linux version 2.3.41 on an i686 machine (800.63 BogoMips).
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |