summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/edac/i10nm_base.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/edac/i10nm_base.c b/drivers/edac/i10nm_base.c
index 89b3e8cc38b1..6f61b7614230 100644
--- a/drivers/edac/i10nm_base.c
+++ b/drivers/edac/i10nm_base.c
@@ -580,6 +580,10 @@ static bool i10nm_mc_decode_available(struct mce *mce)
if (bank < 13 || bank > 20)
return false;
break;
+ case GNR:
+ if (bank < 13 || bank > 24)
+ return false;
+ break;
default:
return false;
}
@@ -637,6 +641,16 @@ static bool i10nm_mc_decode(struct decoded_addr *res)
res->rank = GET_BITFIELD(m->misc, 57, 57);
res->dimm = GET_BITFIELD(m->misc, 58, 58);
break;
+ case GNR:
+ res->imc = m->bank - 13;
+ res->channel = 0;
+ res->column = GET_BITFIELD(m->misc, 9, 18) << 2;
+ res->row = GET_BITFIELD(m->misc, 19, 36);
+ res->bank_group = GET_BITFIELD(m->misc, 39, 41);
+ res->bank_address = GET_BITFIELD(m->misc, 37, 38);
+ res->rank = GET_BITFIELD(m->misc, 55, 56);
+ res->dimm = GET_BITFIELD(m->misc, 57, 57);
+ break;
default:
return false;
}