On Monday 14 June 2004 11:12 am, M. Warner Losh wrote: > In message: <20040613220241.N17008_at_root.org> > > Nate Lawson <nate_at_root.org> writes: > : 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. > : > > : > Changes include: > : > * Add ordering to the child device probe. The current order is: > : > system resource objects, embedded controllers, then everything else. * > : > Make acpi_MatchHid take a handle instead of a device_t arg. * Replace > : > acpi_{get,set}_resource with the generic equivalents. > : > > : > Revision Changes Path > : > 1.159 +137 -52 src/sys/dev/acpica/acpi.c > : > 1.27 +1 -1 src/sys/dev/acpica/acpi_acad.c > : > 1.27 +6 -4 src/sys/dev/acpica/acpi_button.c > : > 1.30 +2 -2 src/sys/dev/acpica/acpi_cmbat.c > : > 1.52 +1 -1 src/sys/dev/acpica/acpi_ec.c > : > 1.8 +3 -1 src/sys/dev/acpica/acpi_isab.c > : > 1.23 +1 -1 src/sys/dev/acpica/acpi_lid.c > : > 1.35 +1 -1 src/sys/dev/acpica/acpi_pcib_acpi.c > : > 1.25 +91 -37 src/sys/dev/acpica/acpi_resource.c > : > 1.71 +3 -1 src/sys/dev/acpica/acpivar.h > : > : 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: <PNP0c01> can't assign resources (memory) > : unknown: <PNP0303> can't assign resources (port) > : unknown: <PNP0c02> can't assign resources (port) > : unknown: <INT0800> can't assign resources (memory) > : unknown: <PNP0c02> can't assign resources (memory) > : unknown: <IBM3780> can't assign resources (irq) > : unknown: <PNP0501> can't assign resources (port) > : unknown: <IBM0071> can't assign resources (port) > : unknown: <PNP0400> 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. -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.orgReceived on Mon Jun 14 2004 - 18:50:12 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:57 UTC