From owner-freebsd-hardware@FreeBSD.ORG Tue Mar 25 19:41:33 2008 Return-Path: Delivered-To: freebsd-hardware@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61277106564A for ; Tue, 25 Mar 2008 19:41:33 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail.speedfactory.net [66.23.216.219]) by mx1.freebsd.org (Postfix) with ESMTP id 06BAA8FC17 for ; Tue, 25 Mar 2008 19:41:32 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.8s) with ESMTP id 236713779-1834499 for multiple; Tue, 25 Mar 2008 15:40:14 -0400 Received: from localhost.corp.yahoo.com (john@localhost [127.0.0.1]) (authenticated bits=0) by server.baldwin.cx (8.14.2/8.14.2) with ESMTP id m2PJePpI078956; Tue, 25 Mar 2008 15:40:25 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: David Wolfskill Date: Tue, 25 Mar 2008 15:17:50 -0400 User-Agent: KMail/1.9.7 References: <20080318171434.GA49159@bunrab.catwhisker.org> <200803211102.35682.jhb@freebsd.org> <20080325042703.GT75023@bunrab.catwhisker.org> In-Reply-To: <20080325042703.GT75023@bunrab.catwhisker.org> MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_e/U6HQsF9cJZohu" Message-Id: <200803251517.50699.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [127.0.0.1]); Tue, 25 Mar 2008 15:40:26 -0400 (EDT) X-Virus-Scanned: ClamAV 0.91.2/6392/Tue Mar 25 08:44:02 2008 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-4.4 required=4.2 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: freebsd-hardware@freebsd.org Subject: Re: Dell Optiplex 755 hangs every other boot before 82801 Family Hub Interface to PCI Bridge probed X-BeenThere: freebsd-hardware@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: General discussion of FreeBSD hardware List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 Mar 2008 19:41:33 -0000 --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: on ehci1 > usb6: USB revision 2.0 > uhub6: on usb6 > uhub6: 6 ports with 6 removable, self powered > pcib2: 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: on pcib2 > pci2: domain=0, physical bus=2 > isab0: at device 31.0 on pci0 > isa0: on isab0 > atapci1: 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--