Skip to content

Boot IRQ quirks and rerouting [repost]

Stefan Assmann lkml 1 version Applied

Status from this message: applied, thanks Stefan. I have created a new

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest5 patches 3 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/5Add PCI IDs for devices that need boot irq quirksinclude/linux/pci_ids.h+5 -00 replies
2/5Introduce pci=noioapicquirk kernel cmdline optionDocumentation/kernel-parameters.txt arch/x86/pci/common.c include/asm-x86/io_apic.h +1 more+12 -00 replies
3/5Introduce pci=ioapicreroute kernel cmdline optionDocumentation/kernel-parameters.txt arch/x86/pci/common.c include/asm-x86/io_apic.h +1 more+14 -00 replies
4/5Add quirk to disable boot interrupt generation on intel 6300ESBdrivers/pci/quirks.c+30 -00 replies
5/5reroute PCI interrupt to legacy boot interrupt equivalentdrivers/acpi/pci_irq.c drivers/pci/quirks.c include/linux/pci.h+90 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 0/5] Boot IRQ quirks and rerouting [repost]

These patches are against linux-2.6-tip, auto-x86-next.

The AMD/ATI and Broadcomm patches are not included yet, we're working on getting things ready for submission.

The patch for the bootirqquirk= parameter will be released later.

When IRQ lines on secondary or higher IO-APICs are masked (as done by RT and others), many chipsets redirect IRQs on this line to the PIC, and thereby regularly to the first IO-APIC in the system. This causes spurious interrupts and can lead to disabled IRQ lines.

Disabling this "boot interrupt" (as it is mostly used to supply all IRQs to the legacy PIC during boot) is chipset-specific. It is also not possible for all chips. This patchset disables the boot interrupt on chipsets where this is possible and where we know how to do it.

Where disabling the boot interrupt is not possible, the patches provide a boot parameter pci=ioapicreroute to only use the boot interrupt (on the first IO-APIC) instead of the "original" line on the secondary (tertiary ...) IO-APIC. The original line remains masked, and IRQs always appear on the boot interrupt line on the first IO-APIC instead.

A second boot parameter pci=noioapicquirk allows to disable all quirks that disable boot interrupts.

All patches are co-authored by Stefan Assmann and Olaf Dabrunz. But according to Documentation/SubmittingPatches, the patch submission format allows only for one author.

Documentation/kernel-parameters.txt |    7 ++++
arch/x86/pci/common.c               |    9 +++++
drivers/acpi/pci_irq.c              |   56 ++++++++++++++++++++++++++++++++++
drivers/pci/quirks.c                |   59 +++++++++++++++++++++++++++++++++++-
include/asm-x86/io_apic.h           |    8 ++++
include/asm-x86/pci.h               |    4 +-
include/linux/pci.h                 |    7 +++-
include/linux/pci_ids.h             |    6 +++
8 files changed, 151 insertions(+), 5 deletions(-)