aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2011-03-10 22:20:11 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2011-03-10 22:20:11 +0000
commitcf0d2bb216f52ee02381ececdf55fe91ab1a6bc0 (patch)
tree6dddc9af4fb1ccdbd642fbf209ba9e08aa713d18 /sys
parent7ab5d0983977c60a1d8cc3100270cf3cf00269ba (diff)
downloadsrc-cf0d2bb216f52ee02381ececdf55fe91ab1a6bc0.tar.gz
src-cf0d2bb216f52ee02381ececdf55fe91ab1a6bc0.zip
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.
Notes
Notes: svn path=/head/; revision=219467
Diffstat (limited to 'sys')
-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 cb923b5e77d9..e1b64765a7c3 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");