andy baxter wrote:
I just had another look at the onboard firmware config
system, and it
does have a page that lets you assign devices labelled A,B,C... to
different physical interrupts, but I'm not sure how to use this properly
or safely. (There's no indication what device 'A' actually is). By
default they are all set to INT 11, which doesn't come up in
/proc/interrupts.
The things labeled A, B, ... are the actual hardware interrupts lines
that go into your chipset's interrupt controller (in the southbridge).
The only mechanism to change which device is connected to which hardware
interrupt line is to put the card in some other PCI(e) slot; for onboard
devices, this connection is literally hardwired. (Actually, many
southbridge chips can use different hardware interrupt lines for the
integrated devices, but there is no motherboard maker that allows to
reconfigure this in the BIOS.)
How these hardware interrupt lines are mapped to interrupt numbers
depends on how modern the OS is.
First, there are the ISA interrupts 0-15, which were the only interrupts
available in the good ol' times of MS-DOS. There are very few ISA
interrupts that are not already used by or reserved for ISA devices.
The mapping from hardware interrupt line to ISA interrupt is what your
BIOS allows you to configure, but this interrupt type isn't used by
Linux unless you disable ACPI.
Second, there are the new PCI interrupts starting at number 16. These
are used when the OS knows how to configure the interrupt controller,
which is one of the things done by ACPI. The mapping from hardware
interrupt line to interrupt number is fixed, i.e., A=16, B=17, etc.
Third, there are message-signaled interrupts (MSIs), which do not use
interrupt lines at all and are always unshared. This is the only
mechanism to get unshared interrupts for devices that are connected to
the same hardware interrupt line. In theory, MSI support is required
for all PCI Express devices, but in practice, MSIs are not supported by
older Windows versions and by many Windows drivers, so many devices and
older chipsets have no or buggy MSI support. However, when MSIs work,
they are used by most Linux drivers.
Regards,
Clemens