Bug 2883
Summary: | 82855PM: some interrupt links are not routed as I specified in BIOS | ||
---|---|---|---|
Product: | ACPI | Reporter: | Paul Ionescu (i_p_a_u_l) |
Component: | Config-Interrupts | Assignee: | Len Brown (lenb) |
Status: | REJECTED INVALID | ||
Severity: | low | CC: | acpi-bugzilla |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.5 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
full dmesg
lspci -vv output of acpidmp |
Description
Paul Ionescu
2004-06-13 12:20:19 UTC
why do you want allocate an IRQ to LNKE? if LNKE has no active IRQ, this means no PCI devices use LNKE. If one PCI device does use LNKE, ACPI will assign an IRQ to LNKE. Well, Right now I have some devices sharing IRQ as you can see in: cat /proc/interrupts CPU0 0: 13596725 XT-PIC timer 1: 26695 XT-PIC i8042 2: 0 XT-PIC cascade 3: 0 XT-PIC Intel 82801DB-ICH4 4: 0 XT-PIC uhci_hcd 5: 0 XT-PIC uhci_hcd 8: 1 XT-PIC rtc 9: 1827 XT-PIC acpi 10: 762076 XT-PIC uhci_hcd, eth0, radeon@PCI:1:0:0 12: 776798 XT-PIC i8042 14: 53842 XT-PIC ide0 15: 2263 XT-PIC ide1 So I wanted to manualy specify the IRQ for eth0 to be 11. If I put in BIOS LNKF pointing to IRQ 11, nothing happens. It is true that the eth0 is on another PCI bus. Maybe what I want is not possible, but I don't know then why do I have that option in BIOS. The main reason I don't want to share IRQ, is because when I resume from S3, I experience some interrupt instabilities. So I tried to keep each device with his IRQ and not sharing them. If, for instance something goes wrong with the USB, then it will not affect other devices. Now I booted 2.6.7-rc3 and I have: ACPI: Using PIC for interrupt routing ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 *10 11) ACPI: PCI Interrupt Link [LNKB] (IRQs *3 4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 *4 5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 9 10 11) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11) *0, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11) ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: Embedded Controller [EC] (gpe 28) ACPI: Power Resource [PUBS] (on) ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT] please attache the output from lspci -vv please attach the *complete* dmesg oh, and also we'll need the output from acpidmp, available in /usr/sbin or in pmtools: http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/ Created attachment 3418 [details]
full dmesg
I changed to kernel 2.6.8-rc2 with latest acpi patch as you can see from dmesg
Created attachment 3419 [details]
lspci -vv
Created attachment 3420 [details]
output of acpidmp
any change with 2.6.9? any change with linux 2.6.10? Hi Len, No change yet. Tested with 2.6.9, 2.6.10, 2.6.11rc2 The reason that LNKE, LNKF, LNKG are not set as specified
in BIOS SETUP is because they are unused
and are disabled. The dmesg from the latest kernel should
have the word "disabled" on those links.
Note that it is not possible to change the association
of devices to Interrupt Links, for that reflects physical
wires on the motherboard. This association can only be
changed when you can physically move a device to another slot.
On this machine, the following devices are physically tied to LNKA:
Device (AGP)
{
Name (_ADR, 0x00010000)
Name (_PRT, Package (0x02)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.LNKA,
0x00
},
int-A of your graphics (PCI bus 1, device 0)
Package (0x04)
{
0x001DFFFF,
0x00,
\_SB.LNKA,
0x00
},
USB Universal Host Controller Interface driver v2.2
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 10 (level, low) -> IRQ 10
Device (PCI1)
{
Name (_ADR, 0x001E0000)
Name (_PRT, Package (0x0D)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.LNKA,
0x00
},
int-A of device 0 on PCI bus 2
Package (0x04)
{
0x0001FFFF,
0x00,
\_SB.LNKA,
0x00
},
Intel(R) PRO/1000 Network Driver - version 5.2.52-k4
Copyright (c) 1999-2004 Intel Corporation.
ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 10 (level, low) -> IRQ 10
Package (0x04)
{
0x0002FFFF,
0x02,
\_SB.LNKA,
0x00
},
int-C of device 2
Package (0x04)
{
0x0004FFFF,
0x02,
\_SB.LNKA,
0x00
},
int-C of device 4
Device (DOCK)
{
Name (_ADR, 0x00030000)
Name (_S3D, 0x02)
Name (_PRT, Package (0x06)
{
Package (0x04)
{
0xFFFF,
0x00,
\_SB.LNKA,
0x00
},
int-A of device 0 on the dock device
> 10: 762076 XT-PIC uhci_hcd, eth0, radeon@PCI:1:0:0
In summary, you'll be able to move these three devices around,
but you'll not be able to split them from each other.
Linux is working properly here, and the machine is working
as it was designed -- though one might wish that it were designed
with less interrupt wire sharing...
BTW. a more recent kernel would illustrate this better
in dmesg, as the links that are used for each device are
specified when the device interrupt is configured.
|