>> > Updated to powernow.h:1.9 and
powernow_k8.c:1.17, but no change as far
>> > as I can tell. sysctl -w
machdep.powernow.target=1000, and
>> > immediately the machine shuts down itself, no
ddb, no message, just
>> > power off.
Reading through the code,
In WRITE_FIDVID macro of powernow_k8.c:1.17 , mcb.msr_read
is not
initialized. Clearing mcb.msr_read fixes the crash problem.
Though I
haven't tried multiprocessor yet.
Also, WRITE_FIDVID broadcasts to each processor, but
READ_PENDING_WAIT
is not, which looks iffy.
FUKUMOTO Atsushi
fukumoto imasy.or.jp
Index: powernow_k8.c
============================================================
=======
RCS file: /cvsroot/src/sys/arch/x86/x86/powernow_k8.c,v
retrieving revision 1.17
diff -u -u -r1.17 powernow_k8.c
--- powernow_k8.c 24 Mar 2007 15:35:15 -0000 1.17
+++ powernow_k8.c 31 Mar 2007 10:36:37 -0000
 -86,6
+86,7 
#include <machine/bus.h>
#define WRITE_FIDVID(fid, vid, ctrl)
+ mcb.msr_read = 0;
mcb.msr_value = (((ctrl) << 32) | (1ULL << 16)
| ((vid) << 8) | (fid));
mcb.msr_type = MSR_AMDK7_FIDVID_CTL;
msr_cpu_broadcast(&mcb);
|