From patchwork Wed Mar 26 07:59:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hongxing Zhu X-Patchwork-Id: 14029855 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 E66F1C36008 for ; Wed, 26 Mar 2025 08:13:03 +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=BlgxNsObpDiEWZ+wlblsAe3qlMrdX+CyJfWuSHKWzEo=; b=yC0gqHnmPKRQOibc/Sh4J8DOjI sztGFAdbn4ToOcb0zY/vXxsAi3JkqT4HI4wKFxilwGURnSrcoCZqMYZco1fOI9593xnuGujADHZ6p iV++f5fN5sXuUVTKeABixaYc2hBdTBRgVI5pr3y4TlwPKzqoxZ5s2aDt95ZvHl6ksHo7Cz7/niepG UmNSbUKyl96xaBvcsWkiYAf+pWRQ8mPS6Z7h04CzOX4Kf7MVF2QeaUmTtRBqXujcw/KWam3WMKvO7 TqBs5Ngb2DwBvp+2DHZ7h8VEezk7Yk+zOWLv54wtXxuhOHdLwN0rPUgkaMnjG+UFWvy8REh5iM3sY g/gaWBIQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.1 #2 (Red Hat Linux)) id 1txLsc-00000007tEv-2mDx; Wed, 26 Mar 2025 08:12:54 +0000 Received: from mail-westeuropeazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c201::5] helo=AS8PR03CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.1 #2 (Red Hat Linux)) id 1txLh0-00000007r9Q-3HgU for linux-arm-kernel@lists.infradead.org; Wed, 26 Mar 2025 08:00:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pHZSCin8ej8xOD6/XSHM5/e/lXHWNlUT4I7Xd6i6or4a41YHdXr6fU7Zo6SLZgitDv/P+uK5ouSYqUyCT2TkDn20oRreTht5LajRSJfwFwQXt8WTg+cSaAvFKLTg5IhA7cJ4c3txHfpgJhqxja0+Eg9O27IundfvtEStj4c6KYQmlwFLABYe2RgDyectfFgUnE/dsyXDdyseToTitPlmAb+GJJtwMNwMiPQpx8DA9cKBYNn2dcdNRTLU/Txtm7PgvrEIUu+Q4OdFCvbNxnZ4q1SMX6GbU1TG/xozDTkbm4jNcCi4qT0YhzFssXOEplyr4EOJBMnpQL5wwZV9v+bz8g== 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=BlgxNsObpDiEWZ+wlblsAe3qlMrdX+CyJfWuSHKWzEo=; b=O+6K6mWZQqRol3ZI5DW6utdncfVBixc53N4GHGdxO11EMqoPUGmvc9eUX4QD5NF3url+tLmw2SAUXEfprHDryKFsyaA3NhKhR01k8C4zYJxPO1S1J8bCrY3h3Wh1nc2t900i+wwmfQJNLED5INBGdWC0lLM0cwDcnZaEL50CKsa6F7xf6FTXePkX+peQzboFndxLPlru4MiI8I8GyQKJ56mSYsFnoLneQOUxQtvRha+cK8tH9GqnX2eLuWKUFeTrV74TBSApPK2NYl/MY3nbOyqwvulHywZLn3xozufd/M+Mg1bWClVNB+EJu6v/HIiar+ukY55YhJYbUhhp+IbK6g== 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=BlgxNsObpDiEWZ+wlblsAe3qlMrdX+CyJfWuSHKWzEo=; b=bqRWkRCrUWUokGe4b6O88dUxaUFQJgHgXbq4lKNNpVXHk6ZWhVggJDBZ7qPMtlazV0MKbXm3KeQJgwb5GNOzMwGtfEsehLjDj6j4zL9QvqfU9OFeAyF4TRvRHiQYn8o6FZJhuGQA+Dm8slX6Aq2wHtHMFdGfkLxFYyH3wDkaQ5tBU4y9NqAqgiOU1vwuZvE3oxhJnrv453G6ooxGHZjmPJ1HtPDR5pEB4KumI0726D/5utBDg7Cq2m9EDf+bftnUc7PorFF8BkUgcWxFd6tNMTTeK8DcAT0shyXQkGM5v7GAGzmIA8oTjqNE+VzEYQF0hxzF9Hs72A4mJ6htwlLWJg== 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 AM9PR04MB8828.eurprd04.prod.outlook.com (2603:10a6:20b:40b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.43; Wed, 26 Mar 2025 08:00:51 +0000 Received: from AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93]) by AS8PR04MB8676.eurprd04.prod.outlook.com ([fe80::28b2:de72:ad25:5d93%5]) with mapi id 15.20.8534.040; Wed, 26 Mar 2025 08:00:51 +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 Subject: [PATCH v2 4/6] PCI: imx6: Let i.MX95 PCIe compliance with 8GT/s Receiver Impedance ECN Date: Wed, 26 Mar 2025 15:59:13 +0800 Message-Id: <20250326075915.4073725-5-hongxing.zhu@nxp.com> X-Mailer: git-send-email 2.37.1 In-Reply-To: <20250326075915.4073725-1-hongxing.zhu@nxp.com> References: <20250326075915.4073725-1-hongxing.zhu@nxp.com> X-ClientProxiedBy: SI1PR02CA0059.apcprd02.prod.outlook.com (2603:1096:4:1f5::19) To AS8PR04MB8676.eurprd04.prod.outlook.com (2603:10a6:20b:42b::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8676:EE_|AM9PR04MB8828:EE_ X-MS-Office365-Filtering-Correlation-Id: 59302409-e97b-40f6-eea3-08dd6c3c53ce X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|52116014|7416014|38350700014|921020; X-Microsoft-Antispam-Message-Info: UqGh0qzB0kNqjSrunPUAkN9YhZjG7TlDTr3q4C5IlmnrbVYRDGJl9FnV7bpm4W3qvFZ8ZcjEzeVBBuqAKkgt7QZnU3ZCm9BsCSrMTTtE8wAUqxvirfRcw9OBPSvPgxDO6BcgvDlZIqoEUfNgSkhpNSpyQ4PZbSKm+WZxKio7ZuOdhUr2C7zT8ZsH4Fo6MM+QCAGBJBDAdsAY1McgxFfXyoT+x98ioa5gtJbkKoCWdTU21bIPwuG3rbFU9yunNqjqyJNwegn7U5FhQJs97ZQGpsv2II3L3Z0layhhNeS5M6/xVYlJbg6pJzAJOSyZZdkoZRxU9GIS9ecI4aW87nRswCrRPInIYEMd1VkECkEYBv9rP8QMUPMJvuMwHZBHS9GCOwJsiLrzzOdQ+hDBdlP/xyrcCbF+2h+oIuXsYAFbDWcFOemJn4IyPoTaN/Gge6JW0sysM0b7+eAoT18rizvtaL0vMrTwJSUAo0VUKufii0Pr5vdTRnMTFK9LNyCQflrSCgF5F2PA8U3Dpnn+qiwIyEt9Mm2RP4YKLA20KGTdwREBKls/BcHOKQxkfcMFehVszJMZeZGDT/G8wSzk5ZCylBiJANOxpxbsOASDAniFw18a8ck/miHy2JxQDrid9YpxXxITzGkkW9rxzEEXllUM7vpXvZsvotcyL5YbniwJSgk2ejpZcHur7PXVE334ZSfDwptq603GEynxAcBfgmsUuXowZkWA2OzZ7BkmQvq3J0rjxaNeo2emxDLgMIhoutf1wpTJ0SoWJE8J02QkcIvqMevBVzsAG2txpSA+yEKryQ6oD8SwT4O9XLFtDGDy9HccbGuiyK31GtdhE6kS7fGJkoJG+w2/dSuKCi1y1H2o6/N84bEqrupp5+DkNE7qZEO2jV8VqVKp9X/939Qj5t+ylGLZi0Er/dMdg79pIj3u+Xrx+UocMY5f11RwvpuDVW0dxWEv+ta9MxdQCia7YxkBcUSnG0EsM5DDNcA8RcxuUeAT5tu/yiVgSCQLIOk240aZ6gFqUfcu9ki7oc/TnyCJQP0oj1ZDnbZfuhI+5gKjXil3h+IizfYKH7uwKjTHZdbzS1wQrrmQVo9RUMgPhZ4GOHFEo0I2Y9P5cOpVWaPQX0KokepzUd7oMeq38JQaaBWKByMB+VOFj0xRmTD5GspouoZPG8bAj3rSeNjd69qpKVcnWQ1khtQsQGxAS31flZHW0kwSUeCRfvo8DLCuxB/S4O42RnEQ80viVHlgLArBsS+Tjdf93DWBTUSM5zPDvWoMMZzawiValxwRhmDJ/F958iTUEzfe4nksP0IamAaIdrw5ZTTvqL1jJvGIh7N2c5291CT1Iwb4m8JsTh2z31hnhr4aR++lUJS/bPvSxMJV4yAEfZEOTpAzGf8MNFVWN/VXMZmczjt40FIEGYhSbj7vAE+uc/j5tkPjFWHfCNQLtS8cM0psEzDiOq2dAIcel4xM9Y8yEm821tBU+aeFahd+eQ== 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)(376014)(1800799024)(52116014)(7416014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HR6obf1XkJt6SKpvpIrUQ/2188gOylex23zpt38WcURdnNEyTL1Qyco2lNpw4cjVgxt1opfywhgWD2FFcZjYeFBQ3wCjaBlEiIq0bn1ujpaItTAqOhHZOT2HOzlZB7XKCf0JXa2cAiTRlSmE6NgDFxUGiEn+ea74jbs/9DZlB+VtfwgRZpbnF4XRtI3D5q+AFhEogdWl2cpoNJsMTVk86qwhUaRXdfMMJM8/05r5TcAfp9sxPa40aOPeH/WxcfciE6D14V0hgd/6OamR8Y/astBJbWVD0AgioIqRnu0n6FIzxf7iWyOiOXDypV2KxCLCqGUSnAFMwBU3KaxpPJwJFqa7/40dt7SJ8ztjAp12T0sLVv208VjPrdLsM82HecEJgr3UFvqRdpBTzxXuAL2Fvo1IU5VHn8aoQ+6LGOpHCbbyJTiy+M7g5UnNBi4nfN6fdM6wvTQJXHSmeQBWgW60a+e7qCKqPJnddkI5I6idEvWpX81WBarq9OG7ErmodGNlDUnhAayXtElVG/JaLw3xghjC6vJGvjAVqB6Tv94fZYYlAQySAriBXBPr1T+oOxvUzOj27gpdFYXfOdTRPo07QL0vxtPaCnTc+Z25+7zQ+swXW7Q/aCF4IQppLT8LTterBlknbK4pTaH2XP64e9HdQ0Kz+69NWp27L+M3pytFyQ3DLsW9g67gqS5nSer9IRNU08Bh1pkWchYypCiuvLz+z0M4cvliZfED7OwuQ122p4vllpu5YJyGMSK/5O3fsZDlKbQhY3oGXEiwS+UYHhOD1hOW4HfxB+fKv43YDTGiDILGN/Dk7WsRo+IxFB8+vhR6KAUOhKuqAaUeOz1UGu9goCM7WwnFiBgayh8GIRX8MYhgTrVu+ub0JYFFYeyDWOXuS5v1RP0U7hL9rFiGee2YKONA0iAJj94C+kyQQlERSHue/o7didSlgGeX2emQ+Z/pmY+CZ3u5im8LTj9mEqHwO3XwPaB+vPhVqgOo8tjsbUMUTl+FvIfcGXWLB2sDaWkhRA/g2VRBdZCrd/976v2tG6Mz/2heZwWBwQGHD5l693OodIDAg60vetg6o4qObmTbxQdfzPvrm/7xTBzqiFafbwz3fRPY/Zzyx079mKv9GusGmNqIvRX57ynAKqW8h1qlLbqeMDLEDIVcgJTrsyvzG4DrUpwLV6cM5D9ftzHS8koH0KNN9g7+mSBpgj37zfkjr/w4BRxJe6cnzMRyp4rCRGV9lhBgmOa+Ppozjp2QvYj5crcfv+coI1K3o88VbIVApaTUx37ia5t0zL3Km0YvcExvdA1fSy/7nJgDOdIkqr0lsMt8kv33l200UG8pL2Q6p+6JkHjsZ50o+c31eKA0xveIP6KH0PCIrKkgGPeJspiINgLTYBH2YrV0dy3C+qjRuZrpxwRMPcZ/wA2r/TMfNvL2zHaKasGpojV6g29EzUkvhhE3KzfN8ZGznpJLt9SpqlxzanXdvp7zLUWanKWAc7P6WKHQ+x+kI+yGSrb5P5zwgpwI1IbO/DNAFpT+ADiyQFmsWJsBPoumxoXL3KT92avJEAqBKehyEVI9Br/HY3W9NOI72lVBlXinkcXoXZG8 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59302409-e97b-40f6-eea3-08dd6c3c53ce X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8676.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2025 08:00:51.8409 (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: BkQyCzJejQrUdifHRTU3wkOWEJtaPqbGmM1CUKnCyOK6MZE07/LfDw3hd2gtX3Z/DUsLiIi9PDyF397sUxUxuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8828 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250326_010054_820959_25CCA977 X-CRM114-Status: GOOD ( 12.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 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 --- drivers/pci/controller/dwc/pci-imx6.c | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index fbab5a4621aa..42683d6be9f2 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1261,6 +1261,37 @@ 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; + + switch (imx_pcie->drvdata->variant) { + case IMX95: + case IMX95_EP: + /* + * 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); + break; + default: + break; + } +} + static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) { struct imx_pcie *imx_pcie = to_imx_pcie(pcie); @@ -1302,6 +1333,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 = { @@ -1401,6 +1433,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;