diff options
author | Piotr Luc <piotr.luc@intel.com> | 2016-10-26 16:17:07 +0200 |
---|---|---|
committer | Andi Kleen <ak@linux.intel.com> | 2016-10-26 09:36:36 -0700 |
commit | 94d853b2ea818c5e31e61c089e87e5e19e7c5a17 (patch) | |
tree | 150467d959d51a6b76d7dc2122562e71f92e7df0 | |
parent | bac53fea3a271e0f8f8bf289d5a3de011110562a (diff) | |
download | mcelog-94d853b2ea818c5e31e61c089e87e5e19e7c5a17.tar.gz |
Add Knights Mill (KNM) CPUIDv144
Enable support for Knights Mill (KNM).
The KNM is close enough to Knights Landing (KNL) and reuses its code.
Signed-off-by: Piotr Luc <piotr.luc@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
-rw-r--r-- | intel.c | 5 | ||||
-rw-r--r-- | intel.h | 1 | ||||
-rw-r--r-- | mcelog.c | 8 | ||||
-rw-r--r-- | mcelog.h | 1 | ||||
-rw-r--r-- | nehalem.c | 3 |
5 files changed, 13 insertions, 5 deletions
@@ -35,7 +35,8 @@ void intel_cpu_init(enum cputype cpu) cpu == CPU_IVY_BRIDGE || cpu == CPU_IVY_BRIDGE_EPEX || cpu == CPU_HASWELL || cpu == CPU_HASWELL_EPEX || cpu == CPU_BROADWELL || cpu == CPU_BROADWELL_DE || cpu == CPU_BROADWELL_EPEX || - cpu == CPU_KNIGHTS_LANDING || cpu == CPU_SKYLAKE || cpu == CPU_SKYLAKE_XEON || + cpu == CPU_KNIGHTS_LANDING || cpu == CPU_KNIGHTS_MILL || + cpu == CPU_SKYLAKE || cpu == CPU_SKYLAKE_XEON || cpu == CPU_KABYLAKE || cpu == CPU_DENVERTON) memory_error_support = 1; } @@ -82,6 +83,8 @@ enum cputype select_intel_cputype(int family, int model) return CPU_BROADWELL_DE; else if (model == 0x57) return CPU_KNIGHTS_LANDING; + else if (model == 0x85) + return CPU_KNIGHTS_MILL; else if (model == 0x1c || model == 0x26 || model == 0x27 || model == 0x35 || model == 0x36 || model == 0x36 || model == 0x37 || model == 0x4a || model == 0x4c || @@ -25,6 +25,7 @@ extern int memory_error_support; case CPU_BROADWELL_EPEX: \ case CPU_ATOM: \ case CPU_KNIGHTS_LANDING: \ + case CPU_KNIGHTS_MILL: \ case CPU_SKYLAKE: \ case CPU_SKYLAKE_XEON: \ case CPU_KABYLAKE: \ @@ -235,6 +235,7 @@ static char *cputype_name[] = { [CPU_BROADWELL_DE] = "Intel Xeon (Broadwell) D family", [CPU_BROADWELL_EPEX] = "Intel Xeon v4 (Broadwell) EP/EX", [CPU_KNIGHTS_LANDING] = "Knights Landing", + [CPU_KNIGHTS_MILL] = "Knights Mill", [CPU_ATOM] = "ATOM", [CPU_SKYLAKE] = "Skylake", [CPU_SKYLAKE_XEON] = "Skylake server", @@ -283,6 +284,7 @@ static struct config_choice cpu_choices[] = { { "broadwell-ep", CPU_BROADWELL_EPEX }, { "broadwell-ex", CPU_BROADWELL_EPEX }, { "knightslanding", CPU_KNIGHTS_LANDING }, + { "knightsmill", CPU_KNIGHTS_MILL }, { "xeon-v2", CPU_IVY_BRIDGE_EPEX }, { "xeon-v3", CPU_HASWELL_EPEX }, { "xeon-v4", CPU_BROADWELL_EPEX }, @@ -454,9 +456,9 @@ static void dump_mce(struct mce *m, unsigned recordlen) if (cputype != CPU_SANDY_BRIDGE_EP && cputype != CPU_IVY_BRIDGE_EPEX && cputype != CPU_HASWELL_EPEX && cputype != CPU_BROADWELL && cputype != CPU_BROADWELL_DE && cputype != CPU_BROADWELL_EPEX && - cputype != CPU_KNIGHTS_LANDING && cputype != CPU_SKYLAKE && - cputype != CPU_SKYLAKE_XEON && cputype != CPU_KABYLAKE && - cputype != CPU_DENVERTON) + cputype != CPU_KNIGHTS_LANDING && cputype != CPU_KNIGHTS_MILL && + cputype != CPU_SKYLAKE && cputype != CPU_SKYLAKE_XEON && + cputype != CPU_KABYLAKE && cputype != CPU_DENVERTON) resolveaddr(m->addr); } @@ -127,6 +127,7 @@ enum cputype { CPU_BROADWELL_DE, CPU_BROADWELL_EPEX, CPU_KNIGHTS_LANDING, + CPU_KNIGHTS_MILL, CPU_ATOM, CPU_SKYLAKE, CPU_SKYLAKE_XEON, @@ -129,7 +129,8 @@ void decode_memory_controller(u32 status, u8 bank) if ((status & 0xf) == 0xf) strcpy(channel, "unspecified"); else { - if (cputype == CPU_KNIGHTS_LANDING) /* Fix for Knights Landing MIC */ + /* Fix for Knights Landing/Mill MIC */ + if (cputype == CPU_KNIGHTS_LANDING || cputype == CPU_KNIGHTS_MILL) sprintf(channel, "%u", (status & 0xf) + 3 * (bank == 15)); else sprintf(channel, "%u", status & 0xf); |