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