Received: by 2002:a05:7412:f690:b0:e2:908c:2ebd with SMTP id ej16csp923337rdb; Fri, 20 Oct 2023 03:36:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEXronR2O4hor+oRzny9DfwUSJLuEf486K8/tQx2KdWfKwpYSuWh5sHo36E1GdVFCBjL3hb X-Received: by 2002:a17:902:ed4d:b0:1ca:c490:8537 with SMTP id y13-20020a170902ed4d00b001cac4908537mr1662302plb.14.1697798215672; Fri, 20 Oct 2023 03:36:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697798215; cv=none; d=google.com; s=arc-20160816; b=Y7aEqrqzT13tFxtaYREwcWmVrNbgoXn03gEg21qFD9Adn9MqizpZejqsnXBaKYerj8 Q69fehWYYw+dXlEiZaHmRE+9dxovZfy9JF+ChIKpJ8tbM/Affw+d9BL0pbsYV6gA5JFs svxFk8nfC/t+0opKfmHNYDv0/aWIDUeFEuvCp4YLt6RK5/RbdWVPCwbl4d4ak+2UWcLR Kq4v/wOoUFOn4ikSCytM6OqU0igBK7+rPzxDEttnwSuQtIP9uiE4FkhO00Ci0mRniLOS /NBpfu838W3hWqw7XkI/Id4d97TYYwVQvejb7XQf7/2zGZjtj8AtB4Qh32ng2gKuqMWG YKsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:organization :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=CiQ+7MhzYF/e+gTqLKR85rG8tIJozSEYnG0GOQCAz70=; fh=sY0DzU5blKgFTKZd9lvFiOe3kWnivXDE2JlyS8l5aKo=; b=BL4N3Ne0DIQkv7CqcnWFri83Li4mq2VTxTSHqrdHOP+KV5Z6KjEMg1FOShS13T3Wqf vvqwlAd0K+QFv0WyoKLd6NBgwk30O45Il0B6+zISGcmCoNa583hFfeYh1X79+a32BiSo F2xi81ygq1jZz33a8quptsz8jwdwA1C8wM5mlS0TMSxvnh9N1iMxxLwFWBT2kIJ8afhb a+S4DZtvZSTQWrYeXahy2ZnQqoeqkVChrPjD7WffgTMTAQ7xlX3Kz3qV+yHAkpMGB7/y wv2Xj5NAXgeW5XL5Uaarz+fClNn0Q9B51TU0JHB8GDiVgRMYXd4Bw+t6VnEx9vpi+75F y2Fw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=i0sqyxm0; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [2620:137:e000::3:3]) by mx.google.com with ESMTPS id f5-20020a170902684500b001ca7669fba2si1412504pln.409.2023.10.20.03.36.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Oct 2023 03:36:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) client-ip=2620:137:e000::3:3; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=i0sqyxm0; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::3:3 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 57B2A8070DBA; Fri, 20 Oct 2023 03:35:17 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1376831AbjJTKfG (ORCPT + 99 others); Fri, 20 Oct 2023 06:35:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51388 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1376746AbjJTKfF (ORCPT ); Fri, 20 Oct 2023 06:35:05 -0400 Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EEC71D46 for ; Fri, 20 Oct 2023 03:35:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697798103; x=1729334103; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=PHz9bR4d13rT7tF5KACY8luME29AcW5e9bzGR8uupEI=; b=i0sqyxm0MSEYKeXWoZYwdgnirny0XtWz5I8RrdDfksnyWKGQwX2VVUPX i2CfySvhy0I3xVIMS1RpkxeOAg4UWfYarLk7BIG+UExY6KbI8+hphHsEd DUfd6y79Z8+bxxJKkjBA2O9OMWX0pVmKH0TYI9A4JmSj/QTJ5FGhmVS8l b3xYwWaDsiFFrKhEGssAuR7YTW7qtzExFNbu8KWkgJYKatYoAutouQgBV qrdyYMl+Thf7gf948tfJ97ouFskqKDCWCpiGAt8tJJDmzPZ99DnNR2NB/ KXlsiwiAk/Ff7Ocr9+8mTMHp0M9Sub6MYrmfTzMna77agNKtlmmzm/LDM Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10868"; a="383686701" X-IronPort-AV: E=Sophos;i="6.03,238,1694761200"; d="scan'208";a="383686701" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Oct 2023 03:35:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10868"; a="792369921" X-IronPort-AV: E=Sophos;i="6.03,238,1694761200"; d="scan'208";a="792369921" Received: from fl31ca105gs0706.deacluster.intel.com (HELO fl31ca105gs0706..) ([10.45.133.167]) by orsmga001.jf.intel.com with ESMTP; 20 Oct 2023 03:35:02 -0700 From: Shashank Gupta To: herbert@gondor.apana.org.au Cc: linux-crypto@vger.kernel.org, qat-linux@intel.com, Shashank Gupta , Giovanni Cabiddu , Tero Kristo Subject: [PATCH 2/9] crypto: qat - add reporting of correctable errors for QAT GEN4 Date: Fri, 20 Oct 2023 11:32:46 +0100 Message-ID: <20231020103431.230671-3-shashank.gupta@intel.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231020103431.230671-1-shashank.gupta@intel.com> References: <20231020103431.230671-1-shashank.gupta@intel.com> MIME-Version: 1.0 Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 20 Oct 2023 03:35:17 -0700 (PDT) Add logic to detect and report correctable errors in QAT GEN4 devices. This includes (1) enabling, disabling and handling error reported through the ERRSOU0 register and (2) logic to log the errors in the system log. Signed-off-by: Shashank Gupta Reviewed-by: Giovanni Cabiddu Reviewed-by: Tero Kristo --- .../intel/qat/qat_common/adf_gen4_ras.c | 64 ++++++++++++++++++- .../intel/qat/qat_common/adf_gen4_ras.h | 11 ++++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c b/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c index 0bf243a51527..4fbaadbe480e 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c +++ b/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c @@ -1,20 +1,82 @@ // SPDX-License-Identifier: GPL-2.0-only /* Copyright(c) 2023 Intel Corporation */ #include "adf_common_drv.h" +#include "adf_gen4_hw_data.h" #include "adf_gen4_ras.h" +static void enable_errsou_reporting(void __iomem *csr) +{ + /* Enable correctable error reporting in ERRSOU0 */ + ADF_CSR_WR(csr, ADF_GEN4_ERRMSK0, 0); +} + +static void disable_errsou_reporting(void __iomem *csr) +{ + /* Disable correctable error reporting in ERRSOU0 */ + ADF_CSR_WR(csr, ADF_GEN4_ERRMSK0, ADF_GEN4_ERRSOU0_BIT); +} + +static void enable_ae_error_reporting(struct adf_accel_dev *accel_dev, + void __iomem *csr) +{ + u32 ae_mask = GET_HW_DATA(accel_dev)->ae_mask; + + /* Enable Acceleration Engine correctable error reporting */ + ADF_CSR_WR(csr, ADF_GEN4_HIAECORERRLOGENABLE_CPP0, ae_mask); +} + +static void disable_ae_error_reporting(void __iomem *csr) +{ + /* Disable Acceleration Engine correctable error reporting */ + ADF_CSR_WR(csr, ADF_GEN4_HIAECORERRLOGENABLE_CPP0, 0); +} + static void adf_gen4_enable_ras(struct adf_accel_dev *accel_dev) { + void __iomem *csr = adf_get_pmisc_base(accel_dev); + + enable_errsou_reporting(csr); + enable_ae_error_reporting(accel_dev, csr); } static void adf_gen4_disable_ras(struct adf_accel_dev *accel_dev) { + void __iomem *csr = adf_get_pmisc_base(accel_dev); + + disable_errsou_reporting(csr); + disable_ae_error_reporting(csr); +} + +static void adf_gen4_process_errsou0(struct adf_accel_dev *accel_dev, + void __iomem *csr) +{ + u32 aecorrerr = ADF_CSR_RD(csr, ADF_GEN4_HIAECORERRLOG_CPP0); + + aecorrerr &= GET_HW_DATA(accel_dev)->ae_mask; + + dev_warn(&GET_DEV(accel_dev), + "Correctable error detected in AE: 0x%x\n", + aecorrerr); + + /* Clear interrupt from ERRSOU0 */ + ADF_CSR_WR(csr, ADF_GEN4_HIAECORERRLOG_CPP0, aecorrerr); } static bool adf_gen4_handle_interrupt(struct adf_accel_dev *accel_dev, bool *reset_required) { - return false; + void __iomem *csr = adf_get_pmisc_base(accel_dev); + u32 errsou = ADF_CSR_RD(csr, ADF_GEN4_ERRSOU0); + bool handled = false; + + *reset_required = false; + + if (errsou & ADF_GEN4_ERRSOU0_BIT) { + adf_gen4_process_errsou0(accel_dev, csr); + handled = true; + } + + return handled; } void adf_gen4_init_ras_ops(struct adf_ras_ops *ras_ops) diff --git a/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.h b/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.h index 2765d3529c0d..e6c4dfbb2389 100644 --- a/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.h +++ b/drivers/crypto/intel/qat/qat_common/adf_gen4_ras.h @@ -3,8 +3,19 @@ #ifndef ADF_GEN4_RAS_H_ #define ADF_GEN4_RAS_H_ +#include + struct adf_ras_ops; +/* ERRSOU0 Correctable error mask*/ +#define ADF_GEN4_ERRSOU0_BIT BIT(0) + +/* HI AE Correctable error log */ +#define ADF_GEN4_HIAECORERRLOG_CPP0 0x41A308 + +/* HI AE Correctable error log enable */ +#define ADF_GEN4_HIAECORERRLOGENABLE_CPP0 0x41A318 + void adf_gen4_init_ras_ops(struct adf_ras_ops *ras_ops); #endif /* ADF_GEN4_RAS_H_ */ -- 2.41.0