kern/124564: add CPUID bits to ident phenom processor
pluknet
pluknet at gmail.com
Fri Jun 13 22:10:01 UTC 2008
>Number: 124564
>Category: kern
>Synopsis: add CPUID bits to ident phenom processor
>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: Fri Jun 13 22:10:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: pluknet
>Release: 8.0-CURRENT
>Organization:
n/a
>Environment:
FreeBSD 8.0-CURRENT #6: Wed Apr 30 00:29:35 MSD 2008
>Description:
There are several new CPUIDs to recognize AMD Extended Features, ECX 07FFh for Phenom processor.
According to [1], they are:
Bit 0: LAHF/SAHF
Bit 1: CMP
Bit 2: SVM (Secure Virtual Mode)
Bit 3: APIC
Bit 4: MOV CR8
*Bit 5: Advanced Bit Manipulation (LZCNT)
*Bit 6: SSE4A (EXTRQ, INSERTQ, MOVNTSS, MOVNTSD)
*Bit 7: Misalign SSE
Bit 8: 3DNow! (PREFETCH и PREFTECHW)
*Bit 9: OS Visible Workaround
*Bit 10: Instruction Based Sampling
* - missing bits in amd64/identcpu.c
[1]http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.pdf
>How-To-Repeat:
Look at "AMD Features2" in dmesg.
>Fix:
Apply the patch.
Patch attached with submission follows:
--- identcpu.c.orig 2008-06-14 01:45:28.000000000 +0400
+++ identcpu.c 2008-06-14 02:04:48.000000000 +0400
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/amd64/amd64/identcpu.c,v 1.159 2008/05/23 04:03:52 alc Exp $");
+__FBSDID("$FreeBSD$");
#include "opt_cpu.h"
@@ -263,6 +263,9 @@
* General-Purpose and System Instructions
* http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24594.pdf
*
+ * BIOS and Kernel Developer's Guide (BKDG) For AMD Family 10h Processors
+ * http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/31116.pdf
+ *
* IA-32 Intel Architecture Software Developer's Manual,
* Volume 2A: Instruction Set Reference, A-M
* ftp://download.intel.com/design/Pentium4/manuals/25366617.pdf
@@ -313,12 +316,12 @@
"\003SVM" /* Secure Virtual Mode */
"\004ExtAPIC" /* Extended APIC register */
"\005CR8" /* CR8 in legacy mode */
- "\006<b5>"
- "\007<b6>"
- "\010<b7>"
+ "\006ABM" /* LZCNT Instruction */
+ "\007SSE4A" /* SSE4A Instructions */
+ "\010MisAlign" /* Misaligned SSE Mode */
"\011Prefetch" /* 3DNow! Prefetch/PrefetchW */
- "\012<b9>"
- "\013<b10>"
+ "\012OSVW" /* OS Visible Work-around */
+ "\013IBS" /* Instruction Based Sampling */
"\014<b11>"
"\015<b12>"
"\016<b13>"
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list