Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Mar 2008 15:17:50 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        David Wolfskill <david@catwhisker.org>
Cc:        freebsd-hardware@freebsd.org
Subject:   Re: Dell Optiplex 755 hangs every other boot before 82801 Family Hub Interface to PCI Bridge probed
Message-ID:  <200803251517.50699.jhb@freebsd.org>
In-Reply-To: <20080325042703.GT75023@bunrab.catwhisker.org>
References:  <20080318171434.GA49159@bunrab.catwhisker.org> <200803211102.35682.jhb@freebsd.org> <20080325042703.GT75023@bunrab.catwhisker.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--Boundary-00=_e/U6HQsF9cJZohu
Content-Type: text/plain;
  charset="iso-8859-15"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Tuesday 25 March 2008 12:27:03 am David Wolfskill wrote:
> On Fri, Mar 21, 2008 at 11:02:35AM -0400, John Baldwin wrote:
> > ...
> > Ok.  Please apply the patch below and report back which printfs you see.
> >...
> 
> Here you go:
> 
> ...
> Copyright (c) 1992-2008 The FreeBSD Project.
> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
>         The Regents of the University of California. All rights reserved.
> FreeBSD is a registered trademark of The FreeBSD Foundation.
> FreeBSD 8.0-CURRENT #0: Fri Feb 15 16:13:31 PST 2008
>     root@dwolf-bsd.jnpr.net:/common/S4/obj/usr/src/sys/DWOLF
> WARNING: WITNESS option enabled, expect reduced performance.
> ...
> usb6: EHCI version 1.0
> usb6: companion controllers, 2 ports each: usb3 usb4 usb5
> usb6: <EHCI (generic) USB 2.0 controller> on ehci1
> usb6: USB revision 2.0
> uhub6: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb6
> uhub6: 6 ports with 6 removable, self powered
> pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
> pcib2:   domain            0
> pcib2:   secondary bus     2
> pcib2:   subordinate bus   2
> pcib2:   I/O decode        0xf000-0xfff
> pcib2:   no prefetched decode
> pcib2:   Subtractively decoded bridge.
> 
> 	> hang here on alternate boots <
> 
> pcib2: fetching _PRT
> pcib2: adding pci bus child device
> pcib2: force attaching PCI link devices found in _PRT
> pcib2: attaching the PCI child bus device
> pci2: <ACPI PCI bus> on pcib2
> pci2: domain=0, physical bus=2
> isab0: <PCI-ISA bridge> at device 31.0 on pci0
> isa0: <ISA bus> on isab0
> atapci1: <Intel (ID=29228086) AHCI controller> port 
0xfe00-0xfe07,0xfe10-0xfe13,
> 0xfe20-0xfe27,0xfe30-0xfe33,0xfec0-0xfedf mem 0xff970000-0xff9707ff irq 18 
at de
> vice 31.2 on pci0
> atapci1: Reserved 0x20 bytes for rid 0x20 type 4 at 0xfec0
> atapci1: Reserved 0x800 bytes for rid 0x24 type 3 at 0xff970000
> atapci1: [MPSAFE]
> atapci1: [ITHREAD]
> ....
> 
> 
> In case that wasn't sufficient detail, I've attached the  "hang"
> and "nohang" typescripts from the serial console.

Ok, try updated patch (more debugging).

-- 
John Baldwin

--Boundary-00=_e/U6HQsF9cJZohu
Content-Type: text/x-diff;
  charset="iso-8859-15";
  name="pcib_debug.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="pcib_debug.patch"

Index: acpica/acpi.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/acpica/acpi.c,v
retrieving revision 1.246
diff -u -r1.246 acpi.c
--- acpica/acpi.c	10 Mar 2008 22:18:07 -0000	1.246
+++ acpica/acpi.c	25 Mar 2008 19:15:19 -0000
@@ -1766,6 +1766,7 @@
 	return (FALSE);
     buf.Pointer = NULL;
     buf.Length = ACPI_ALLOCATE_BUFFER;
+    device_printf(dev, "fetching ACPI object info\n");
     error = AcpiGetObjectInfo(h, &buf);
     if (ACPI_FAILURE(error))
 	return (FALSE);
@@ -1776,6 +1777,7 @@
 	ret = TRUE;
 
     /* Return true for 'present' and 'functioning' */
+    device_printf(dev, "invoking ACPI_DEVICE_PRESENT\n");
     if (ACPI_DEVICE_PRESENT(devinfo->CurrentStatus))
 	ret = TRUE;
 
Index: acpica/acpi_pcib.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pcib.c,v
retrieving revision 1.60
diff -u -r1.60 acpi_pcib.c
--- acpica/acpi_pcib.c	3 Dec 2005 21:17:17 -0000	1.60
+++ acpica/acpi_pcib.c	25 Mar 2008 19:13:42 -0000
@@ -138,6 +138,7 @@
      * XXX: This isn't entirely correct since we may be a PCI bus
      * on a hot-plug docking station, etc.
      */
+    device_printf(dev, "checking DeviceIsPresent\n");
     if (!acpi_DeviceIsPresent(dev))
 	return_VALUE(ENXIO);
 
@@ -147,6 +148,7 @@
      * are several valid bridges in the field that do not have a _PRT, so
      * only warn about missing tables if bootverbose is set.
      */
+    device_printf(dev, "fetching _PRT\n");
     prt->Length = ACPI_ALLOCATE_BUFFER;
     status = AcpiGetIrqRoutingTable(acpi_get_handle(dev), prt);
     if (ACPI_FAILURE(status) && (bootverbose || status != AE_NOT_FOUND))
@@ -157,6 +159,7 @@
     /*
      * Attach the PCI bus proper.
      */
+    device_printf(dev, "adding pci bus child device\n");
     if ((child = device_add_child(dev, "pci", busno)) == NULL) {
 	device_printf(device_get_parent(dev), "couldn't attach pci bus\n");
 	return_VALUE(ENXIO);
@@ -165,8 +168,10 @@
     /*
      * Now go scan the bus.
      */
+    device_printf(dev, "force attaching PCI link devices found in _PRT\n");
     prt_walk_table(prt, prt_attach_devices, dev);
 
+    device_printf(dev, "attaching the PCI child bus device\n");
     return_VALUE (bus_generic_attach(dev));
 }
 
Index: acpica/acpi_pcib_pci.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pcib_pci.c,v
retrieving revision 1.17
diff -u -r1.17 acpi_pcib_pci.c
--- acpica/acpi_pcib_pci.c	2 May 2007 17:50:35 -0000	1.17
+++ acpica/acpi_pcib_pci.c	25 Mar 2008 19:13:06 -0000
@@ -134,7 +134,9 @@
     ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
 
     pcib_attach_common(dev);
+    device_printf(dev, "fetching softc pointer\n");
     sc = device_get_softc(dev);
+    device_printf(dev, "fetching ACPI handle\n");
     sc->ap_handle = acpi_get_handle(dev);
     return (acpi_pcib_attach(dev, &sc->ap_prt, sc->ap_pcibsc.secbus));
 }

--Boundary-00=_e/U6HQsF9cJZohu--



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