From owner-freebsd-acpi@FreeBSD.ORG Wed Jan 4 18:15:08 2006 Return-Path: X-Original-To: freebsd-acpi@freebsd.org Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 348A916A41F; Wed, 4 Jan 2006 18:15:08 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from speedfactory.net (mail6.speedfactory.net [66.23.216.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id B187943D49; Wed, 4 Jan 2006 18:14:59 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (unverified [66.23.211.162]) by speedfactory.net (SurgeMail 3.5b3) with ESMTP id 5277748 for multiple; Wed, 04 Jan 2006 13:16:16 -0500 Received: from localhost (john@localhost [127.0.0.1]) by server.baldwin.cx (8.13.4/8.13.4) with ESMTP id k04IEntA004383; Wed, 4 Jan 2006 13:14:49 -0500 (EST) (envelope-from jhb@freebsd.org) From: John Baldwin To: freebsd-acpi@freebsd.org, Anders Nordby Date: Wed, 4 Jan 2006 13:13:27 -0500 User-Agent: KMail/1.8.2 References: <200601041640.k04GeEVT027425@freefall.freebsd.org> In-Reply-To: <200601041640.k04GeEVT027425@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-6" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <200601041313.28226.jhb@freebsd.org> X-Virus-Scanned: ClamAV 0.87.1/1229/Wed Jan 4 10:08:11 2006 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-1.4 required=4.2 tests=ALL_TRUSTED autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on server.baldwin.cx X-Server: High Performance Mail Server - http://surgemail.com r=1653887525 Cc: Subject: Re: i386/89545: Compaq DL 360 ACPI boot problem X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jan 2006 18:15:08 -0000 On Wednesday 04 January 2006 11:40 am, Anders Nordby wrote: > The following reply was made to PR i386/89545; it has been noted by GNATS. > > From: Anders Nordby > To: John Baldwin > Cc: bug-followup@freebsd.org, uralmetal@gmail.com > Subject: Re: i386/89545: Compaq DL 360 ACPI boot problem > Date: Wed, 4 Jan 2006 17:36:21 +0100 > > --ikeVEW9yuYc//A+q > Content-Type: text/plain; charset=3Diso-8859-1 > Content-Disposition: inline > Content-Transfer-Encoding: 8bit > > Hi, > > On Tue, Jan 03, 2006 at 05:06:26PM -0500, John Baldwin wrote: > > It does reference 'FAKE' in one of the _PRT entries sadly. You can try > > removing it and compiling a custom dsdt to work around it. You could > > also beat up Compaq for the crap BIOS. Do these machines have APICs on > > them? They'd probably be a lot happier with APIC enabled if so. > > > > Package (0x04) > > { > > 0x0004FFFF, > > 0x00, > > FAKE, > > 0x00 > > }, > > I removed the section above, but if fails to compile: > > root@anderstest:~# iasl anderstest.asl-fixed > > Intel ACPI Component Architecture > ASL Optimizing Compiler / AML Disassembler version 20041119 [Dec 31 > 2005] > Copyright (C) 2000 - 2004 Intel Corporation > Supports ACPI Specification Revision 2.0c > > Non-ASCII character: 0xD2 at offset 0xBB > Non-ASCII character: 0xD2 at offset 0x189 > Non-ASCII character: 0xD2 at offset 0x7B3 > 3 non-ASCII characters found in input file, appears to be binary > Error 1082 - Invalid characters found in file anderstest.asl-fixed > > In the ASL, there is 0xD2 which is =D2, used for Creator ID in the RSDT, > FACP and SPCR sections. I changed that to just ASL like it looks like on > my Dell laptop (Creator ID=3DASL). Then I can compile. Booting with the > custom dsdt, I get a page fault. Log attached. > > I will check to see if I can change anything useful in the BIOS > tomorrow, but I doubt it. :-/ Hmm, ok. I'd really need to know what source file:line that page fault map= s=20 to (you can use gdb to find that if you have a kernel.debug). OTOH, you ca= n=20 also try this patch which just prints a warning for bogus _PRT entries when= =20 we bump reference counts and only panics if we actually try to route an=20 interrupt via the busted link device. You can try this w/o the custom DSDT. Index: acpi_pci_link.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /usr/cvs/src/sys/dev/acpica/acpi_pci_link.c,v retrieving revision 1.51 diff -u -r1.51 acpi_pci_link.c =2D-- acpi_pci_link.c 5 Dec 2005 19:50:00 -0000 1.51 +++ acpi_pci_link.c 4 Jan 2006 18:07:17 -0000 @@ -625,8 +625,11 @@ /* Bump the reference count. */ ACPI_SERIAL_BEGIN(pci_link); link =3D acpi_pci_link_lookup(dev, index); =2D if (link =3D=3D NULL) =2D panic("%s: apparently invalid index %d", __func__, index); + if (link =3D=3D NULL) { + device_printf(dev, "apparently invalid index %d\n", index); + ACPI_SERIAL_END(pci_link); + return; + } link->l_references++; if (link->l_routed) pci_link_interrupt_weights[link->l_irq]++; > Fatal trap 12: page fault while in kernel mode > cpuid =3D 0; apic id =3D 00 > fault virtual address =3D 0x1c > fault code =3D supervisor read, page not present > instruction pointer =3D 0x20:0xc0a6d69d Do a 'l *0xc0a6d69d' in 'gdb kernel.debug' if you can to see what this=20 corresponds to. =2D-=20 John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" =3D http://www.FreeBSD.org