aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2013-06-21 13:54:38 -0700
committerAndi Kleen <ak@linux.intel.com>2013-06-21 16:51:13 -0700
commitb842ecb44965722ecd67bed1ed9d900073e3313f (patch)
treea8e06a429203de8b3862400e1ed2a38f692e41c7
parentd2e13bf0bdc72e9d19d63921056b808d5ce8ef62 (diff)
downloadmcelog-b842ecb44965722ecd67bed1ed9d900073e3313f.tar.gz
Add Haswell client cpuids (0x3C, 0x45 and 0x46)
June 2013 edition of the Software Developers Manual provides the three cpuid model numbers for Haswell client (a.k.a. 4th generation Intel(R) Core(TM) processor family and Intel Xeon processor E3-1200v3 product family). Add them so that we can decode without warning about unsupported model. Note that as usual these client parts have no model specific decoding. Signed-off-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Andi Kleen <ak@linux.intel.com>
-rw-r--r--intel.c5
-rw-r--r--intel.h3
-rw-r--r--mcelog.c2
-rw-r--r--mcelog.h1
4 files changed, 9 insertions, 2 deletions
diff --git a/intel.c b/intel.c
index 099c4ad..db2d6bb 100644
--- a/intel.c
+++ b/intel.c
@@ -32,7 +32,8 @@ void intel_cpu_init(enum cputype cpu)
{
if (cpu == CPU_NEHALEM || cpu == CPU_XEON75XX || cpu == CPU_INTEL ||
cpu == CPU_SANDY_BRIDGE || cpu == CPU_SANDY_BRIDGE_EP ||
- cpu == CPU_IVY_BRIDGE || cpu == CPU_IVY_BRIDGE_EPEX)
+ cpu == CPU_IVY_BRIDGE || cpu == CPU_IVY_BRIDGE_EPEX ||
+ cpu == CPU_HASWELL)
memory_error_support = 1;
}
@@ -66,6 +67,8 @@ enum cputype select_intel_cputype(int family, int model)
return CPU_IVY_BRIDGE;
else if (model == 0x3e)
return CPU_IVY_BRIDGE_EPEX;
+ else if (model == 0x3c || model == 0x45 || model == 0x46)
+ return CPU_HASWELL;
if (model > 0x1a) {
Eprintf("Family 6 Model %x CPU: only decoding architectural errors\n",
model);
diff --git a/intel.h b/intel.h
index 105f806..b2b949a 100644
--- a/intel.h
+++ b/intel.h
@@ -17,5 +17,6 @@ extern int memory_error_support;
case CPU_SANDY_BRIDGE_EP: \
case CPU_SANDY_BRIDGE: \
case CPU_IVY_BRIDGE: \
- case CPU_IVY_BRIDGE_EPEX
+ case CPU_IVY_BRIDGE_EPEX: \
+ case CPU_HASWELL
diff --git a/mcelog.c b/mcelog.c
index 1a4c691..83eb607 100644
--- a/mcelog.c
+++ b/mcelog.c
@@ -227,6 +227,7 @@ static char *cputype_name[] = {
[CPU_SANDY_BRIDGE_EP] = "Sandy Bridge EP", /* Fill in better name */
[CPU_IVY_BRIDGE] = "Ivy Bridge", /* Fill in better name */
[CPU_IVY_BRIDGE_EPEX] = "Ivy Bridge EP/EX", /* Fill in better name */
+ [CPU_HASWELL] = "Haswell", /* Fill in better name */
};
static struct config_choice cpu_choices[] = {
@@ -262,6 +263,7 @@ static struct config_choice cpu_choices[] = {
{ "ivybridge", CPU_IVY_BRIDGE }, /* Fill in better name */
{ "ivybridge-ep", CPU_IVY_BRIDGE_EPEX }, /* Fill in better name */
{ "ivybridge-ex", CPU_IVY_BRIDGE_EPEX }, /* Fill in better name */
+ { "haswell", CPU_HASWELL }, /* Fill in better name */
{}
};
diff --git a/mcelog.h b/mcelog.h
index ad69351..ddf90ac 100644
--- a/mcelog.h
+++ b/mcelog.h
@@ -117,6 +117,7 @@ enum cputype {
CPU_SANDY_BRIDGE_EP,
CPU_IVY_BRIDGE,
CPU_IVY_BRIDGE_EPEX,
+ CPU_HASWELL,
};
enum option_ranges {