aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/mcelog/mcelog/0001-Add-Kabylake-client-support.patch
blob: f9dfbcab5ce34d04f752e1bf424401986cd1ec03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
From 11bfbb446116c8313728157148a6bb15625031e8 Mon Sep 17 00:00:00 2001
From: Tony Luck <tony.luck@intel.com>
Date: Tue, 30 Aug 2016 09:37:02 -0700
Subject: [PATCH] Add Kabylake client support

CPU models 0x8E and 0x9E denote kabylake client processor

Upstream-Status: Backport [A little modification on context]
https://github.com/andikleen/mcelog/commit/11bfbb446116c8313728157148a6bb15625031e8

Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
---
 intel.c  | 5 ++++-
 intel.h  | 3 ++-
 mcelog.c | 4 +++-
 mcelog.h | 1 +
 4 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/intel.c b/intel.c
index f4ef9f6..33a99a8 100644
--- a/intel.c
+++ b/intel.c
@@ -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_SKYLAKE || cpu == CPU_SKYLAKE_XEON ||
+	    cpu == CPU_KABYLAKE)
 		memory_error_support = 1;
 }
 
@@ -90,6 +91,8 @@ enum cputype select_intel_cputype(int family, int model)
 			return CPU_SKYLAKE;
 		else if (model == 0x55)
 			return CPU_SKYLAKE_XEON;
+		else if (model == 0x8E || model == 0x9E)
+			return CPU_KABYLAKE;
 		if (model > 0x1a) {
 			Eprintf("Family 6 Model %u CPU: only decoding architectural errors\n",
 				model);
diff --git a/intel.h b/intel.h
index d22895b..c231925 100644
--- a/intel.h
+++ b/intel.h
@@ -26,5 +26,6 @@ extern int memory_error_support;
 	case CPU_ATOM:	\
 	case CPU_KNIGHTS_LANDING: \
 	case CPU_SKYLAKE: \
-	case CPU_SKYLAKE_XEON
+	case CPU_SKYLAKE_XEON: \
+	case CPU_KABYLAKE
 
diff --git a/mcelog.c b/mcelog.c
index 1d79fa1..7214a0d 100644
--- a/mcelog.c
+++ b/mcelog.c
@@ -238,6 +238,7 @@ static char *cputype_name[] = {
 	[CPU_ATOM] = "ATOM",
 	[CPU_SKYLAKE] = "Skylake",
 	[CPU_SKYLAKE_XEON] = "Skylake server",
+	[CPU_KABYLAKE] = "Kabylake",
 };
 
 static struct config_choice cpu_choices[] = {
@@ -287,6 +288,7 @@ static struct config_choice cpu_choices[] = {
 	{ "atom", CPU_ATOM },
 	{ "skylake", CPU_SKYLAKE },
 	{ "skylake_server", CPU_SKYLAKE_XEON },
+	{ "kabylake", CPU_KABYLAKE },
 	{ NULL }
 };
 
@@ -451,7 +453,7 @@ static void dump_mce(struct mce *m, unsigned recordlen)
 	    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_SKYLAKE_XEON && cputype != CPU_KABYLAKE)
 		resolveaddr(m->addr);
 	if (!ascii_mode && ismemerr && (m->status & MCI_STATUS_ADDRV)) {
 		diskdb_resolve_addr(m->addr);
diff --git a/mcelog.h b/mcelog.h
index abc8bc9..254b3a0 100644
--- a/mcelog.h
+++ b/mcelog.h
@@ -130,6 +130,7 @@ enum cputype {
 	CPU_ATOM,
 	CPU_SKYLAKE,
 	CPU_SKYLAKE_XEON,
+	CPU_KABYLAKE,
 };
 
 enum option_ranges {