summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2011-03-10 22:20:11 +0000
committerjkim <jkim@FreeBSD.org>2011-03-10 22:20:11 +0000
commit4d0b0c3ea7c6b84879b05b6bc1451da875585865 (patch)
tree6dddc9af4fb1ccdbd642fbf209ba9e08aa713d18 /sys/i386
parentf132b5f04d08a6d87e6c021802b3f2f5712c48ca (diff)
downloadFreeBSD-src-4d0b0c3ea7c6b84879b05b6bc1451da875585865.zip
FreeBSD-src-4d0b0c3ea7c6b84879b05b6bc1451da875585865.tar.gz
Detect NSC/AMD Geode SC1100 properly, not just Stepping 0. Although it is
unclear that "TSC stops ticking with HLT instruction" problem is present with other steppings, it is limited to Stepping 0 for now.
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/identcpu.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/i386/i386/identcpu.c b/sys/i386/i386/identcpu.c
index cb923b5..e1b6476 100644
--- a/sys/i386/i386/identcpu.c
+++ b/sys/i386/i386/identcpu.c
@@ -603,11 +603,12 @@ printcpuinfo(void)
} else if (cpu_vendor_id == CPU_VENDOR_IBM) {
strcpy(cpu_model, "Blue Lightning CPU");
} else if (cpu_vendor_id == CPU_VENDOR_NSC) {
- switch (cpu_id & 0xfff) {
+ switch (cpu_id & 0xff0) {
case 0x540:
strcpy(cpu_model, "Geode SC1100");
cpu = CPU_GEODE1100;
- tsc_freq = 0;
+ if ((cpu_id & CPUID_STEPPING) == 0)
+ tsc_freq = 0;
break;
default:
strcpy(cpu_model, "Geode/NSC unknown");
OpenPOWER on IntegriCloud