From: Yazen Ghannam <yazen.ghannam@amd.com>
To: <linux-edac@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <tony.luck@intel.com>,
<x86@kernel.org>, <Smita.KoralahalliChannabasappa@amd.com>,
Yazen Ghannam <yazen.ghannam@amd.com>
Subject: [PATCH 3/3] EDAC/mce_amd: Add support for FRU Text in MCA
Date: Mon, 18 Apr 2022 17:44:40 +0000 [thread overview]
Message-ID: <20220418174440.334336-4-yazen.ghannam@amd.com> (raw)
In-Reply-To: <20220418174440.334336-1-yazen.ghannam@amd.com>
A new "FRU Text in MCA" feature is defined where the Field Replaceable
Unit (FRU) Text for a device is represented by a string in the new
MCA_SYND1 and MCA_SYND2 registers. This feature is supported per MCA
bank, and it is advertised by the McaFruTextInMca bit (MCA_CONFIG[9]).
The FRU Text is populated dynamically for each individual error state
(MCA_STATUS, MCA_ADDR, et al.). This handles the case where an MCA bank
covers multiple devices, for example, a Unified Memory Controller (UMC)
bank that manages two DIMMs.
Print the FRU Text string, if available, when decoding an MCA error.
Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
---
drivers/edac/mce_amd.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/drivers/edac/mce_amd.c b/drivers/edac/mce_amd.c
index 28b48c711fe0..3cacc3f22379 100644
--- a/drivers/edac/mce_amd.c
+++ b/drivers/edac/mce_amd.c
@@ -1235,6 +1235,7 @@ amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
{
struct mce *m = (struct mce *)data;
unsigned int fam = x86_family(m->cpuid);
+ u64 mca_config = 0;
int ecc;
if (m->kflags & MCE_HANDLED_CEC)
@@ -1254,11 +1255,10 @@ amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
((m->status & MCI_STATUS_PCC) ? "PCC" : "-"));
if (boot_cpu_has(X86_FEATURE_SMCA)) {
- u32 low, high;
u32 addr = MSR_AMD64_SMCA_MCx_CONFIG(m->bank);
- if (!rdmsr_safe(addr, &low, &high) &&
- (low & MCI_CONFIG_MCAX))
+ if (!rdmsrl_safe_on_cpu(m->extcpu, addr, &mca_config) &&
+ (mca_config & MCI_CONFIG_MCAX))
pr_cont("|%s", ((m->status & MCI_STATUS_TCC) ? "TCC" : "-"));
pr_cont("|%s", ((m->status & MCI_STATUS_SYNDV) ? "SyndV" : "-"));
@@ -1300,6 +1300,17 @@ amd_decode_mce(struct notifier_block *nb, unsigned long val, void *data)
pr_cont("\n");
decode_smca_error(m);
+
+ if (mca_config & BIT(9)) {
+ char frutext[32];
+
+ memset(frutext, 0, sizeof(frutext));
+ memcpy(&frutext[0], &m->synd1, 8);
+ memcpy(&frutext[8], &m->synd2, 8);
+
+ pr_emerg(HW_ERR "FRU Text: %s\n", frutext);
+ }
+
goto err_code;
}
--
2.25.1
next prev parent reply other threads:[~2022-04-18 17:45 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-18 17:44 [PATCH 0/3] New SMCA Syndrome registers and FRU Text feature Yazen Ghannam
2022-04-18 17:44 ` [PATCH 1/3] x86/MCE, EDAC/mce_amd: Add support for new MCA_SYND{1,2} registers Yazen Ghannam
2022-06-30 11:01 ` Borislav Petkov
2022-07-11 17:31 ` Yazen Ghannam
2022-07-18 8:57 ` Borislav Petkov
2022-07-18 13:50 ` Borislav Petkov
2022-08-02 12:22 ` Yazen Ghannam
2022-08-02 16:58 ` Luck, Tony
2022-10-24 16:09 ` Borislav Petkov
2022-10-24 16:38 ` Tony Luck
2022-10-24 20:30 ` Borislav Petkov
2022-10-24 21:08 ` Luck, Tony
2022-10-24 21:23 ` Borislav Petkov
2022-10-24 21:32 ` Luck, Tony
2022-10-24 21:52 ` Luck, Tony
2022-10-25 16:35 ` Yazen Ghannam
2022-10-25 16:46 ` Luck, Tony
2022-10-25 18:05 ` Borislav Petkov
2022-10-25 19:28 ` Steven Rostedt
2022-11-01 17:27 ` Yazen Ghannam
2022-04-18 17:44 ` [PATCH 2/3] x86/MCE/APEI: Handle variable register array size Yazen Ghannam
2022-07-03 12:30 ` Borislav Petkov
2022-07-11 17:32 ` Yazen Ghannam
2022-04-18 17:44 ` Yazen Ghannam [this message]
2022-07-04 9:13 ` [PATCH 3/3] EDAC/mce_amd: Add support for FRU Text in MCA Borislav Petkov
2022-07-11 17:41 ` Yazen Ghannam
2022-06-10 16:29 ` [PATCH 0/3] New SMCA Syndrome registers and FRU Text feature Yazen Ghannam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220418174440.334336-4-yazen.ghannam@amd.com \
--to=yazen.ghannam@amd.com \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.