From: Andrew de Quincey <adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
To: acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: ACPI PCI routing problem
Date: Fri, 11 Jul 2003 00:22:29 +0100 [thread overview]
Message-ID: <200307110022.29512.adq_dvb@lidskialf.net> (raw)
Hi, I have an Epox 8RDA+ NForce2-based motherboard (uniprocessor, Athlon XP).
This board has an IO-APIC with 0x17 pins. I can't tell you much more specific
about it, as it is in the nforce2 chipset to which I do not have docs. I'm
using kernel 2.5.74, with APIC, IO-APIC, ACPI turned on.
First of all, here are the symptoms:
Kernel boots OK, devices with IRQs <=15 are fine. However, the system attempts
to allocate some devices (e.g. USB) to IRQs 20 and 21, as told by the AML
code in my BIOS (more on this later).
The USB busses do not work. The devices are detected, but all attempts to send
USB packets time out. Examining /proc/interrupts shows the reason: IRQ21 has
had MILLIONS of spurious interrupts. It is receiving them even before the USB
driver starts, so the kernel detected that no driver is registered, and
disabled the IRQ (in arch/i386/kernel/irq.c). It prints "IRQ 21:nobody
cared".
The other USB bus just seems to receive no interrupts at all.
If I pass pci=noapci as a kernel parameter, everything works (USB busses are
allocated to IRQs <=15), but I thought I would take the time to debug this
issue properly. Also, it gave me an excuse to learn about ACPI and APICs :)
The PCI Interrupt Link names for my USB devices are APCF, APCG respectively.
Here is the output from the ACPI PRT parsing code during kernel bootup:
pci_link-0256 [39] acpi_pci_link_get_curr: No IRQ resource found
ACPI: PCI Interrupt Link [APCF] (IRQs 20 21 22, disabled)
pci_link-0256 [41] acpi_pci_link_get_curr: No IRQ resource found
ACPI: PCI Interrupt Link [APCG] (IRQs 20 21 22, disabled)
I have decompiled the AML code in my BIOS to verify that the ACPI parser is
functioning correctly. It is.
During the initialisation of the IO-APIC (and the parsing of the MADT ACPI
table), the following is printed:
IO-APIC (apicid-pin) 2-0, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not
connected.
Heres my problem: is this a bug in my BIOS's ACPI tables, or a bug in the
kernel. The "not connected" stuff above kinda implies that the PRT
information is duff.. but I'm not sure what "not connected" means here...
does it mean physically unconnected, or just logically?
From the ACPI spec, I got the impression that the MADT table contains
overrides for the *8539 PIC* IRQs.. so you wouldn't get IRQs > 15 in there
anyway.
If this is a BIOS bug, I'll probably develop a patch which warns when duff PRT
tables are present, and forces pci=noacpi.
If this is a kernel bug, can anyone suggest where to go next. I can provide
more information if necessary...
Incidentally, this only started in kernel 2.5.63 (or very close to there) when
a bug was fixed in the ACPI parser when a device does not have an IRQ
allocated already (The "No IRQ resource found" printout above). Prior to
this, I think the PRT parser just bombed out completely, and the system used
some other IRQ routing method.
-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1
next reply other threads:[~2003-07-10 23:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-10 23:22 Andrew de Quincey [this message]
[not found] ` <200307110022.29512.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-11 0:14 ` ACPI PCI routing problem Andrew de Quincey
2003-07-11 10:14 ` Ducrot Bruno
[not found] ` <20030711101441.GO7796-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-07-11 11:43 ` Andrew de Quincey
[not found] ` <200307111243.34695.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-11 12:51 ` Ducrot Bruno
[not found] ` <20030711125126.GA22636-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-07-11 12:56 ` Andrew de Quincey
[not found] ` <200307111356.22376.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-11 14:02 ` Ducrot Bruno
[not found] ` <20030711140227.GF22636-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-07-11 16:23 ` Andrew de Quincey
2003-07-11 17:06 ` Instability without ACPI Andrew de Quincey
[not found] ` <200307111806.57883.adq_dvb-fmPXVN3awWJAJAzL26g0SA@public.gmane.org>
2003-07-11 17:26 ` Ducrot Bruno
[not found] ` <20030711172639.GL22636-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-07-11 18:17 ` Sérgio Monteiro Basto
[not found] ` <1057947446.1451.51.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org>
2003-07-11 18:46 ` Ducrot Bruno
[not found] ` <20030711184648.GN22636-kk6yZipjEM5g9hUCZPvPmw@public.gmane.org>
2003-07-12 3:25 ` Instability without ACPI and quirks Sérgio Monteiro Basto
[not found] ` <1057980324.1470.61.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org>
2003-07-12 12:39 ` Andrew de Quincey
2003-07-11 14:09 ` ACPI PCI routing problem Alan Cox
[not found] ` <1057932596.20629.0.camel-2MMpYkNvuYAXoXS6vNje7nviChZXdy279dF7HbQ/qKg@public.gmane.org>
2003-07-11 16:29 ` Andrew de Quincey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200307110022.29512.adq_dvb@lidskialf.net \
--to=adq_dvb-fmpxvn3awwjajazl26g0sa@public.gmane.org \
--cc=acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox