summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Herrmann <andreas.herrmann3@amd.com>2012-01-05 19:22:05 +0100
committerDave Jones <davej@redhat.com>2012-04-13 16:25:17 -0400
commita34d5572f15c6e5071bc48f9a587c4c764ce3eea (patch)
tree90b23f7528a6e3101e5e636028a7203f1450095e
parent556599c4dac5c87a31126f42d38d7b7ec29f105e (diff)
x86info: Add support for AMD family 15h models 10h-1fh processors
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
-rw-r--r--AMD/identify.c18
-rw-r--r--AMD/powernow.c4
-rw-r--r--connector.c3
-rw-r--r--features.c2
-rw-r--r--x86info.h3
5 files changed, 26 insertions, 4 deletions
diff --git a/AMD/identify.c b/AMD/identify.c
index a80793e..376957c 100644
--- a/AMD/identify.c
+++ b/AMD/identify.c
@@ -91,7 +91,9 @@ static void set_connector(struct cpudata *c)
cpuid(c->number, 0x80000001, &eax, &ebx, &ecx, &edx);
pkg_id = (ebx >> 28) & 0xf;
- if ((family(c) == 0x10) || (family(c) == 0x11) || (family(c) == 0x15)) {
+
+ if ((family(c) == 0x10) || (family(c) == 0x11) ||
+ ((family(c) == 0x15) && (model(c) <= 0xf))) {
switch (pkg_id) {
case 0:
c->connector = CONN_SOCKET_F_R2;
@@ -114,6 +116,20 @@ static void set_connector(struct cpudata *c)
default:
c->connector = 0;
}
+ } else if ((family(c) == 0x15) && (model(c) <= 0x1f)) {
+ switch (pkg_id) {
+ case 0:
+ c->connector = CONN_SOCKET_FP2;
+ break;
+ case 1:
+ c->connector = CONN_SOCKET_FS1r2;
+ break;
+ case 2:
+ c->connector = CONN_SOCKET_FM2;
+ break;
+ default:
+ c->connector = 0;
+ }
} else if(family(c) == 0x12) {
switch (pkg_id) {
case 0:
diff --git a/AMD/powernow.c b/AMD/powernow.c
index 4ce2b89..73fed2c 100644
--- a/AMD/powernow.c
+++ b/AMD/powernow.c
@@ -218,7 +218,7 @@ static int get_cof(int family, union msr_pstate pstate)
static int get_num_boost_states(void)
{
struct pci_filter filter_nb_link = { -1, -1, -1, -1, 0x1022, 0};
- int dev_ids[3] = {0x1204, 0x1604, 0x1704};
+ int dev_ids[4] = {0x1204, 0x1404, 0x1604, 0x1704};
struct pci_access *pacc;
struct pci_dev *z = NULL;
u8 val;
@@ -341,7 +341,7 @@ void decode_powernow(struct cpudata *cpu)
has_cpb = 1;
}
if (edx & (1<<10))
- printf("\n\read-only Effective Frequency Interface");
+ printf("\n\tread-only Effective Frequency Interface");
if (!(edx & 0x1ff))
printf(" None");
diff --git a/connector.c b/connector.c
index b8d221d..4bd8b79 100644
--- a/connector.c
+++ b/connector.c
@@ -43,6 +43,9 @@ static struct {
{CONN_SOCKET_FS1, "Socket FS1"},
{CONN_SOCKET_FM1, "Socket FM1"},
{CONN_SOCKET_FT1, "Socket FT1"},
+ {CONN_SOCKET_FP2, "Socket FP2"},
+ {CONN_SOCKET_FS1r2, "Socket FS1r2"},
+ {CONN_SOCKET_FM2, "Socket FM2"},
/* Intel specific sockets */
{CONN_SOCKET_57B, "Socket 5/7 (320 Pin PGA)"},
{CONN_MOBILE_7, "Mobile Module (320 Lead TCP)"},
diff --git a/features.c b/features.c
index 548b958..05c504e 100644
--- a/features.c
+++ b/features.c
@@ -371,7 +371,7 @@ static void decode_feature_flags(struct cpudata *cpu)
"LockMovCr0", "abm", "sse4a", "misalignsse",
"3dnowPref", "osvw", "ibs", "xop",
"skinit", "wdt", NULL, "lwp",
- "fma4", NULL, NULL, "NodeId",
+ "fma4", "tce", NULL, "NodeId",
NULL, "tbm", "TopoExt", "PerfCtrExtCore",
"PerfCtrExtNB", NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
diff --git a/x86info.h b/x86info.h
index 96fa1e5..7d2a455 100644
--- a/x86info.h
+++ b/x86info.h
@@ -62,6 +62,9 @@ enum connector {
CONN_SOCKET_FS1,
CONN_SOCKET_FM1,
CONN_SOCKET_FT1,
+ CONN_SOCKET_FP2,
+ CONN_SOCKET_FS1r2,
+ CONN_SOCKET_FM2,
};
#define CPU_NAME_LEN 80