Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jul 1999 17:03:58 -0400 (EDT)
From:      Louis Mamakos <louie@TransSys.COM>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/12512: additional support for K6-III CPU information messages
Message-ID:  <199907042103.RAA00630@whizzo.transsys.com>

next in thread | raw e-mail | index | archive | help

>Number:         12512
>Category:       kern
>Synopsis:       additional support for K6-III CPU information messages
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jul  4 14:10:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Louis Mamakos
>Release:        FreeBSD 4.0-CURRENT i386
>Organization:
>Environment:

	K6-III CPU

>Description:

	Wonder if they *really* sold you a K6-III CPU, and not some
	other weird thing?

	Add support to print_AMD_info to display L2 cache information
	for AMD K6-III CPU.  Additionally, display K6-model-specific
	capabilities.

>How-To-Repeat:

	dmesg now produces

CPU: AMD-K6(tm) 3D+ Processor (450.92-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x591  Stepping=1
  Features=0x8021bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,PGE,MMX>
AMD Extended Features=0x808029bf<FPU,VME,DE,PSE,TSC,K6MSR,MCE,CX8,SYSCALL,PGE,MMX,3DNow!>
Data TLB: 128 entries, 2-way associative
Instruction TLB: 64 entries, 1-way associative
L1 data cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative
L1 instruction cache: 32 kbytes, 32 bytes/line, 2 lines/tag, 2-way associative
L2 (on-CPU) cache: 256 kbytes, 32 bytes/line, 2 lines/tag, 4-way associative
Write Allocate Enable Limit: 128M bytes
Write Allocate 15-16M bytes: Enable


>Fix:

Index: sys/i386/i386/identcpu.c
===================================================================
RCS file: /usr/local/FreeBSD/cvs/src/sys/i386/i386/identcpu.c,v
retrieving revision 1.65
diff -u -r1.65 identcpu.c
--- identcpu.c	1999/06/24 20:08:56	1.65
+++ identcpu.c	1999/07/04 20:51:54
@@ -295,6 +295,9 @@
 		case 0x580:
 			strcat(cpu_model, "K6-2");
 			break;
+		case 0x590:
+			strcat(cpu_model, "K6-III");
+			break;
 		default:
 			strcat(cpu_model, "Unknown");
 			break;
@@ -866,11 +869,52 @@
 static void
 print_AMD_info(void)
 {
-	u_int regs[4];
+	u_int regs[4], amd_maxregs;
 	quad_t amd_whcr;
 
 	do_cpuid(0x80000000, regs);
-	if (regs[0] >= 0x80000005) {
+	amd_maxregs = regs[0];
+
+	if (amd_maxregs >= 0x80000001) {
+		do_cpuid(0x80000001, regs);
+		printf("AMD Extended Features=0x%b\n", regs[3],
+		       "\020"		/* in hex */
+		       "\001FPU"
+		       "\002VME"
+		       "\003DE"
+		       "\004PSE"
+		       "\005TSC"
+		       "\006K6MSR"
+		       "\007b6"
+		       "\010MCE"
+		       "\011CX8"
+		       "\012b9"
+		       "\013b10"
+		       "\014SYSCALL"
+		       "\015b12"
+		       "\016PGE"
+		       "\017b14"
+		       "\020ICMOV"
+		       "\021FCMOV"
+		       "\022b17"
+		       "\023b18"
+		       "\024b19"
+		       "\025b20"
+		       "\026b21"
+		       "\027b22"
+		       "\030MMX"
+		       "\031b24"
+		       "\032b25"
+		       "\033b26"
+		       "\034b27"
+		       "\035b28"
+		       "\036b29"
+		       "\037b30"
+		       "\0403DNow!"
+		       );
+	}
+
+	if (amd_maxregs >= 0x80000005) {
 		do_cpuid(0x80000005, regs);
 		printf("Data TLB: %d entries", (regs[1] >> 16) & 0xff);
 		print_AMD_assoc(regs[1] >> 24);
@@ -884,6 +928,15 @@
 		printf(", %d bytes/line", regs[3] & 0xff);
 		printf(", %d lines/tag", (regs[3] >> 8) & 0xff);
 		print_AMD_assoc((regs[3] >> 16) & 0xff);
+
+		/* check for K6-III on-board L2 cache */
+		if (amd_maxregs >= 0x80000006) {
+			do_cpuid(0x80000006, regs);
+			printf("L2 (on-CPU) cache: %d kbytes", regs[2] >> 16);
+			printf(", %d bytes/line", regs[2] & 0xff);
+			printf(", %d lines/tag", (regs[2] >> 8) & 0x0f);
+			print_AMD_assoc((regs[2] >> 12) & 0x0f);
+		}
 	}
 	if (((cpu_id & 0xf00) == 0x500)
 	    && (((cpu_id & 0x0f0) > 0x80)


>Release-Note:
>Audit-Trail:
>Unformatted:


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?199907042103.RAA00630>