From patchwork Mon Aug 22 19:14:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Serge Semin X-Patchwork-Id: 12951308 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5810CC28D13 for ; Mon, 22 Aug 2022 19:42:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:CC:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=IJsDXDt4JkgBF9LTIc3fp+G0zbWvOIPvzW2ejfscDLo=; b=rf+5QnplIo6h2O jhT9hejT/qgZ1WErxV/oqKo4NPM6gSgB4/UOLA+ZxTMFEVcclPwLRvmNLid1vzu03BmqUUlWKU24v BCGo+J68pwOBIw5/ee8J/v4M2fA0THEM8xtAUump6xYd9YNANAWlnXkJKyZO3kv8XCrOBV+WAqvFt O1PU5lUhufvJcJdJtwawWMwolXpiN67C7sSvVydPyplDV+XTAiIrWmHYZDZj3AF61SZmsNpbw24/E HH+TzbDZE7ZYL70v0VvJ1ZhfuHtdWjOVUJSFkcgccP1EK60x5pkkBFp8huQ1++ACjVgNdZrZ//HL5 wrnnhqxxL31JpUPHfTFw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oQDIW-00E9ka-20; Mon, 22 Aug 2022 19:41:20 +0000 Received: from mail.baikalelectronics.com ([87.245.175.230]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oQCsv-00Dvkx-Cx for linux-arm-kernel@lists.infradead.org; Mon, 22 Aug 2022 19:14:55 +0000 Received: from mail (mail.baikal.int [192.168.51.25]) by mail.baikalelectronics.com (Postfix) with ESMTP id 67075DA3; Mon, 22 Aug 2022 22:17:51 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 mail.baikalelectronics.com 67075DA3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baikalelectronics.ru; s=mail; t=1661195871; bh=/8ThEf1i+s1crKo+bRntGSY9BgtvL3o8XGLLK2fAhdo=; h=From:To:CC:Subject:Date:In-Reply-To:References:From; b=aCLBIz0IIW7Q3caEG8UgEFS8Xa/lHpjAqFJD8uDR+ay3GE4Qg0OmZpSgSmJqQ0s2A qQaRM38sw6MN1kKRqifkyPZA5Hf9Awl/GXDq69A9tWnWnG8kVRyM5CQ/e3jqR32a3p gYAGSUlmUUu/zmfrLMx5IDN7bSSLBaISK03ZW4ts= Received: from localhost (192.168.168.10) by mail (192.168.51.25) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 22 Aug 2022 22:14:37 +0300 From: Serge Semin To: Michal Simek , Borislav Petkov , Mauro Carvalho Chehab , Tony Luck , James Morse , Robert Richter CC: Serge Semin , Serge Semin , Alexey Malahov , Michail Ivanov , Pavel Parkhomenko , Punnaiah Choudary Kalluri , Manish Narani , Dinh Nguyen , , , Subject: [PATCH 12/18] EDAC/synopsys: Read data syndrome on errors Date: Mon, 22 Aug 2022 22:14:21 +0300 Message-ID: <20220822191427.27969-13-Sergey.Semin@baikalelectronics.ru> In-Reply-To: <20220822191427.27969-1-Sergey.Semin@baikalelectronics.ru> References: <20220822191427.27969-1-Sergey.Semin@baikalelectronics.ru> MIME-Version: 1.0 X-ClientProxiedBy: MAIL.baikal.int (192.168.51.25) To mail (192.168.51.25) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220822_121453_896061_0BFCCF7F X-CRM114-Status: GOOD ( 11.96 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In case of the corrected and uncorrected errors DW uMCTL2 DDR controller preserves the ECC syndrome of the erroneous data pattern in the ECCCSYN2 and ECCUSYN2 CSRs [1]. Seeing the MCI core permits supplying the ECC syndrome to the error reporting method, let's read it from the CSRs and pass the value out to the core so to provide more details of the happened error. [1] DesignWare® Cores Enhanced Universal DDR Memory Controller (uMCTL2) Databook, Version 3.91a, October 2020, p.826, p.837 Signed-off-by: Serge Semin --- drivers/edac/synopsys_edac.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/edac/synopsys_edac.c b/drivers/edac/synopsys_edac.c index 124b0167898e..f48244919a5c 100644 --- a/drivers/edac/synopsys_edac.c +++ b/drivers/edac/synopsys_edac.c @@ -302,6 +302,7 @@ struct snps_ddrc_info { * @bankgrp: Bank group number. * @bitpos: Bit position. * @data: Data causing the error. + * @syndrome: Erroneous data syndrome. */ struct snps_ecc_error_info { u32 row; @@ -310,6 +311,7 @@ struct snps_ecc_error_info { u32 bankgrp; u32 bitpos; u64 data; + u32 syndrome; }; /** @@ -421,9 +423,7 @@ static int snps_get_error_info(struct snps_edac_priv *priv) if (priv->info.dq_width == SNPS_DQ_64) p->ceinfo.data |= (u64)readl(base + ECC_CSYND1_OFST) << 32; - edac_dbg(2, "ECCCSYN0: 0x%08X ECCCSYN1: 0x%08X ECCCSYN2: 0x%08X\n", - readl(base + ECC_CSYND0_OFST), readl(base + ECC_CSYND1_OFST), - readl(base + ECC_CSYND2_OFST)); + p->ceinfo.syndrome = readl(base + ECC_CSYND2_OFST); ue_err: if (!p->ue_cnt) @@ -441,6 +441,8 @@ static int snps_get_error_info(struct snps_edac_priv *priv) if (priv->info.dq_width == SNPS_DQ_64) p->ueinfo.data |= (u64)readl(base + ECC_UESYND1_OFST) << 32; + p->ueinfo.syndrome = readl(base + ECC_UESYND2_OFST); + out: spin_lock_irqsave(&priv->lock, flags); @@ -475,7 +477,7 @@ static void snps_handle_error(struct mem_ctl_info *mci, struct snps_ecc_status * pinf->bitpos, pinf->data); edac_mc_handle_error(HW_EVENT_ERR_CORRECTED, mci, - p->ce_cnt, 0, 0, 0, 0, 0, -1, + p->ce_cnt, 0, 0, pinf->syndrome, 0, 0, -1, priv->message, ""); } @@ -488,7 +490,7 @@ static void snps_handle_error(struct mem_ctl_info *mci, struct snps_ecc_status * pinf->data); edac_mc_handle_error(HW_EVENT_ERR_UNCORRECTED, mci, - p->ue_cnt, 0, 0, 0, 0, 0, -1, + p->ue_cnt, 0, 0, pinf->syndrome, 0, 0, -1, priv->message, ""); }