Date: Wed, 02 Feb 2000 17:55:38 +0900 From: KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp> To: FreeBSD-bugs@FreeBSD.ORG Cc: issei@jp.FreeBSD.ORG, pille@chillout.org, phiber@udel.edu, john@vapornet.net Subject: PentiumII/III/Celeron/Xeon identification Message-ID: <20000202175538Z.kato@gneiss.eps.nagoya-u.ac.jp>
next in thread | raw e-mail | index | archive | help
(This mail is CC'ed to originators of PR/8751, 9320, 9463 and 9530) I have reviewed PRs on PentiumII class CPU recognition. The main problems in current code are: - Celeron whose model is 6 is not `recognized.' - PentiumIII will not be `recognized.' (`not recognized' is incorrect. Those CPUs are correctly recognized as 686-class CPU.) If a kernel says "Unknown", someone could misunderstand that FreeBSD doesn't support his/her CPU. So, I think kernel should display suitable CPU name at start up if kernel displays it. For correct identification of 686-class CPUs' name, we must obtain L2 cache size (c.f. Intel Processor Identification and the CPUID Instruction: 241618). Even though L2 cache size is tested, we could not distinguish PentiumII Xeon w/ 512KB cache from PentiumII. I think we do not need to test L2 cache size in kernel: just displaying "PentiumII/Xeon/Celeron" is enough information. Details has been shown by BIOS before kernel starts :-). Following patch can identify all PentiumII/Xeon/Celeron CPUs and PentiumIII CPU. Because PentiumIII has bit 25 of cpu feature, I added CPU_PIII. ---------- BEGIN ---------- *** i386/i386/identcpu.c.ORIG Tue Feb 2 12:29:18 1999 --- i386/i386/identcpu.c Tue Feb 2 13:00:37 1999 *************** *** 99,104 **** --- 99,105 ---- { "NexGen 586", CPUCLASS_386 }, /* CPU_NX586 (XXX) */ { "Cyrix 486S/DX", CPUCLASS_486 }, /* CPU_CY486DX */ { "Pentium II", CPUCLASS_686 }, /* CPU_PII */ + { "Pentium III", CPUCLASS_686 }, /* CPU_PIII */ }; static void *************** *** 199,206 **** cpu = CPU_PII; break; case 0x50: ! strcat(cpu_model, "Pentium II (quarter-micron)"); cpu = CPU_PII; break; default: strcat(cpu_model, "Unknown 80686"); --- 200,216 ---- cpu = CPU_PII; break; case 0x50: ! strcat(cpu_model, ! "Pentium II(0.25 micron)/Xeon/Celeron") cpu = CPU_PII; + break; + case 0x60: + strcat(cpu_model, "Celeron"); + cpu = CPU_PII; + break; + case 0x70: + strcat(cpu_model, "Pentium III"); + cpu = CPU_PIII; break; default: strcat(cpu_model, "Unknown 80686"); *** i386/include/cputypes.h.ORIG Tue Feb 2 13:00:12 1999 --- i386/include/cputypes.h Tue Feb 2 13:41:06 1999 *************** *** 56,62 **** #define CPU_M2 11 /* Cyrix M2 (aka enhanced 6x86 with MMX */ #define CPU_NX586 12 /* NexGen (now AMD) 586 */ #define CPU_CY486DX 13 /* Cyrix 486S/DX/DX2/DX4 */ ! #define CPU_PII 14 /* Intel Pentium II */ #ifndef LOCORE struct cpu_nameclass { --- 56,63 ---- #define CPU_M2 11 /* Cyrix M2 (aka enhanced 6x86 with MMX */ #define CPU_NX586 12 /* NexGen (now AMD) 586 */ #define CPU_CY486DX 13 /* Cyrix 486S/DX/DX2/DX4 */ ! #define CPU_PII 14 /* Intel Pentium II */ ! #define CPU_PIII 15 /* Intel Pentium III */ #ifndef LOCORE struct cpu_nameclass { ---------- END ---------- -----------------------------------------------+--------------------------+ KATO Takenori <kato@ganko.eps.nagoya-u.ac.jp> | FreeBSD | Dept. Earth Planet. Sci, Nagoya Univ. | The power to serve! | Nagoya, 464-8602, Japan | http://www.FreeBSD.org/ | ++++ FreeBSD(98) 3.0: Rev. 02 available! |http://www.jp.FreeBSD.org/| ++++ FreeBSD(98) 2.2.8: Rev. 01 available! +==========================+ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000202175538Z.kato>