From owner-freebsd-current@FreeBSD.ORG Mon Jun 14 21:17:15 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EF25216A4CE for ; Mon, 14 Jun 2004 21:17:14 +0000 (GMT) Received: from root.org (root.org [67.118.192.226]) by mx1.FreeBSD.org (Postfix) with SMTP id A202043D39 for ; Mon, 14 Jun 2004 21:17:14 +0000 (GMT) (envelope-from nate@root.org) Received: (qmail 22100 invoked by uid 1000); 14 Jun 2004 21:16:27 -0000 Date: Mon, 14 Jun 2004 14:16:27 -0700 (PDT) From: Nate Lawson To: John Baldwin In-Reply-To: <200406141650.32570.jhb@FreeBSD.org> Message-ID: <20040614140229.R22057@root.org> References: <20040613225307.8238716A4D4@hub.freebsd.org> <20040613220241.N17008@root.org><200406141650.32570.jhb@FreeBSD.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: current@FreeBSD.org cc: "M. Warner Losh" Subject: Re: cvs commit: src/sys/dev/acpica acpi.c acpi_acad.c acpi_button.c acpi_resource.c acpivar.h X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Jun 2004 21:17:15 -0000 On Mon, 14 Jun 2004, John Baldwin wrote: > On Monday 14 June 2004 11:12 am, M. Warner Losh wrote: > > : On Sun, 13 Jun 2004, Nate Lawson wrote: > > : > Modified files: > > : > sys/dev/acpica acpi.c acpi_acad.c acpi_button.c > > : > acpi_cmbat.c acpi_ec.c acpi_isab.c > > : > acpi_lid.c acpi_pcib_acpi.c > > : > acpi_resource.c acpivar.h > > : > Log: > > : > Add support to ACPI to manage its own resources. Previously, > > : > resource allocation was passed up to nexus. Now, we probe sysresource > > : > objects and manage the resources they describe in a local rman pool. > > : > This helps devices which attach/detach varying resources (like the _CST > > : > object) and module loads/unloads. The allocation/release routines now > > : > check to see if the resource is described in a child sysresource object > > : > and if so, allocate from the local rman. Sysresource objects add their > > : > resources to the pool and reserve them upon boot. This means > > : > sysresources need to be probed before other ACPI devices. > > : > > : This has been tested for a little while but may cause some problems. On > > : my laptop, all devices work as before but I get this new output: > > : > > : unknown: can't assign resources (memory) > > : unknown: can't assign resources (port) > > : unknown: can't assign resources (port) > > : unknown: can't assign resources (memory) > > : unknown: can't assign resources (memory) > > : unknown: can't assign resources (irq) > > : unknown: can't assign resources (port) > > : unknown: can't assign resources (port) > > : unknown: can't assign resources (port) > > : > > : These messages are wrong since the associated devices have already gotten > > : their resources. For instance, IBM3780 (psm0) has successfully gotten > > : irq 12 so PnP ISA shouldn't be trying to probe it. Here devinfo -r shows > > : that it's fine: > > : > > : psm0 > > : Interrupt request lines: > > : 0xc > > : > > : Perhaps someone more knowledgable with the isa code can help figure this > > : out. > > > > I'll take a look as soon as I upgrade my laptop past these changes. > > This is the possible suspect: > > jhb 2004-06-10 20:43:04 UTC > > FreeBSD src repository > > Modified files: > sys/i386/acpica acpi_machdep.c > sys/i386/i386 bios.c > sys/i386/include/pc bios.h > Log: > - Use the correct devclass name ("acpi" vs "ACPI") to detect if acpi0 is > present and thus that the PnPBIOS probe should be skipped instead of > having ACPI zero out the PnPBIOStable pointer. > - Make the PnPBIOStable pointer static to i386/i386/bios.c now that that is > the only place it is used. > > Revision Changes Path > 1.21 +0 -6 src/sys/i386/acpica/acpi_machdep.c > 1.67 +3 -2 src/sys/i386/i386/bios.c > 1.17 +0 -1 src/sys/i386/include/pc/bios.h > > Note that it worked fine in my tests. The devices you see are PnPBIOS devices > so it seems the PnPBIOS device isn't properly bailing before adding new > devices. I'd try to make sure the code in bios.c does see the acpi0 device > and return. Ah. Yes, that explains why I didn't see these warnings in my earlier testing but once I merged in changes from -current and finalized testing, they appeared. I can't see how this check can work. It's in the identify method and acpi attaches its root device in an identify method. So you can't be sure that one runs before the other. Additionally, getting the softc is unnecessary. The devclass_find() != NULL check should be sufficient. -Nate