diff options
author | Andreas Herrmann <andreas.herrmann3@amd.com> | 2012-01-05 19:22:05 +0100 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2012-04-13 16:25:17 -0400 |
commit | a34d5572f15c6e5071bc48f9a587c4c764ce3eea (patch) | |
tree | 90b23f7528a6e3101e5e636028a7203f1450095e | |
parent | 556599c4dac5c87a31126f42d38d7b7ec29f105e (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.c | 18 | ||||
-rw-r--r-- | AMD/powernow.c | 4 | ||||
-rw-r--r-- | connector.c | 3 | ||||
-rw-r--r-- | features.c | 2 | ||||
-rw-r--r-- | x86info.h | 3 |
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)"}, @@ -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 }; @@ -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 |