Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2004 15:35:00 -0700
From:      Nate Lawson <nate@root.org>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        current@FreeBSD.org
Subject:   Re: ia64: ACPI PCI IRQ routing breakage
Message-ID:  <411A9F14.4000204@root.org>
In-Reply-To: <20040811214708.GA25696@dhcp50.pn.xcllnt.net>
References:  <20040811214708.GA25696@dhcp50.pn.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------060108080209020609010400
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Marcel Moolenaar wrote:
> Nate,
> 
> I just tried to boot a kernel with the new ACPI PCI IRQ routing and
> things look very bad:
> 
> Table 'SSDT' at 0xe00000003fdfc680
> Table 'SSDT' at 0xe00000003fdfc740
> Table 'SSDT' at 0xe00000003fdfc970
> Table 'SSDT' at 0xe00000003fdfcfe0
> Table 'SSDT' at 0xe00000003fdfd650
> Table 'SSDT' at 0xe00000003fdfdcc0
> Table 'SSDT' at 0xe00000003fdfe330

It's very hard to debug things when all your important devices are 
hidden in SSDTs.  I'd appreciate it if someone took me up on adding SSDT 
support to acpidump.

> acpi0: <HP> on motherboard
> acpi0: [GIANT-LOCKED]
> acpi0: Power Button (fixed)
> acpi0: Sleep Button (fixed)
>
> pcib0: <ACPI Host-PCI bridge> on acpi0
> ACPI PCI link initial configuration:
> pci0: <ACPI PCI bus> on pcib0
> pci0: physical bus=0
>         map[10]: type 1, range 32, base 80023000, size 12, enabled
> found-> vendor=0x1033, dev=0x0035, revid=0x41
>         bus=0, slot=1, func=0
>         class=0c-03-10, hdrtype=0x00, mfdev=1
>         cmdreg=0x0146, statreg=0x0210, cachelnsz=32 (dwords)
>         lattimer=0x80 (3840 ns), mingnt=0x01 (250 ns), maxlat=0x2a (10500 ns)
>         intpin=a, irq=0
>         powerspec 2  supports D0 D1 D2 D3  current D0
>         map[10]: type 1, range 32, base 80022000, size 12, enabled
[...]
> 
> If you don't have any suggestions from the top of your head, then
> please could you back it out so that we can work out what's going
> on without having ia64 completely bOrked. It not just inconvenient
> for me. It's a major blocker. In that light I'd hoped to be given
> more time for testing.

It's likely your link devices don't like being called with _DIS.  Try 
the attached patch.

-Nate

--------------060108080209020609010400
Content-Type: text/plain;
 name="dbg.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="dbg.diff"

Index: acpi_pci_link.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/acpica/acpi_pci_link.c,v
retrieving revision 1.20
diff -u -r1.20 acpi_pci_link.c
--- acpi_pci_link.c	11 Aug 2004 20:37:24 -0000	1.20
+++ acpi_pci_link.c	11 Aug 2004 22:33:09 -0000
@@ -377,12 +377,13 @@
 	 * run _DIS (i.e., the method doesn't exist), assume the initial
 	 * IRQ was routed by the BIOS.
 	 */
+#if 0
 	if (ACPI_SUCCESS(AcpiEvaluateObject(handle, "_DIS", NULL, NULL))) {
 		link->current_irq = 0;
 		link->flags = ACPI_LINK_NONE;
 	} else {
+#endif
 		link->flags = ACPI_LINK_ROUTED;
-	}
 
 	error = AcpiGetPossibleResources(handle, &buf);
 	if (ACPI_FAILURE(error)) {

--------------060108080209020609010400--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?411A9F14.4000204>