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>
