--- a/usr/src/uts/i86pc/os/cpuid_subr.c Tue Sep 15 16:03:59 2009 -0700
+++ b/usr/src/uts/i86pc/os/cpuid_subr.c Tue Sep 15 18:44:23 2009 -0700
@@ -67,36 +67,48 @@
* Second index by (model & 0x3) for family 0fh
* or CPUID bits for later families
*/
-static uint32_t amd_skts[4][4] = {
+static uint32_t amd_skts[4][8] = {
/*
* Family 0xf revisions B through E
*/
#define A_SKTS_0 0
{
- X86_SOCKET_754, /* 0b00 */
- X86_SOCKET_940, /* 0b01 */
- X86_SOCKET_754, /* 0b10 */
- X86_SOCKET_939 /* 0b11 */
+ X86_SOCKET_754, /* 0b000 */
+ X86_SOCKET_940, /* 0b001 */
+ X86_SOCKET_754, /* 0b010 */
+ X86_SOCKET_939, /* 0b011 */
+ X86_SOCKET_UNKNOWN, /* 0b100 */
+ X86_SOCKET_UNKNOWN, /* 0b101 */
+ X86_SOCKET_UNKNOWN, /* 0b110 */
+ X86_SOCKET_UNKNOWN /* 0b111 */
},
/*
* Family 0xf revisions F and G
*/
#define A_SKTS_1 1
{
- X86_SOCKET_S1g1, /* 0b00 */
- X86_SOCKET_F1207, /* 0b01 */
- X86_SOCKET_UNKNOWN, /* 0b10 */
- X86_SOCKET_AM2 /* 0b11 */
+ X86_SOCKET_S1g1, /* 0b000 */
+ X86_SOCKET_F1207, /* 0b001 */
+ X86_SOCKET_UNKNOWN, /* 0b010 */
+ X86_SOCKET_AM2, /* 0b011 */
+ X86_SOCKET_UNKNOWN, /* 0b100 */
+ X86_SOCKET_UNKNOWN, /* 0b101 */
+ X86_SOCKET_UNKNOWN, /* 0b110 */
+ X86_SOCKET_UNKNOWN /* 0b111 */
},
/*
* Family 0x10
*/
#define A_SKTS_2 2
{
- X86_SOCKET_F1207, /* 0b00 */
- X86_SOCKET_AM, /* 0b01 */
- X86_SOCKET_S1g3, /* 0b10 */
- X86_SOCKET_G34, /* 0b11 */
+ X86_SOCKET_F1207, /* 0b000 */
+ X86_SOCKET_AM, /* 0b001 */
+ X86_SOCKET_S1g3, /* 0b010 */
+ X86_SOCKET_G34, /* 0b011 */
+ X86_SOCKET_ASB2, /* 0b100 */
+ X86_SOCKET_C32, /* 0b101 */
+ X86_SOCKET_UNKNOWN, /* 0b110 */
+ X86_SOCKET_UNKNOWN /* 0b111 */
},
/*
@@ -104,10 +116,14 @@
*/
#define A_SKTS_3 3
{
- X86_SOCKET_UNKNOWN, /* 0b00 */
- X86_SOCKET_UNKNOWN, /* 0b01 */
- X86_SOCKET_S1g2, /* 0b10 */
- X86_SOCKET_UNKNOWN, /* 0b11 */
+ X86_SOCKET_UNKNOWN, /* 0b000 */
+ X86_SOCKET_UNKNOWN, /* 0b001 */
+ X86_SOCKET_S1g2, /* 0b010 */
+ X86_SOCKET_UNKNOWN, /* 0b011 */
+ X86_SOCKET_UNKNOWN, /* 0b100 */
+ X86_SOCKET_UNKNOWN, /* 0b101 */
+ X86_SOCKET_UNKNOWN, /* 0b110 */
+ X86_SOCKET_UNKNOWN /* 0b111 */
}
};
@@ -115,7 +131,7 @@
uint32_t skt_code;
char sktstr[16];
};
-static struct amd_sktmap_s amd_sktmap[13] = {
+static struct amd_sktmap_s amd_sktmap[15] = {
{ X86_SOCKET_754, "754" },
{ X86_SOCKET_939, "939" },
{ X86_SOCKET_940, "940" },
@@ -128,6 +144,8 @@
{ X86_SOCKET_AM2R2, "AM2r2" },
{ X86_SOCKET_AM3, "AM3" },
{ X86_SOCKET_G34, "G34" },
+ { X86_SOCKET_ASB2, "ASB2" },
+ { X86_SOCKET_C32, "C32" },
{ X86_SOCKET_UNKNOWN, "Unknown" }
};
@@ -277,7 +295,7 @@
/* PkgType bits */
idx = BITX(cp.cp_ebx, 31, 28);
- if (idx > 3) {
+ if (idx > 7) {
/* Reserved bits */
*skt_p = X86_SOCKET_UNKNOWN;
} else if (family == 0x10 &&
--- a/usr/src/uts/intel/sys/x86_archext.h Tue Sep 15 16:03:59 2009 -0700
+++ b/usr/src/uts/intel/sys/x86_archext.h Tue Sep 15 18:44:23 2009 -0700
@@ -550,6 +550,8 @@
#define X86_SOCKET_AM2R2 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x000200)
#define X86_SOCKET_AM3 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x000400)
#define X86_SOCKET_G34 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x000800)
+#define X86_SOCKET_ASB2 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x001000)
+#define X86_SOCKET_C32 _X86_SOCKET_MKVAL(X86_VENDOR_AMD, 0x002000)
#if !defined(_ASM)