Skip site navigation (1)Skip section navigation (2)
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>