From owner-freebsd-i386@FreeBSD.ORG Tue Mar 23 10:40:15 2004 Return-Path: Delivered-To: freebsd-i386@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D126F16A4D3 for ; Tue, 23 Mar 2004 10:40:15 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4CEB543D46 for ; Tue, 23 Mar 2004 10:40:15 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i2NIeFbv027310 for ; Tue, 23 Mar 2004 10:40:15 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i2NIeFSe027309; Tue, 23 Mar 2004 10:40:15 -0800 (PST) (envelope-from gnats) Resent-Date: Tue, 23 Mar 2004 10:40:15 -0800 (PST) Resent-Message-Id: <200403231840.i2NIeFSe027309@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-i386@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Coleman Kane Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 51FAF16A4CE for ; Tue, 23 Mar 2004 10:30:16 -0800 (PST) Received: from www.freebsd.org (www.freebsd.org [216.136.204.117]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3492943D41 for ; Tue, 23 Mar 2004 10:30:16 -0800 (PST) (envelope-from nobody@FreeBSD.org) Received: from www.freebsd.org (localhost [127.0.0.1]) by www.freebsd.org (8.12.10/8.12.10) with ESMTP id i2NIUG72074258 for ; Tue, 23 Mar 2004 10:30:16 -0800 (PST) (envelope-from nobody@www.freebsd.org) Received: (from nobody@localhost) by www.freebsd.org (8.12.10/8.12.10/Submit) id i2NIUFH0074257; Tue, 23 Mar 2004 10:30:16 -0800 (PST) (envelope-from nobody) Message-Id: <200403231830.i2NIUFH0074257@www.freebsd.org> Date: Tue, 23 Mar 2004 10:30:16 -0800 (PST) From: Coleman Kane To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-2.3 Subject: i386/64626: AP initialization problem on GIGABYTE GA-7DPXDW+ Athlon MP board X-BeenThere: freebsd-i386@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: I386-specific issues for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Mar 2004 18:40:16 -0000 >Number: 64626 >Category: i386 >Synopsis: AP initialization problem on GIGABYTE GA-7DPXDW+ Athlon MP board >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Mar 23 10:40:14 PST 2004 >Closed-Date: >Last-Modified: >Originator: Coleman Kane >Release: 5.2.1-Release >Organization: DomainIt, Inc. >Environment: FreeBSD sparky.domainit.int 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Tue Jan 8 23:15:10 GMT 2002 root@sparky.domainit.int:/usr/obj/usr/src/sys/SPARKY i386 >Description: System randomly fails to initialize the second CPU. Comes up with AP #1 (PHY #1) initialization failed panic?(y/n) And halts. I have installed 5.2-RELEASE and 5.2.1-RELEASE on three of these systems over the past couple months and they all exhibit the same behavior. The error is intermittent, and typically when the machine is restarted it comes up fine. >How-To-Repeat: Reboot the offending system repeatedly until the error occurs. >Fix: The machine always halts at the panic? (y/n) prompt, even if DDB_UNATTENDED is set. As a temporary solution (until the reason why CPU 1 doesn't start is ascertained), I suggest modifying sys/i386/i386/mp_machdep.c around line 635 from: if (!start_ap(apic_id)) { printf("AP #%d (PHY# %d) failed!\n", cpu, apic_id); CHECK_PRINT("trace"); /* show checkpoints */ /* better panic as the AP may be running loose */ printf("panic y/n? [y] "); if (cngetc() != 'n') panic("bye-bye"); } CHECK_PRINT("trace"); /* show checkpoints */ To: if (!start_ap(apic_id)) { printf("AP #%d (PHY# %d) failed!\n", cpu, apic_id); CHECK_PRINT("trace"); /* show checkpoints */ /* better panic as the AP may be running loose */ #ifndef DDB_UNATTENDED printf("panic y/n? [y] "); if (cngetc() != 'n') panic("bye-bye"); #else panic("Unable to init CPU"); #endif } CHECK_PRINT("trace"); /* show checkpoints */ The system will simply restart when the condition occurs in the unattended state, until it comes up clean. >Release-Note: >Audit-Trail: >Unformatted: