2017-05-14 15:40:07 -03:00
|
|
|
===============
|
2006-06-29 02:25:02 -07:00
|
|
|
What is an IRQ?
|
2017-05-14 15:40:07 -03:00
|
|
|
===============
|
2006-06-29 02:25:02 -07:00
|
|
|
|
2025-03-19 10:29:46 +01:00
|
|
|
An IRQ is an interrupt request from a device. Currently, they can come
|
|
|
|
in over a pin, or over a packet. Several devices may be connected to
|
2025-03-19 10:29:47 +01:00
|
|
|
the same pin thus sharing an IRQ. Such as on legacy PCI bus: All devices
|
|
|
|
typically share 4 lanes/pins. Note that each device can request an
|
|
|
|
interrupt on each of the lanes.
|
2006-06-29 02:25:02 -07:00
|
|
|
|
|
|
|
An IRQ number is a kernel identifier used to talk about a hardware
|
2025-03-19 10:29:46 +01:00
|
|
|
interrupt source. Typically, this is an index into the global irq_desc
|
2025-03-19 10:29:47 +01:00
|
|
|
array or sparse_irqs tree. But except for what linux/interrupt.h
|
|
|
|
implements, the details are architecture specific.
|
2006-06-29 02:25:02 -07:00
|
|
|
|
|
|
|
An IRQ number is an enumeration of the possible interrupt sources on a
|
2025-03-19 10:29:46 +01:00
|
|
|
machine. Typically, what is enumerated is the number of input pins on
|
|
|
|
all of the interrupt controllers in the system. In the case of ISA,
|
2025-03-19 10:29:47 +01:00
|
|
|
what is enumerated are the 8 input pins on each of the two i8259
|
|
|
|
interrupt controllers.
|
2006-06-29 02:25:02 -07:00
|
|
|
|
|
|
|
Architectures can assign additional meaning to the IRQ numbers, and
|
2025-03-19 10:29:46 +01:00
|
|
|
are encouraged to in the case where there is any manual configuration
|
|
|
|
of the hardware involved. The ISA IRQs are a classic example of
|
2006-06-29 02:25:02 -07:00
|
|
|
assigning this kind of additional meaning.
|