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>