Re: ia64: ACPI PCI IRQ routing breakage

From: Nate Lawson <nate_at_root.org>
Date: Wed, 11 Aug 2004 15:35:00 -0700
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

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
_at__at_ -377,12 +377,13 _at__at_
 	 * 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)) {
Received on Wed Aug 11 2004 - 20:35:04 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:05 UTC