summaryrefslogtreecommitdiffstats
path: root/sys/i386/i386/identcpu.c
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2009-01-22 21:04:46 +0000
committerjkim <jkim@FreeBSD.org>2009-01-22 21:04:46 +0000
commit1e8881cf5443d3d5876679aeedef41cc645be7e9 (patch)
treec668daa23ec7f65643c7e0635b0e88f9909c8fc6 /sys/i386/i386/identcpu.c
parenta9b956502b7f41aed7e51418589d1735787fd0bb (diff)
downloadFreeBSD-src-1e8881cf5443d3d5876679aeedef41cc645be7e9.zip
FreeBSD-src-1e8881cf5443d3d5876679aeedef41cc645be7e9.tar.gz
VIA Nano processor has a special MSR (CENT_HARDWARECTRL3) bit 32 to determine
whether TSC is P-state invariant or not. In fact, this MSR is writable but we just leave it at the BIOS default for now.
Diffstat (limited to 'sys/i386/i386/identcpu.c')
-rw-r--r--sys/i386/i386/identcpu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/i386/identcpu.c b/sys/i386/i386/identcpu.c
index aa37776..d2a0292 100644
--- a/sys/i386/i386/identcpu.c
+++ b/sys/i386/i386/identcpu.c
@@ -887,7 +887,8 @@ printcpuinfo(void)
break;
case CPU_VENDOR_CENTAUR:
if (I386_CPU_FAMILY(cpu_id) == 0x6 &&
- I386_CPU_MODEL(cpu_id) >= 0xf)
+ I386_CPU_MODEL(cpu_id) >= 0xf &&
+ (rdmsr(0x1203) & 0x100000000ULL) == 0)
tsc_is_invariant = 1;
break;
}
OpenPOWER on IntegriCloud