i386/106850: powernow0 attach returned 6
David Malone
dwmalone at maths.tcd.ie
Sat Mar 29 12:20:05 PDT 2008
The following reply was made to PR i386/106850; it has been noted by GNATS.
From: David Malone <dwmalone at maths.tcd.ie>
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: i386/106850: powernow0 attach returned 6
Date: Sat, 29 Mar 2008 17:43:39 +0000
I see the same thing on a machine that reports a similar BIOS:
ACPI APIC Table: <VIAK8 AWRDACPI>
I made the patch below to the driver to see what was going on.
When I do this, it says:
cpu0: <ACPI CPU> on acpi0
powernow0: <Cool`n'Quiet K8> on cpu0
powernow0: STATUS: 0x20200101010
powernow0: STATUS: maxfid: 0x10
powernow0: STATUS: maxvid: 0x00
sig 0
after pn_decode_pst rv = 19
device_attach: powernow0 attach returned 6
This suggests that the driver has failed to find the tables it needs
in either the BIOS or ACPI. When I check, there is no _PSS entry
in my ACPI tables, so the acpi_perf driver never attaches. I would
guess that this is the real problem.
David.
Index: powernow.c
===================================================================
RCS file: /cvs/FreeBSD-CVS/src/sys/i386/cpufreq/powernow.c,v
retrieving revision 1.4
diff -u -r1.4 powernow.c
--- powernow.c 23 Jan 2007 19:20:30 -0000 1.4
+++ powernow.c 27 Jan 2007 17:42:17 -0000
@@ -673,7 +673,7 @@
return (ENODEV);
}
- if (bootverbose) {
+ if (1 || bootverbose) {
return (ENODEV);
@@ -704,7 +706,7 @@
sc->irt = PN8_PSB_TO_IRT(psb->res1),
sc->mvs = PN8_PSB_TO_MVS(psb->res1),
sc->low = PN8_PSB_TO_BATT(psb->res1);
- if (bootverbose) {
+ if (1 || bootverbose) {
device_printf(dev, "PSB: VST: %d\n",
psb->settlingtime);
device_printf(dev, "PSB: RVO %x IRT %d "
@@ -968,10 +970,12 @@
child = device_find_child(device_get_parent(dev), "acpi_perf", -1);
if (child) {
rv = pn_decode_acpi(dev, child);
+ printf("if (child) rv = %d\n", rv);
if (rv)
rv = pn_decode_pst(dev);
} else
rv = pn_decode_pst(dev);
+ printf("after pn_decode_pst rv = %d\n", rv);
if (rv != 0)
return (ENXIO);
More information about the freebsd-i386
mailing list