diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2011-03-10 22:20:11 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2011-03-10 22:20:11 +0000 |
commit | cf0d2bb216f52ee02381ececdf55fe91ab1a6bc0 (patch) | |
tree | 6dddc9af4fb1ccdbd642fbf209ba9e08aa713d18 /sys | |
parent | 7ab5d0983977c60a1d8cc3100270cf3cf00269ba (diff) | |
download | src-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.c | 5 |
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"); |