From patchwork Thu Apr 3 05:39:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxing Zhu X-Patchwork-Id: 14037148 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 0D69DC3600C for ; Thu, 3 Apr 2025 05:52:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Content-Type: Content-Transfer-Encoding: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=FH1iXG1jWeeAOPBLEpHyDr6pN3mmE7ziwtgAvyjl+Vw=; b=WSaDLmp3biug3i3G67Ps7cwALu mO8AXyPvpbgc5m0Z5kESbZlsqW2/IkuJEmQda8P/5rsg99WOE0e4HqRxP8J1LrScBswisC/t0q4V2 J5a8M0Wrzipa8bfHn9Ag5bn2FzPlAOaAemr2uw5gH+VUwisPGRc+rlw4qxfPO1urxWJJuEfjJmrZe MuKSXrDY4DTPGlY8oa2Wj8dgsijU7um67k007uAvKe6OX+Ii+Q44gvXiNc0Sce+AvMgIoiS0pxG7A JDgh/wF7YHwc+0cQ89+DoVe3iL5Pyl8jj+g0x/sSlI85OLFOrtE0iiCGYS1o2ZwVAXFYZc6XMuBVU 4wwRHgnQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1u0DUV-00000007qdO-2eJb; Thu, 03 Apr 2025 05:51:51 +0000 Received: from mail-vi1eur05on20625.outbound.protection.outlook.com ([2a01:111:f403:2613::625] helo=EUR05-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1u0DKQ-00000007p5y-3bSG for linux-arm-kernel@lists.infradead.org; Thu, 03 Apr 2025 05:41:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iEgUPShY3xuiptWECIe7n7aflMlSubRZlnLCFMmyNoewVQsI8fJ9PVTiM99+NqAnWvHnJsFKw95mU2cs1kopY4RUKI9nGGQAy5l7IBO0871rBiwV82ubbWB8ZPbQNlVpkm+vPcBnXkoE1s7H5q5ugKWWnX+WhP07t5wQU0UlKaARtX978RVwCCD2XSa+vCrEZicGj0DceHjHUKO9/Ksla4MP7HLLkjlsdKpRs+RJfUjESeh/JF1CvUTH+DMtTYSESStesc+bn9hAFssslqn6mekvDnkWKhXdrbrZn0nf8azmY4518uYtIVFS9EL8WgzRWCfLzvEFT9/KsINw+jErnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FH1iXG1jWeeAOPBLEpHyDr6pN3mmE7ziwtgAvyjl+Vw=; b=p/IA7ENjeeR3UJhcAfGYcjaH+qMN1rDi48IPoMqI+HwvApX0cdJkUt8zoRHWmcW+U0E0nnVKqcxgiynwYHVZvrVqaWQ4tzdF2rJFOwT2y/l+6w8GNaKKpKuMYH9UI0nICzxc4rsqUkOe0JW3x8yORJ37GSdrf7CNx+I6HZWmlIKyWzgaUo9v9TC8tGTAWgqJdZ1uMPQ25cRBTZF3t3kuRsRKnp94OUi5tjS7jnFhxe9Iq0BE+sp8x5m68z/ubrvjZgWbc7/EbnkeErL96pAZUZ02n/m28olKrF1Cw/FaEw4vvxbqy6/oXthrmnKEUhWR+mOrClvHw/bqefzfAd1WmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FH1iXG1jWeeAOPBLEpHyDr6pN3mmE7ziwtgAvyjl+Vw=; b=Spgravn71zMhC0VdIExZtIgBN8Fd3RUAMjE+TRyhl/KWMLXfDmB6yNJkvdkNHdIF5dQ+IG9J5aSoDIi8aIA7kApMk1KOPt+Q/BzrVMDCC2Uvc48HIKvAvGVPjPi+lPQcY4KXWN02I/7OcTVnH0/SpGFjzetL8TkjPrHJ9+ENJGVEpF/kegS6+nlr7dGKnROVFTwEtmzhkhPQm7XZR/S49Z6+gYQclzXikQVceZ7GGvTP0BymdisZUzF5JtbzV4qJTNe6XcvBCJIDe76n8+y76ZAfLgtWa/9QvyF/bGRhtp91abzISZsqPhgYEcPusET4c1cAm+qE/NrVKsxXProtuw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) by AM9PR04MB8145.eurprd04.prod.outlook.com (2603:10a6:20b:3e1::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.46; Thu, 3 Apr 2025 05:41:22 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%4]) with mapi id 15.20.8583.041; Thu, 3 Apr 2025 05:41:22 +0000 From: Richard Zhu To: frank.li@nxp.com, l.stach@pengutronix.de, lpieralisi@kernel.org, kw@linux.com, manivannan.sadhasivam@linaro.org, robh@kernel.org, bhelgaas@google.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Richard Zhu , Frank Li Subject: [PATCH v4 5/7] PCI: imx6: Let i.MX95 PCIe compliance with 8GT/s Receiver Impedance ECN Date: Thu, 3 Apr 2025 13:39:35 +0800 Message-Id: <20250403053937.765849-6-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250403053937.765849-1-hongxing.zhu@nxp.com> References: <20250403053937.765849-1-hongxing.zhu@nxp.com> X-ClientProxiedBy: MA0PR01CA0042.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a01:81::13) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8676:EE_|AM9PR04MB8145:EE_ X-MS-Office365-Filtering-Correlation-Id: 8200c5c0-2eb1-4a09-2637-08dd72722a6f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|7416014|376014|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: tdP8KDxzWlgH1yAx8tr1ojjz97gwMcmG4domhzAiTZ6mVkNK+HjZC+T8HU7TXUCjvDtvsGaWmtxBzcmPLoxxx5gHrd6x6dGSfPQg4OJ6CmMX3wu/y4EjNgGdX9CDUFX4EWgk+O8VWGPAedKLNtjraTBSLm5WOP+ajdKnMcbJNAKwzZJ3dSUvqpibEQVYLli4d/VUKGBpUJ+H9tjCU9y5Th9CA7vhvqRHXjsCsmG+yO0esvvNF4LayxTMdgQbgI9exJjIipnYLbnNrGP8GVIrmUsrgxGaJ7qHAVkyLINcJsWIu+PZauLeKkFlss+q1k12eNDzOg9nqd1R65CsEMKLnQ0zFr1GJkSEgE17H8/1gxYGcsYYaOVRVP40XTeCz66sB+kRpGuvtOAXyzbdIUpko4kkxx+SZXozt0yxZpRVkBSKQhcrfY0Bipi3JdYVxmf8AC0QL85GGv+NayfGDb2OMVCepCwMkwg/Y/cwWuvrt4iqV8ILLt4F/5ImZ2T43EO1MHfsyatNXXTbXEdjtwVjzypG2RXSwrgno1pLlpxn7coxMNAingvA8AAslARK80kQsOdRNbUO1cqjVvilyRmoF6q3whRo00BAjEFiFWgQuKOU+yYLSUmrEnAfuiHrYBKqrWXcQoP1HPm9g47/6SwtoKUsNhGDxbC4SA+v9riI9RwmX+7DHF3CzZZgGFchQoO5B1A/7vgm5UK/1lGcteNN+bKpKcizekDpPytQlzpEHCdW09r+q0vdmqO+nMXbP6Ez/feldUg2jYywyp0ZHDYVLTWfzc39sdDw03/akm7xDgZGZuhd59sszif38J+T2VrJ9gkMz2pfz6CvBbyqq4S53KAC5GEg7G8Rqq1WXmn+HnejYzQ31ssfPvxTfzUU81lWTuPQ6E9HrD2nqQcYv9tFFtiIo59SFTf+G2qLn0QpuQIpEjSscd/wEEwBl+uCeKV0vu6DGk/HlGq744G7P4BhVrfTxJLH67dMJPqqJ/G364YkzTjSfXl6A9J+n8PWA3CfIDK7EUc4jOWtxA64pKCnkdz0Mp248qr940jOri51BBPmsTMnuYsPmcRIGp82fSR8ehw24aABKEaesBqAwOfwEs1ZT4R2Ig1032ynI4P4dwSqE8qY1rlj1BVZ/2H7MIDcuhyd7LgHd2wtA0EtFS2JqQMiPtzexXTiIs/5LH/4aR2iMH7bgJknxh6FSvx5U+pICNPA6EjyxgxVIyl8HzMxPtuQ22wIrPKPyoJwmkNM+utT/dtITFC+BotDz2nvYGHXkaQKfOfHUY/Hu7xOgyNuLT+wT7XAdTJMEykwhuh+Qzg/Ef/arLVPvCRveg6FZyiuvCadCP3Z5CfZi4z4A2XdC1Sa1T+f7j5avJ0/DFlG1RlSoIaeAGkDm1EK1zonBZOeVBCvRK0EeLpHVrtTEI+1mOHHKeDn1OaH4wGYW2rwVkEwnxQ5EzkW/riA7lgt24jQuDWOWRgaIyUu7k1gkNP7+g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8676.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(52116014)(7416014)(376014)(1800799024)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fqUzDET/BSYc212aP3YYjyDbElLr+CcgyAYXFiWWCAODdXJga/FWvmuale/T3WOGcxEMv3p6LRH9ExAkLhUPFvmD8zPFvhI5CbWzspBuU8UFmZMAPrVCsBWwaTf3vyp5g89oEZjgV6gfJEDuQtLWBUSHgnMS7KdZjGIhL5AygiR83Z3zLFdgKbeuBeCWwmYg/W6oT49kv4TSNt+HbQKLLU2ebf14ongpb9ksUSEm8BJufo3+4GYnYjMBqraQRAL8+toKEGCBTF/jaDfWCoT6tLxfrZ8vZCq12nTtVLd/wngvhnaCg8sjkZDlkjfW1O4PR0KYc5QVEINm3WUbn84WPZtZyQbKo0X43/nf3xrt/aS85k4TQx7XJ93ivxMpxcxSd5omUdKGSQkgFrA9uXsfzIJ+3OigzGSgnTyNVddyE+dDFaSHj0jwOajiYJLpcxWhuBmucMCfFzpzYRpTXknqFPJs4mgTx+z0tvMSiVEPvLvsN4s93BdJf4Ga2hhcebDey7zdgwKLkPZyr9fXfrvR4rUMsgc8EisQEYnj3DOqE61ZbCGCUz21Lpb62flTANZL243J6kxs1ozwWW8Vu9pBUCiO6DXJuC7FTNx200fpk/z4wFWxlvkUS7WZKC5YJpac2TOji8m8IAJNNbrpt1liEtbqfa3BTU46tFLDqLLxV+AWk6bQ0bAnXX8f8IyuUcqt9A0r2mPljuTFlNMi5Pd6hBr+StCFlBUczSRU6SlnjTumS4t9yfsqSMexUuTmkLmMPiR9MPoty1rfH5iMR9M+QbWnWGoo+ysEbXVEQu4HzBCOUdVW2yCVt6WtTzsjINc4wIOmkj7o29XOl+U+k0IBQYTMCu5VbqnklukLHUftU2GS+AgO/dF+o0nbIBFTR+0qa5qm0eczrmp7W5/55OqlE3rcnP7pKEK2NTVlahj8va4LFgrEr9nqoDCqjlNVRm6IJjA5Xcxt5QOM184tVakEGKT9gg6YicqXqvc80/z3QUdMpe8YrX9otNPH7sPbLhUe76bpu6DPya4FysMripBx8RwM55u8psEi1GLzy+zbz4+gfY1gEyJRKYeA5wCtAMsKiAuNwsjr/xt/5ZIEIX11FV729IbIxmEQE6yxTFAyg1gqWmEEufgxKJwWeHsiC2gqWHbCVO2izVG5xStEEp3ofEBeBDr5ajdmjmftGAL2tTJtjHUWJsQNNNLwDudWxCH/qv5LbOD1K6C2TZ89MDPEwDOlZZR3d1wt5/wJoo2w916W0/DM2kHUEaEiJKIIEoIg1S+M4qhuO4TRfjoi9mrviS6OHpxSrrweSsJ229ohYl9VeJj2EAKjK0AQE6ctmo15SIUGppDXohCo1G2q4noDQV8Q+GzjShSlnkY3dlTii7vWPM/t0Dp23PfgD6tXF8tUj7lrpdc3qIp8y0xXrOFprAX10tg8PlbvOvyh6FW4HGCLbIynSZru8at/ZpZH5qREamkfwG8lwwKeg6/Thq9m71hB7fsngcp2ASRS+Q7x5kO/9xTo7mPttTN2EmC7Q7jp+dKLIxKBNCXeLs/MN2XwTcH/8u4kc0GGiZI250C2zsvJAwMxmMz7nnnAEGek+HmA X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8200c5c0-2eb1-4a09-2637-08dd72722a6f X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Apr 2025 05:41:22.2391 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aJ4Ew88wM+GFekD0BOgBxBBVb3ECvlpWU9xidZJ+puTxrbhce5uobdiUJTH6AjDAS6pBaLvwkoJ71xEBQSycGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8145 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250402_224126_930271_8C53B7FD X-CRM114-Status: GOOD ( 13.91 ) 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 ERR051586: Compliance with 8GT/s Receiver Impedance ECN. The default value of GEN3_RELATED_OFF[GEN3_ZRXDC_NONCOMPL] is 1 which makes receiver non-compliant with the ZRX-DC parameter for 2.5 GT/s when operating at 8 GT/s or higher. It causes unnecessary timeout in L1. Workaround: Program GEN3_RELATED_OFF[GEN3_ZRXDC_NONCOMPL] to 0. Signed-off-by: Richard Zhu Reviewed-by: Frank Li Reviewed-by: Manivannan Sadhasivam --- drivers/pci/controller/dwc/pci-imx6.c | 31 +++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index abaf6b13a8d5..2232436709f5 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -110,6 +110,7 @@ enum imx_pcie_variants { */ #define IMX_PCIE_FLAG_BROKEN_SUSPEND BIT(9) #define IMX_PCIE_FLAG_HAS_LUT BIT(10) +#define IMX_PCIE_FLAG_8GT_ECN_ERR051586 BIT(11) #define imx_check_flag(pci, val) (pci->drvdata->flags & val) @@ -1256,6 +1257,32 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) regulator_disable(imx_pcie->vpcie); } +static void imx_pcie_host_post_init(struct dw_pcie_rp *pp) +{ + struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + struct imx_pcie *imx_pcie = to_imx_pcie(pci); + u32 val; + + if (imx_pcie->drvdata->flags & IMX_PCIE_FLAG_8GT_ECN_ERR051586) { + /* + * ERR051586: Compliance with 8GT/s Receiver Impedance ECN + * + * The default value of GEN3_RELATED_OFF[GEN3_ZRXDC_NONCOMPL] + * is 1 which makes receiver non-compliant with the ZRX-DC + * parameter for 2.5 GT/s when operating at 8 GT/s or higher. + * It causes unnecessary timeout in L1. + * + * Workaround: Program GEN3_RELATED_OFF[GEN3_ZRXDC_NONCOMPL] + * to 0. + */ + dw_pcie_dbi_ro_wr_en(pci); + val = dw_pcie_readl_dbi(pci, GEN3_RELATED_OFF); + val &= ~GEN3_RELATED_OFF_GEN3_ZRXDC_NONCOMPL; + dw_pcie_writel_dbi(pci, GEN3_RELATED_OFF, val); + dw_pcie_dbi_ro_wr_dis(pci); + } +} + static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) { struct imx_pcie *imx_pcie = to_imx_pcie(pcie); @@ -1297,6 +1324,7 @@ static const struct dw_pcie_host_ops imx_pcie_host_ops = { static const struct dw_pcie_host_ops imx_pcie_host_dw_pme_ops = { .init = imx_pcie_host_init, .deinit = imx_pcie_host_exit, + .post_init = imx_pcie_host_post_init, }; static const struct dw_pcie_ops dw_pcie_ops = { @@ -1396,6 +1424,7 @@ static int imx_add_pcie_ep(struct imx_pcie *imx_pcie, struct device *dev = pci->dev; imx_pcie_host_init(pp); + imx_pcie_host_post_init(pp); ep = &pci->ep; ep->ops = &pcie_ep_ops; @@ -1805,6 +1834,7 @@ static const struct imx_pcie_drvdata drvdata[] = { .variant = IMX95, .flags = IMX_PCIE_FLAG_HAS_SERDES | IMX_PCIE_FLAG_HAS_LUT | + IMX_PCIE_FLAG_8GT_ECN_ERR051586 | IMX_PCIE_FLAG_SUPPORTS_SUSPEND, .ltssm_off = IMX95_PE0_GEN_CTRL_3, .ltssm_mask = IMX95_PCIE_LTSSM_EN, @@ -1858,6 +1888,7 @@ static const struct imx_pcie_drvdata drvdata[] = { [IMX95_EP] = { .variant = IMX95_EP, .flags = IMX_PCIE_FLAG_HAS_SERDES | + IMX_PCIE_FLAG_8GT_ECN_ERR051586 | IMX_PCIE_FLAG_SUPPORT_64BIT, .ltssm_off = IMX95_PE0_GEN_CTRL_3, .ltssm_mask = IMX95_PCIE_LTSSM_EN,