From patchwork Tue Oct 15 19:17:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13836993 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2075.outbound.protection.outlook.com [40.107.104.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D76EB1F5830; Tue, 15 Oct 2024 19:17:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.104.75 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019869; cv=fail; b=R+aR0gdrddySa1SEngPqXxpfe6q6N+OA+VvKtZxaU7IrUCi2hGZa3pTymTs/MXB5tIM99ww+tJ0m913FANHtuNpTX3lPWFPJbTxMx2iX8SURoAMWEqmgE0RrY3ndqCGMIr3UxRlWSeI71zJLZtIBQHgRzqi7n4G43Xd3SPtjYHk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019869; c=relaxed/simple; bh=mpQkyAmcMxPoQ2LNPaVnnXkLHMMBxJM2cbPN+52/6qM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dJmf4HnQ+cCIzF2p6p30y23ZdltTwcobT0lJJu4/rUVkMDkr1JhEpcxGe10+SXLXzhLJHYbH4mBxjq/yL/zNTRJbWDvaxoajY7CMiSuaM/CvhHyxtF6iqqBSF4jVQz6Uzw3fT+2J4P+2fzqmGYnAKtRt4RPpYKjPxTUqnr2cDVo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=jolDNz6h; arc=fail smtp.client-ip=40.107.104.75 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="jolDNz6h" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hFNUhd8schFXsNX9Aok39fvhPNg2K1Xndn34PFp+aP9zKYjgoC/m67qBVZjhhHjNh97Es36YOiOb1qkyorMdnqF1fP6nlI9ID1fT9iAt8eVJFnDDSe2QNvqewsmp3AqGdWo3jeuf8Buge1wnKEnzekyUGH7o7J5XYP8po2M/mHWzVcaPEXygW+dIX+JWiJkYXfCGe7inaPywM5vJapfLnqkd4xdKNRGfFKN2mgmOicgM57azTk4Zuv983SqiUh13CgenvwisXRTOhM2vohTIhQphK4MiYbpLNalWiNmjc2cjDlNdmzV07BNeogWzZ5k/hpPnRZSHuJMys3S84y1G3A== 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=OPYi6nf5hF87bcZhksCeSoE7DI1/Kxlduip+Pl9A+ME=; b=VX23sYR/7NHPDDTppcgEOGc3aybw8mTTpDvwwgBQV1p/HNU+u7GH1sIoYAGpnLlear/ahLiHvJNiyWoKp4L1yGXEV7+Q0X7/hp3ci0sZqHd4afUlC8vzJ6iLhUidB+Jtdu5jQ0Bmp6jfvlueWVaP9HtJLN+nby8kUY2B40oF1jV3dnCZ1i/nb8lEpwo9hUi+EXbqcjyKLL75kSe5wGq+k0XoIplC35G7HyeiLk0mWKasSghpklZcnCJCgul/ZdierAZCQtdMu7L6JQi4G8chK/Y01zkuLGKsggDK93xWINz0QIc5w4V3J40RyUS0pXcNCnmTFg4NS8mujwbYIfkC6A== 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=OPYi6nf5hF87bcZhksCeSoE7DI1/Kxlduip+Pl9A+ME=; b=jolDNz6h3bWC+zrFaswi3C5hIy9dA/w52JXm7z1pzw17upGaNEvkNsbZ8/toKh4SRnIBCP/eqmsv/L6IzDuB4/P0P5XE3l50v3i8QiGzHzogaRv7BvaoGVCyyge6PsFma+kugGITWn2mZyCZg3lq5JCS88MaS3Ikyacu5VgNnBlrNMoREoj0SVUfifPimgP4hEY98NhPAH+C0cByq23meq87TqNEMetSyD/oJCsLit1zEjHszPB9ZYU3zdzWFK4Xz43BLyXhoe/ajelVhvP8vWmEXI/Cpwv+JnK4bN9Pt20Bh2hD24mPoorjiiO5WhfCcVXaAwtsDgopK9TAeGfIyg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI2PR04MB11002.eurprd04.prod.outlook.com (2603:10a6:800:280::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.26; Tue, 15 Oct 2024 19:17:44 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.8069.016; Tue, 15 Oct 2024 19:17:44 +0000 From: Frank Li Date: Tue, 15 Oct 2024 15:17:17 -0400 Subject: [PATCH v5 1/3] of: address: Add parent_bus_addr to struct of_pci_range Message-Id: <20241015-pci_fixup_addr-v5-1-ced556c85270@nxp.com> References: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> In-Reply-To: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1729019855; l=4731; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=mpQkyAmcMxPoQ2LNPaVnnXkLHMMBxJM2cbPN+52/6qM=; b=yAk0aYUD19q9Mz9u5tenR1MnHu79q4JNoA+Uict2jX/ebVbxgfGNePvLdPw+Dmrui9Xt5LDxE RrjPRxJultiApLREyohOc57Zaa5aTq4ocyaDO8YLNHXlagw7siqVO44 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR05CA0117.namprd05.prod.outlook.com (2603:10b6:a03:334::32) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI2PR04MB11002:EE_ X-MS-Office365-Filtering-Correlation-Id: 915ca2cc-1e15-44c2-35a7-08dced4e0bdb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|366016|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?BEOnK+P6hHhhhrShmF86/L0gRPsuLb4?= =?utf-8?q?Qrmn4ZdV0R+SiA3JVT8+0OfHbfSuZtyVzFsYU3s42yB+ES6sIbrJRxqUGgbjwqfGT?= =?utf-8?q?D6gzpzhYifQftS1BNeeognm9wqwB7HppDE7Hm/tTL4Da3lADpbhC5SFaZJ97+xH3n?= =?utf-8?q?HbOF+TLX4jQDTKaw+TIBBoah/Ad+2TkSNoMDeqQIhsPCAY9O6R69xOObxRXR073iS?= =?utf-8?q?6Hz56aAM47XuXD+lk7l53QPGJBV8S4bbHspicN+Y1uVnrAUu2Ib2/nIbyxpGoWe8s?= =?utf-8?q?potxJ5VMtNN5GcP5LVwHJxvLV0ZiVp34VcgSBxa+qcOz6j+R7/IUOOggwl477v0kD?= =?utf-8?q?G6x6hJGQHG1k8BhhvuolEJk8lWbQ5UrccMTu0ZFog0l1BB4hgDXeu9owVhzzLXXlh?= =?utf-8?q?rboc3XL9a8ZgXFMCYRFaSvfdJqX+q89OFwQsVwG6fxxKluLc9X+kiPvlxSvV7Pcm2?= =?utf-8?q?2o/q3JBXGxr46AYQXQDwp6hln/iBKMNr5olaKtwkF0SsvC788qfEqvSXsYtvQoytc?= =?utf-8?q?gqETi/ZNNeU+kINjJ9GK2H1BLUZDzL6lIUi6jy1cDGyA0+B6wfjpid9rHpj9ldNEA?= =?utf-8?q?z+b5FXdcNTc7QY5TpJmO93uUH+iqFvEF1uK/6KsoEAfkXeHuJxUfls/9rKBv7zfH9?= =?utf-8?q?JJxQd0u+gtYllOWplb2rNEqHffw1fu0rjCcUNqfEkCSjc1NEthgvh00d9qFpigN3v?= =?utf-8?q?gUm+Jv8p3IM5vKBylWYTBJu5Ad6B+H7Ds+euTIQQ38oZSDDefFZb6eSpEWNBRH92q?= =?utf-8?q?hZJlZX+AXEBdI3Z0g905EGrGvdmfRiHaUPT6aSPTPaQlr/VvjG3fBewzY+Tw5P6ma?= =?utf-8?q?+ZXPIH2iKEWptAPrisw0JGQ/NpVCoC5B4wsqeNIwXuAtqKuYu3znmoBoV6yf6FMmB?= =?utf-8?q?KQZUWlUO4bEkMDBxWYnYR4uk3VXQJCZ0n+bfV/81wCUBZ8Zm/w2CAMT0OaCftAZp/?= =?utf-8?q?+2veN9+pXJM2JJv8Zlnp1ljrdYeg1oseexgrxkHiekA2BPAS4yR9TWSfq5K1fWev0?= =?utf-8?q?lFYI7qBYXxZKAxUrBD5RyHoURtkmsM9U6lwsiWvPx3Gaq4sZ9LgloZo/c56T2RVI6?= =?utf-8?q?E9ldcClIPXMLiGsFAwrkkPINsM26WF2+IBOX7AJXtDDFP6J8bVbT+BWJlIA7CZ4SU?= =?utf-8?q?ME/B7qF9X12zvvqO4hrpeF0y89Ip1H82o7VoBQeybf25S+TQd3zR6QTB/b0Wqt6AO?= =?utf-8?q?OI2bxvytkEkUHb75w9mBvp0HZS4ymZgiQY+V4xZ6prOnf5SBap6UH+YV74xGKxGs3?= =?utf-8?q?UH/dbA+u/KmQfr7rgRMJg0bVt789HLWHTtidjpuM309gsSL2eBPBTDpc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5otXx9Uz3x8G7qE/HfjbUZ0zBb2q?= =?utf-8?q?2HIMCqnt3DdSmmlbsAypt20+MNPff0nHHrYKNBoe84LtFPHC/Jsdlhi7XpJdoQj6F?= =?utf-8?q?tsZPzXpMvmA2ELjHIQ8Fl+/TIJ1iZPwzaU6aYzpqej1dFjwC74SLLdt7vpMRNhgfp?= =?utf-8?q?2AgrOlLJ2k9ZJqGGT2k+iXw/7EcTK7lU+hZf33ab+0I1DbiTuhuPBitG0bdYgKGpT?= =?utf-8?q?Jhg2jef2oeseuKMp6aRi/NAcBXcUkeYErsbI3jGbUhD1dWPhBRVAcCpwUzXs789CV?= =?utf-8?q?LXYG9YBYXNuXuDJUJtFvWwMmCyKtI/CYC6qJaztKlMN0Kn7agw8y6naMkfmqMu/+3?= =?utf-8?q?H/9co6gEXxDDfYe5bq+069oCd2cWxUHGDVMpm5VZxeI6ou0Ql18A222PDoEIR8LuE?= =?utf-8?q?61A1Xc2HeO6FJTh1DeUwedNEiIQfmaIpbzUeZQy56F50RZs5WxtS9/hUIRH6EgOWp?= =?utf-8?q?h+SsA55L/L86HBDE7Mox495+siJJQ5lvVIQS3XI0/QL0SwO/PeSgSXh6x+Fe+xL/T?= =?utf-8?q?WJNczC1imhL8nkUkXnpw5Ni7XTRT9JiABO7rjvz7wM5LdhLv0cA1PA4YwGcEdE+Pr?= =?utf-8?q?XM3WBtTmJ0IFv7iOrja+jUybNMLefeb07Z3VTMBxR19op90an+RDu5DsK8Tp6SEDG?= =?utf-8?q?C3gdA9iHRWd13jnAuPIpbENoiZvOaVUoYt+bEfgH1Zk3GNRmWx0MjqGJkNq8CRX24?= =?utf-8?q?NW8wpPO1/Dez4gzDmlNR2Hqpf7OU3JTdA8NpXbxK1Iz6wCQy+eBXPGWou7CUZ8/WE?= =?utf-8?q?xFpc4MAqwvai6v0G07mbwARyrylGxLGbUWiZ1cem2JEVC57x8NdnYjvfvRNEoygyp?= =?utf-8?q?2/+15qfRk9xjEodX6XfuSwfTj2nPX9FDQLUv5SDN50QLvjInCsIFp/6K8Za1ttePu?= =?utf-8?q?FklcssTTcXHTUStuZ+x38uoz+gOGKgkoj5+p4Oa1+mZnWOZ5zcce2Q/Z4OnR6jf6X?= =?utf-8?q?CrviU5PlqtgfCnnxsOtt47T+fes018J8GNv03TLzXJiyoxG0nnFdjoYV2C5qUEcdv?= =?utf-8?q?37Ggk5/xwD5I1c9EmRJ1E/EABYuaDFj8J2/6qUOqMAxo2RP9AeyyBQeR8iIGzR9BB?= =?utf-8?q?5u0rZnM1jYlrE+F6S9XUzWhOabBlpMxDV1N9CE/uZe97xOVOITouJQZoWcZitVoJt?= =?utf-8?q?CTDGl1Ll2tj4MCu3K/vuEz83VlJvZjlxAhZV2L/u/sBoxpwZhPh4lQU1vAiz11xjC?= =?utf-8?q?QiclLjp5cCr4oVw6ABWvlNtU3ra6rU5vU8Ko4dSRbPisSnY8TyIwk8lOUVJjdP6Bp?= =?utf-8?q?qjEL9/gSQJUXPzrRWMjZxBBW/qpcWwuLofuKxdl6GGagXi/enKtgJJvDaoyXX4rLg?= =?utf-8?q?4pIuGemKiMaMxiYbkR5DVqjzEhzjcuZl6rGWVDMVwzqKQmYnOVEvaf14vJxELLpgm?= =?utf-8?q?S5UVCAYyw6XleMSip3neW6mE8PPBKQpkK1GeXPV4phi3HoYpwFA9Dp2qEsa6zDE6l?= =?utf-8?q?8ZIaES7zwNMwThZSt2/pExWXAFn+vyjCarDjrwHY8Kfkf/6TksNp+8kE=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 915ca2cc-1e15-44c2-35a7-08dced4e0bdb X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2024 19:17:44.2821 (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: xc2rtHGTlkrULzy6w6+XBXq3IupCZLahZWyt0jCUb4sfBblRJtFlPJlYKENjTCMHbknPcTy8H4GZpBR38yxb6Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB11002 Introduce field 'parent_bus_addr' in struct of_pci_range to retrieve parent bus address information. Refer to the diagram below to understand that the bus fabric in some systems (like i.MX8QXP) does not use a 1:1 address map between input and output. Currently, many controller drivers use .cpu_addr_fixup() callback hardcodes that translation in the code, e.g., "cpu_addr & CDNS_PLAT_CPU_TO_BUS_ADDR" (drivers/pci/controller/cadence/pcie-cadence-plat.c), "cpu_addr + BUS_IATU_OFFSET"(drivers/pci/controller/dwc/pcie-intel-gw.c), etc, even though those translations *should* be described via DT. The .cpu_addr_fixup() can be eliminated if DT correct reflect hardware behavior and driver use 'parent_bus_addr' in struct of_pci_range. ┌─────────┐ ┌────────────┐ ┌─────┐ │ │ IA: 0x8ff8_0000 │ │ │ CPU ├───►│ ┌────►├─────────────────┐ │ PCI │ └─────┘ │ │ │ IA: 0x8ff0_0000 │ │ │ CPU Addr │ │ ┌─►├─────────────┐ │ │ Controller │ 0x7ff8_0000─┼───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ PCI Addr 0x7ff0_0000─┼──────┘ │ │ └──► IOSpace ─┼────────────► │ │ │ │ │ 0 0x7000_0000─┼────────►├─────────┐ │ │ │ └─────────┘ │ └──────► CfgSpace ─┼────────────► BUS Fabric │ │ │ 0 │ │ │ └──────────► MemSpace ─┼────────────► IA: 0x8000_0000 │ │ 0x8000_0000 └────────────┘ bus@5f000000 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x80000000 0x0 0x70000000 0x10000000>; pcie@5f010000 { compatible = "fsl,imx8q-pcie"; reg = <0x5f010000 0x10000>, <0x8ff00000 0x80000>; reg-names = "dbi", "config"; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0xff>; ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>, <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>; ... }; }; 'parent_bus_addr' in struct of_pci_range can indicate above diagram internal address (IA) address information. Reviewed-by: Rob Herring (Arm) Signed-off-by: Frank Li --- Change from v4 to v5 - remove confused <0x5f000000 0x0 0x5f000000 0x21000000> - change address order to 7ff8_0000, 7ff0_0000, 7000_0000 - In commit message use parent bus addres Change from v3 to v4 - improve commit message by driver source code path. Change from v2 to v3 - cpu_untranslate_addr -> parent_bus_addr - Add Rob's review tag I changed commit message base on Bjorn, if you have concern about review added tag, let me know. Change from v1 to v2 - add parent_bus_addr in struct of_pci_range, instead adding new API. --- drivers/of/address.c | 2 ++ include/linux/of_address.h | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/of/address.c b/drivers/of/address.c index 824bb449e0079..38db2074494b0 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -811,6 +811,8 @@ struct of_pci_range *of_pci_range_parser_one(struct of_pci_range_parser *parser, else range->cpu_addr = of_translate_address(parser->node, parser->range + na); + + range->parent_bus_addr = of_read_number(parser->range + na, parser->pna); range->size = of_read_number(parser->range + parser->pna + na, ns); parser->range += np; diff --git a/include/linux/of_address.h b/include/linux/of_address.h index 9e034363788ac..0cff903653916 100644 --- a/include/linux/of_address.h +++ b/include/linux/of_address.h @@ -26,6 +26,7 @@ struct of_pci_range { u64 bus_addr; }; u64 cpu_addr; + u64 parent_bus_addr; u64 size; u32 flags; }; From patchwork Tue Oct 15 19:17:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13836994 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2084.outbound.protection.outlook.com [40.107.103.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 84EF9201016; Tue, 15 Oct 2024 19:17:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.84 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019874; cv=fail; b=bpRmyPjBUZii4avRkF+1Oqihq/J+Kz1WOLRA9zHB688Ge5iB+2W/SraCID4aaV4RzgSdzH4b07apaUOEmiJYcvbQNN0fw5tB1AY5tg3drVoO3xhQQTxutToQAhbtUBws+Cxqv6fqcAzvVpQC0Babve4dgR9xr+/cUlMFdHurK1Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019874; c=relaxed/simple; bh=mxnXQtsQ9r/Ji6o5AXb2owHgaiMSnmyNmFBnlNFd3kM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hpeCvHO6MIM4h5xnmlRP5fn0hFByfuOsggi+xUgvw15eTZK3xU2tb6h8LEPltf32bHZTGezzUd6eGEl+8B58VcKetQk+WAIdthNrzmj6uQsjr3fc88Mb2lMbP+AL+nXofqxTMPG3Vry5vQSB4MWj4J/1yQw4QtRqmnTiaWN9zFM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=kD6QIQGE; arc=fail smtp.client-ip=40.107.103.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="kD6QIQGE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vM8R+d/LfoZGuLYyngUyDupJ3aO/O4wV8vmVEtu83yOvevgg+P9Ltp1ds3e4/a3Q/bE3+cmtg8DzbvWplwsJUMLCEUAx5puhLuxrR9hRV6zWW4GeErW6Qa1xiWZiRaepLAMCdeew2tC9wqvnwzg2F824Bu9k7UDr63UgEXVKW0BjVZhDD/UERtYkq+FnvxXqOJFV0QGcCOa+nx6IXPuaUdgqMoJTcN/wxyt9xNOGG4EEvkacth1eNnJlbO0vX/+b4wLi6/6K+Lsv7IKLgVwh/XTvMOch8mmNHNpvwuJVTz3eNy5jJYtn+WVD2xmuN2ztqeP64Rf+oOACZT8fMYxd3g== 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=fL3UKGvdWP+KFjAwQhRXw53UwJq+kOcQRY6+VijyXiM=; b=k4VEdOcQNdZwvInN5iIFh469wpD5CL7Xbq/yvZdtBHmD59ebkKmsEjb7/1tTyDDt7Mzu02Soi0PNvVdLBMMb1Sel0Q2aFapEvcN6yfj6pGwdTkT9+6HJVQt13cmAxCd10N4lVtKFF+LRWlPk1fu7XCNGW1gclvlIV2ypcyLe7oiduW7a1BwUbTvKwK2rx/kPPEGh9xyeApQQkQ3oB6Hjx9M3MvyLPurWD6v/99dvAULohSvuEvSoAJOnAziGfoS+HpphZidu3mw9l7U8EdND2fC2MLsirsj9Mveh+3b/OUsydYlxMf48Py3UuOyxeMTXkCRjgTQFqu97HZQAFja4sA== 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=fL3UKGvdWP+KFjAwQhRXw53UwJq+kOcQRY6+VijyXiM=; b=kD6QIQGE6DhlVjt7VzLe8SYXFu1/rbs/BIOd1a7ryeKgMklakfEt5Vv6YQse0UlHOjO+dmLXDfF+T2IwK+7zykFhN/p1r+XISr7/dgYssNQjl6QQUJKMcixplAStf7Blr0SNN0+YdNb5xNKsp2oLyPG5ZLnbU7rQVJlyZdIbQiyEgBpTuHbcwAp4hBYwgiMgY850r4GiZJLUAJsBYsCBGdiiWDlXtZl3Fp2q8plY/3cCmglSoPNv2ABCy2mrkfw2cuSbjeUDJqeAZ08+a4OEtMX7eE0RqVbkbRi4745SyRbezhbMP3M/zJgj1lJlalu5vxF18LOOJmHwT6Qmkp0VIw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by VI2PR04MB11002.eurprd04.prod.outlook.com (2603:10a6:800:280::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.26; Tue, 15 Oct 2024 19:17:49 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.8069.016; Tue, 15 Oct 2024 19:17:49 +0000 From: Frank Li Date: Tue, 15 Oct 2024 15:17:18 -0400 Subject: [PATCH v5 2/3] PCI: dwc: Using parent_bus_addr in of_range to eliminate cpu_addr_fixup() Message-Id: <20241015-pci_fixup_addr-v5-2-ced556c85270@nxp.com> References: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> In-Reply-To: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1729019855; l=6561; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=mxnXQtsQ9r/Ji6o5AXb2owHgaiMSnmyNmFBnlNFd3kM=; b=hCXFkStAglAgicEerZg0T9vjbjZOfT2D6EApXOSIqlVLvUcP9FLTbnekzA8GqCTVnl6JiHKeh 93wW59KQVo5AvoqIVG0mHxDp4xZOBJdwVOFC0RUTEyiZBKNbGLA9Q9V X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR05CA0117.namprd05.prod.outlook.com (2603:10b6:a03:334::32) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|VI2PR04MB11002:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a7990a5-dbca-4741-e6b6-08dced4e0eef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|366016|7416014|376014|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?EoOZaUTMFidn1kfxM2BEfwLkBa+aZiO?= =?utf-8?q?wYIzzvGd8jpdfyUdOZBT47EV9wYdt3uyU4zZzrZtAn3ChCRxbzRIVujcStKcyY7hr?= =?utf-8?q?fEWlHnsDOpKTOAu45FIpUW7UTnbANNJlD2qlKQGreqkKUwNHA74mCBDy5B2uuQTS8?= =?utf-8?q?CTZYVSPV3l5frvJbDR7umcL5b0KJy7X2K5QcNzUOOBxylg3mN8Z/XguroYVb8CcAu?= =?utf-8?q?j7v4yTXgejs9iVKqPgQg7bBq8obfX5w6rZY1zYuc1ge9j1km7AyEnyGJ6D5FytuIw?= =?utf-8?q?EELIOfGQ2I5Ne6jbvoeLIgpb8hvdlnbl9N+5GuledX2LDY/IR4whkMb+aYR/frQsj?= =?utf-8?q?HixEjMYQjmRUPSq1PsiwtZPJBoUTS9S9s0B3OvnnQu/c7KB3t1xybjtrSxFjptmbe?= =?utf-8?q?zxyjQft4NYJBRlL+ddQ/9LO85MXyXmBnInU6VMTM46EuPd5Z6QqyfmKTNLrMH4Swa?= =?utf-8?q?nYk+0G02gi1Is3/wJpOvhpkUrwoQXJo4p4ARACgtzvk8FLvTNZsCIsegw2RoMWwaX?= =?utf-8?q?CfVv8F9u8qILvCymQ4mZJ4RilhFSkUp5djAnDBZlumBbZiCUd4Xp9RCCT0/oxM0cQ?= =?utf-8?q?xA8K1sIJHFpko0HSexrKh7HC8oa49ddkGlHMxKWSqJeS160RhDQkf8LFyTnom2XC9?= =?utf-8?q?KjgqpJadlAL/CeK+sgwGzPb8qCJm3tx05CCBbFERdiSFMPIsJUeixYbVDP+SGpoBo?= =?utf-8?q?wPnmBsxif7flPgT+dhHTlNTJDtlxJ9NHnOqP28+xHeDYfLjFMPjF9hgUcZevSSafW?= =?utf-8?q?KVe/fbDsxb8B49aC4nEJsD7PvUDA+TVF216C3NL5BdXU68+y9l9lcDaVxErV70Ehq?= =?utf-8?q?elIIEso7Y/p1C4x9qKAYo4uZ2QXm+IU145fbVoTF2/r4EFDRvg1PTYzWioVthbGd7?= =?utf-8?q?dQYam0oMwQgB4hfcZVogiZly6fuqQKgsS6Qg1e4wiPHCvq5e9VE9x6PpJz8dt9Ods?= =?utf-8?q?t4nWGuDBqyoZpYsenurr11wgR8I97LcFyKL5x6xgZQSzcTwWX+WtcsVPEc4hSUznc?= =?utf-8?q?k9JjblBJ6T8BDvAyd9C5TqZqFwrE8wSrksHw3SQZpUX8QrZakTA0LwfNpRAbWWs/q?= =?utf-8?q?jA0ag2KucCDe+2UrPivYG43cYDInTM+SHTyMgHuWU7LrJlzqA0jXZbM2BmWumd1/m?= =?utf-8?q?PAiMYUz+XcrA7v3qVWB9N0/zCPxTzMwfhdwQDx4DRafIayURYVZ9IPAcPgq4MqQBE?= =?utf-8?q?qeehrIDbQuF/eqDrEMlg554II12hsWPd1YezjY7VtNgoYTXqqUMep3d+MpjevpVMU?= =?utf-8?q?qe5eF4s9cowGocPh97xVs0AQAVyGJ4PPMVUncf/c3+i4bDSlcY0uuWEA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(366016)(7416014)(376014)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?4nlx2r2CBlgeDC4EHGw6DoepzjgE?= =?utf-8?q?7e5p6+jdSMhozX+rni8/3/U/44uRuJZeFKPoyoJHP0pX4TdSE7shLP0HUIRGkFyI+?= =?utf-8?q?1+lrbe/OxJWVsK6uXO5iygawBjkfW+upPi6lo2FsjGHbPRHSy5iwDY0HRATbhkAat?= =?utf-8?q?TaO1F35Gj8cTti/yur8Nwm9B98TEzgKAZ3VGtbH2r8PDkLNjw4Yw3ZdU/8hjKGQrc?= =?utf-8?q?Mq6o+Acep264Zq8erv3c1hkBGh6TPUvaRqBaPm9hGH/SmMDUfy1tkQ7uf65bSMZAj?= =?utf-8?q?axNM55EGuBS/Qt/VorOcE/Fp1CsOCbuHoW0n7DLZwT1rxZGMY63mpX3IpIh1dog4J?= =?utf-8?q?tBiO9M7bp+E5wWGomROYsrNe65JVBhDIzwyRUUzBu84lN5e4OkbuDSQmqxKMqWAtl?= =?utf-8?q?AwgkLfsoOYTYWQCzXcxibAw5co8fbCCigLH/iYlJRzTK8g1yGZF13MYGqzTQl26zZ?= =?utf-8?q?0ICxMIspJvDUhdq/Sjqnqm86toDPu+00xjOypbKIc9xTk5rQuUNh2EH4/8yXvpMON?= =?utf-8?q?pop+lEfLgxIfiXxSPj0oNmS+y00VxhZhCvdTTLproNhxUxHUrmD5e59KktCAZv/N5?= =?utf-8?q?yE0qqjCNUECPS/cvqY+N1H1eP3E3G30Into+lQVWhH0TTjYRkeMJodQx3wy2zSNp3?= =?utf-8?q?xd7QcPuMBkaitsvbXXweaYQyePZbsUTCy5DwqpOljHHsn1fehqFHfm9EfMLeiU0Ng?= =?utf-8?q?1qLp+cXzDX9RxhOp89yHB1MoEqgont1lzEpOJt+hB6Hk1I93Ho1sCE7Wqo4HXo8yA?= =?utf-8?q?wTQOxSOlTk9JSh/yirLdvQJNzfOE8mE/yRJ3AQF534r21ugwjTRXHNxK6X4FT75TS?= =?utf-8?q?XV2VDnCb3eHBz1O6A8PGNqZ0cd8gMPUAaucb/PMQborIXGr/cOlzhoYvr61M2im9G?= =?utf-8?q?PjLvtyLgkUuuzKBEoPkBv3V+rcCm1W+UHkSDDvJdXXrp7J+a0DPKAiyG1YEd3mjTu?= =?utf-8?q?zev3Lkqt+9ObWa9nrfFUQKLeWLiNdki1I/FEW+dsUkgHUm7ciO04/hkCBFG347Nq8?= =?utf-8?q?IinPzBnSRCB5g9Y1AjJxvh/c/PrAsBqgD6AvLKLgHuQMVyBQX7G8Zz+n3wullA7qQ?= =?utf-8?q?lznA5po/T8ICLgIm9n/IaQmoTkXn+7tcwF2kR6V/nEknbgFJAQNMiHoWG6uVC78e/?= =?utf-8?q?5cdoypX8cXKOWHpBZRss0A7jKqqw0O3GS04uYM1d5QALMC/HnAIk6wVwKQos9k+J0?= =?utf-8?q?ezMvcUTEE5bJPCoIm7aT57fetJbpQUObI5Dj/w/ogzR8SIJ85I3VhLJucVVb2QGdW?= =?utf-8?q?LOTXhHgIdlkulNjH3fkdN58x+kfc9ni4KSNavpM0TaoP0wM68gpqHEJp3pIJe73Ab?= =?utf-8?q?/j3ae82TsTYeFDmXkkSIEttNEPGg+B5G6BdwzKj7S9Y7Ho4EkT+FwPsWDaQKFyrsY?= =?utf-8?q?YEJvgPnoo2ScTAW46ZcePXQKgVAMfA9FetMLZm3RfE73r/fJrvC6Dns4L1j+ALiPc?= =?utf-8?q?UDodmEAtxpGvPvQgd63oE4twOig7cwx0WDR+lIkZlXNjoxvoOqy1Stbs=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a7990a5-dbca-4741-e6b6-08dced4e0eef X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2024 19:17:49.4657 (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: NduNIf2tDf0Rls1GonXUCjvlSzQyN/oWuMJ+6eRhxvTkhsk/CS0PKj+hTH9oJeR4M0R/AOuoqP1/LgkuV5WpWg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB11002 parent_bus_addr in struct of_range can indicate address information just ahead of PCIe controller. Most system's bus fabric use 1:1 map between input and output address. but some hardware like i.MX8QXP doesn't use 1:1 map. See below diagram: ┌─────────┐ ┌────────────┐ ┌─────┐ │ │ IA: 0x8ff8_0000 │ │ │ CPU ├───►│ ┌────►├─────────────────┐ │ PCI │ └─────┘ │ │ │ IA: 0x8ff0_0000 │ │ │ CPU Addr │ │ ┌─►├─────────────┐ │ │ Controller │ 0x7ff8_0000─┼───┘ │ │ │ │ │ │ │ │ │ │ │ │ │ PCI Addr 0x7ff0_0000─┼──────┘ │ │ └──► IOSpace ─┼────────────► │ │ │ │ │ 0 0x7000_0000─┼────────►├─────────┐ │ │ │ └─────────┘ │ └──────► CfgSpace ─┼────────────► BUS Fabric │ │ │ 0 │ │ │ └──────────► MemSpace ─┼────────────► IA: 0x8000_0000 │ │ 0x8000_0000 └────────────┘ bus@5f000000 { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; ranges = <0x80000000 0x0 0x70000000 0x10000000>; pcie@5f010000 { compatible = "fsl,imx8q-pcie"; reg = <0x5f010000 0x10000>, <0x8ff00000 0x80000>; reg-names = "dbi", "config"; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0xff>; ranges = <0x81000000 0 0x00000000 0x8ff80000 0 0x00010000>, <0x82000000 0 0x80000000 0x80000000 0 0x0ff00000>; ... }; }; Term internal address (IA) here means the address just before PCIe controller. After ATU use this IA instead CPU address, cpu_addr_fixup() can be removed. Signed-off-by: Frank Li --- Change from v4 to v5 - remove confused 0x5f00_0000 range in sample dts. - reorder address at above diagram. Change from v3 to v4 - none Change from v2 to v3 - %s/cpu_untranslate_addr/parent_bus_addr/g - update diagram. - improve commit message. Change from v1 to v2 - update because patch1 change get untranslate address method. - add using_dtbus_info in case break back compatibility for exited platform. --- drivers/pci/controller/dwc/pcie-designware-host.c | 42 +++++++++++++++++++++++ drivers/pci/controller/dwc/pcie-designware.h | 8 +++++ 2 files changed, 50 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c index 3e41865c72904..823ff42c2e2c9 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -418,6 +418,34 @@ static void dw_pcie_host_request_msg_tlp_res(struct dw_pcie_rp *pp) } } +static int dw_pcie_get_untranslate_addr(struct dw_pcie *pci, resource_size_t pci_addr, + resource_size_t *i_addr) +{ + struct device *dev = pci->dev; + struct device_node *np = dev->of_node; + struct of_range_parser parser; + struct of_range range; + int ret; + + if (!pci->using_dtbus_info) { + *i_addr = pci_addr; + return 0; + } + + ret = of_range_parser_init(&parser, np); + if (ret) + return ret; + + for_each_of_pci_range(&parser, &range) { + if (pci_addr == range.bus_addr) { + *i_addr = range.parent_bus_addr; + break; + } + } + + return 0; +} + int dw_pcie_host_init(struct dw_pcie_rp *pp) { struct dw_pcie *pci = to_dw_pcie_from_pp(pp); @@ -427,6 +455,7 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) struct resource_entry *win; struct pci_host_bridge *bridge; struct resource *res; + int index; int ret; raw_spin_lock_init(&pp->lock); @@ -440,6 +469,13 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) pp->cfg0_size = resource_size(res); pp->cfg0_base = res->start; + if (pci->using_dtbus_info) { + index = of_property_match_string(np, "reg-names", "config"); + if (index < 0) + return -EINVAL; + of_property_read_reg(np, index, &pp->cfg0_base, NULL); + } + pp->va_cfg0_base = devm_pci_remap_cfg_resource(dev, res); if (IS_ERR(pp->va_cfg0_base)) return PTR_ERR(pp->va_cfg0_base); @@ -462,6 +498,9 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) pp->io_base = pci_pio_to_address(win->res->start); } + if (dw_pcie_get_untranslate_addr(pci, pp->io_bus_addr, &pp->io_base)) + return -ENODEV; + /* Set default bus ops */ bridge->ops = &dw_pcie_ops; bridge->child_ops = &dw_child_pcie_ops; @@ -733,6 +772,9 @@ static int dw_pcie_iatu_setup(struct dw_pcie_rp *pp) atu.cpu_addr = entry->res->start; atu.pci_addr = entry->res->start - entry->offset; + if (dw_pcie_get_untranslate_addr(pci, atu.pci_addr, &atu.cpu_addr)) + return -EINVAL; + /* Adjust iATU size if MSG TLP region was allocated before */ if (pp->msg_res && pp->msg_res->parent == entry->res) atu.size = resource_size(entry->res) - diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 347ab74ac35aa..f8067393ad35a 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -463,6 +463,14 @@ struct dw_pcie { struct reset_control_bulk_data core_rsts[DW_PCIE_NUM_CORE_RSTS]; struct gpio_desc *pe_rst; bool suspended; + /* + * Use device tree 'ranges' property of bus node instead using + * cpu_addr_fixup(). Some old platform dts 'ranges' in bus node may not + * reflect real hardware's behavior. In case break these platform back + * compatibility, add below flags. Set it true if dts already correct + * indicate bus fabric address convert. + */ + bool using_dtbus_info; }; #define to_dw_pcie_from_pp(port) container_of((port), struct dw_pcie, pp) From patchwork Tue Oct 15 19:17:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13836995 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2058.outbound.protection.outlook.com [40.107.105.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 10B9D1B6CE1; Tue, 15 Oct 2024 19:17:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019879; cv=fail; b=o9xuspSOB/VKwz0WAxYO7uyBabrPJi0w+7ldpR6CR4s7LxHdjvqOFgm9EyF7+3JeUOPMr0Ygwp/9bh4XpxXv9H6BbEwQYNT6PpIehyl1p3ceq5iJgwdWvzocxYRAkoq9xMVRnVGwiHEcRw7Gi7jrMhM+DCHQ4IkNe6gRCch/D1g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1729019879; c=relaxed/simple; bh=Xur3w88Prm2U9ti80meGJLxIu6InmfTZAzjgILmrVU0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=RYp1LTQ2ARjOhQUgWCgkvJhtNbzWdYb4irhVZI8g01PMCwr/kPNanqeDGMGeKrGm9O4ouRCPHxS6XwowbeZfxhJp6L/MMpM/d6t8Y63RSqEQUGOZd0sMuO7qHFDej7ShQ0qnqsxMJXGaXaFvUQbhQpjJRLUTitMXqytB2FJ01f0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Ig9KZhvo; arc=fail smtp.client-ip=40.107.105.58 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Ig9KZhvo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PjKX9s4C8O+HNEZVFwkQz/zBdXvgt/lmg0b+rWZ+gvgubkNFw4BcvB+Y0h0B72rJSPBG4wCOFNAedvvVj3CZF7C5b7Qo0D3HJ/oQDBN7ffeW7gAYFWaXJvLSBsDTZiJFgDreXUJDUNFc4vWrKrdINpiIB1VYC0SLwEQJBfhYzyLAHpv+66qiRXeP7NJjOshrHQNKecwCBa1DJZnrpvHvtd6XLNWXBkW4gdeKeyAPDdBSwinMrKict7BjVD6vGLf5AD889RESxfTWKKSgm25SPkCOxKeA+bbEJ+jgVdSmMMeekJW1r+LrlsX1q5cc1YgyMq5dnRYh3TVEkeYUodnSTw== 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=kFdkiX44EjkJj3LAqVwNHMJG8BXqkLT7bhkwcmGyI8Y=; b=Tjsz/dFsnwJ6eqZisRBYthZLvWzz9PphxCzlap/ISEM6oMroMgikkS69nWWuTmHKa0irkoZCIhG3OUSd0OXRt/HlotBprRhRXbXF8I7nLLMunauXgraSTSJoyiFlme7QKHoKltS+7xOeEfG1LP6QjfKscYpXEsoeRRa783WCSzPREkHiojMt344Fsdhz5Q3DDqhgCVGkbMMWg9JZiqQqBG4QzJq09jKLXbl1UXAL5GwTYER3JtqOp7xB+mmqx41E2zTW8soe8Baj6FdAInZ/AH7A98UaNmo6GO7F52FUnZ+l3g2lnxrAbJG/L37VzasNVMmw1vJHJeyAHxvI+pXdRQ== 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=kFdkiX44EjkJj3LAqVwNHMJG8BXqkLT7bhkwcmGyI8Y=; b=Ig9KZhvoxxBtKwaq9W6Dpl2i3KHO+TmXIVq0gKGEiG5iw+LXqO1yl0fOj8MYsqEsW9UI4VciRGnVR5UZUHl+ZQskiw0oqe+hqSj4DGYZPy7P1su4+Tw02Rw/6lupquhIqMAEJ0ljYHJcHmi+Z5wQWPN/94RWPRnq65LQLvRUs3APdpRL2zMETojAHdTqYvURd5mCVjE2i5g1Nywv6/g0yRUsxxEZNdPIK9Z1onWUjShZ6luYj75oiAhQQ4K9mJldjLB7BXo9t5dy2KvCgE4Tf8afg+5BIxk32uI2q04weMm9r47mz1YE3IsE6fIdFRM0idnaaEd32QWoLb/CP3cLkg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) by AM9PR04MB8826.eurprd04.prod.outlook.com (2603:10a6:20b:409::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.27; Tue, 15 Oct 2024 19:17:54 +0000 Received: from PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06]) by PAXPR04MB9642.eurprd04.prod.outlook.com ([fe80::9126:a61e:341d:4b06%4]) with mapi id 15.20.8069.016; Tue, 15 Oct 2024 19:17:54 +0000 From: Frank Li Date: Tue, 15 Oct 2024 15:17:19 -0400 Subject: [PATCH v5 3/3] PCI: imx6: Remove cpu_addr_fixup() Message-Id: <20241015-pci_fixup_addr-v5-3-ced556c85270@nxp.com> References: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> In-Reply-To: <20241015-pci_fixup_addr-v5-0-ced556c85270@nxp.com> To: Rob Herring , Saravana Kannan , Jingoo Han , Manivannan Sadhasivam , Lorenzo Pieralisi , =?utf-8?q?Krzysztof_Wilczy?= =?utf-8?q?=C5=84ski?= , Bjorn Helgaas , Richard Zhu , Lucas Stach , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.13-dev-e586c X-Developer-Signature: v=1; a=ed25519-sha256; t=1729019855; l=2455; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Xur3w88Prm2U9ti80meGJLxIu6InmfTZAzjgILmrVU0=; b=CfiwpnLOP6TFyvQ9YuQRyjLyR4VWCIAxMb01L2DT4ROCDyrMXEuNW+7QF1uF9bn8Yoc5jn3/o McSsd5Uo+9mAC590Kk5w+kk6T1xmuiHJ+h7yGdod53WsPHxri9YwBXv X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR05CA0117.namprd05.prod.outlook.com (2603:10b6:a03:334::32) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|AM9PR04MB8826:EE_ X-MS-Office365-Filtering-Correlation-Id: 5232c217-a128-4570-3cee-08dced4e11aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|52116014|376014|1800799024|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?9nUDTJI526gKveFuN3d1ocBGJJ77apv?= =?utf-8?q?IWuEnwK7zrSmxGrWzSXkfYsoqQhwwqbPboh7R0Tk3Ay/VnVqWrX8ixIv8hxynatKc?= =?utf-8?q?hjVkFqbGpBavIOLhMrbajXx70y3Mb4bnFEqFFyOXr3XiJ2ztcy2rL+ePiu3yTKRm0?= =?utf-8?q?PYiNAWWvpjOj3sU8lg5AXuFgI8YeQEyRqTq7r1TiultKOQFIg4eG0EpJgca07dsXu?= =?utf-8?q?zZ2vcGpfZTgSfuZMzFeRDJkayTkz6+Tx7Ft5EzdvuSwnXpmw3SrNMCbkDSDozyll1?= =?utf-8?q?84yjsqNRJsq7r7KWLVgP+vXBKfdYDtI9VDy8B/mW+21NXmqpIcMDTvMyml5AgJQhA?= =?utf-8?q?tc3DnooUGnRwumhCX9bs3gaw7VZaC6dg2ZirVaOxEyyZCjHN8HPCIAi7W6cH0z+Tf?= =?utf-8?q?LsYCfop+xuVW/t9qVJSnemyRzqK3+QDkiAdBAADyss9q/+KzeGZ4zw6Z2nLqGYYxG?= =?utf-8?q?TObAJARY5CyXaZbj225qQxRY3JPCLZiHv5fnNiliahKaM8YvVT12c9b0IHT9jnyqM?= =?utf-8?q?/Cam+b3LOPVEDq1X7rG6+vC9vABjrfIEd/khAQbi4gh79mf9vz8euG6Lu4YQs1q89?= =?utf-8?q?lEos7tcCbYXkkZJJHTk0ydsYP20+bEfjsP/hBo2fgXusAdYHVvs33berjThbNb1iQ?= =?utf-8?q?4CupM1MDHC77xkhWedvWOL7NLo/yJhdvWVduTzNP61myiYCtruKRmRFeMxWsHvffT?= =?utf-8?q?2+PzNNmXwi113ROwr9ekgS22mwNW8MPEi4SqRVzP1cduc1uyxcVNK0xJ63aD0ljR3?= =?utf-8?q?2p5M9Az2nIoKFFsFZh7BHon/b3VywD2g/9x1hB3ZwL3JDZn3BGx+hDofaxl48BU5u?= =?utf-8?q?8Zx3lKTORHsQcyD6przHTijbaaee0zLxURx8YUeBJGLmxy9563KWbkg4/0U0oKB2f?= =?utf-8?q?LO7rsVwMhXiwg911CHwtw4n8vfFxmDM5k10a9ijKuOhRjACvdAcL4vcUTjzwG4bId?= =?utf-8?q?pwrnja99YI5yyyZ7aPFx8YlD0u2hX/Bz3/AuMw6l0wCGQGm0utAhDEkfhnSRbkH01?= =?utf-8?q?Y8Olv6mZKHxIYr3x4/YlxsAX2OWogtgo4+eTXgaw3BsS7AxwOYpBgCSGJDCe7f77F?= =?utf-8?q?c5W/t+AltH0vc/a34ZQj/70d3qA+HaRZ/Rmc792EyafkOwJl0DDg53fBQm2aara4F?= =?utf-8?q?M1PkD9/5OP+Kmu3V/v0WNrgv3KWaAeYwmJRGIAYSFSl8l7LmpxWej74MlncoIRlrn?= =?utf-8?q?SQ+aBVriZcQmch0ymg2+swY6P0U0OAaP5qpj6Q5Xy87d5+9aTs7h8FqZRZGUYsXz5?= =?utf-8?q?1T0k7BH7I7LSD9nkPoeyX7c5eFa+DZ1M7X7C2STt6slcpLOKG65fKRQ0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB9642.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(52116014)(376014)(1800799024)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?eA+RIcCihjiLxeaTJoeNn/JBIV1G?= =?utf-8?q?p7IM2F2h26muTTR9UZBZeW43UIBp6Px09xxyQNAsV4ac665jVapyDpHAv47rDtLqo?= =?utf-8?q?0HHeNpjHUEvEHN1Zgqkm7uE7gkAcvaNrgKXAgOyFWB0Tm2YxnuzUFtQLgvjF4AZxR?= =?utf-8?q?UkQjNliU+pTQB2CjXYYwbCSuyPyI3ERMg4BBAGi+7KCWWBbV5z+zvRxl9dSTg9zQ7?= =?utf-8?q?thihi7y0yM2j1rgrNykGWefyS3LDMgFzA9+RLwTFA9qg4C4578a4bayYffvl9c/6J?= =?utf-8?q?j9alwRJaKIvUmo1MNScW15JCmHka64W8eQljwRq5CmRKMzPHOKecFrRs9qfP28w5k?= =?utf-8?q?dlmNJFaVky9AGGTL44MF1y936UHx+tG9X+1FI1kORvpPZY9XD+Fv/bkt3FQhdg53F?= =?utf-8?q?880ipeE13a6oD1N2wmCI8M6MtHxx7xvZGUQgAHWQrCedOOn4J7xZG6Cnpin+rHkWq?= =?utf-8?q?7pJ6ElzCTAfnORqYlEzIn9qlSKTn3iwWXcIrsxiHpIkK8OUAp8ekS0fOn9dEKJv9a?= =?utf-8?q?HRE7v9ZE8RDOmqJMVp6RRUQb9urN3VUww87iUJxJnhBMhNpA1tyEid74heRMpZGo6?= =?utf-8?q?AzKF8TTm1Yf23qxBc10v279T6Xi3RIUYjvsKqpxyV/Dw7ko8nlL2eCpZ8o7NmtnX2?= =?utf-8?q?hNM/6DEryFGkSobTzSdPy7kQcoPA3RZuMSEgvw/ZnujWUWzb0tyIB1+Bgn8+tyu08?= =?utf-8?q?XybWrUQ1wBmvkz+i/5+BFgLxyuf+/3/tSbR9txtWLdlfKahBCu/CZOveutXLl6c4F?= =?utf-8?q?to8kXKnOr4tHIfL6ysSnvM8kRyYPFwmmsTfXhIhaN9JC0G7v3r4SRhhbk1HjXu+u8?= =?utf-8?q?JGHtUIQkn39aG+KsutK2Dj/QPml1zrBSbbUDjYq+2RleCA9yaMnGLy4lWyjbjn7Gx?= =?utf-8?q?gfHyal6XJRjzgoBMvYctxYXlT4hGkt1KnewXUr+3R9i1LM9A7lz/iWqqaoy+uz6iI?= =?utf-8?q?WqwRgmZ8MTLR7/IkQAKZCqbgeWATN8LChwohqJptygQvizrX4dQAl4Xiz2NCd9LH7?= =?utf-8?q?Ai8ttt1VA/qVNPZplhrhEYO5G0J6jxLccKWYCq3ry2u7N+s9jxSV1tAnk8KiK8xrP?= =?utf-8?q?sPS5sAY9P3mraBSFjEwqT4r7rZ+vy01gf+Zw9dnFCw7rgRM8l7PAsXFQg5ZM2ShNm?= =?utf-8?q?P86BiwyFTa357K7CdAOkf364lVn7yIE9HDLqWe2eqlUAIQGFr8gr73UOskRIWoJeT?= =?utf-8?q?+4DnbQ7wt8IqrVVOOs98RV/PYTZ1uVAd7rBRVGpDa0w720E51b4JVrVKsBD7kmRaP?= =?utf-8?q?u94BuJ8pVk4WK/WT0cZOT/P2fgkEJKVQz8l3XdboiopC8ggbZBKB9Z9Qo/VjJWlmp?= =?utf-8?q?2thYjGiGWwJQ1L4IxAol20jla0Ap0Gz35rDcWx6MnF58VOsJHL5Vh4eTBTNS11+CF?= =?utf-8?q?VZc+ggxegVh6hd3bJJN+QuEZv63uKuO7WrYEzLtfwvzwlSVCNVhON6oONAxL7H5xm?= =?utf-8?q?xDzrMlWsxcB1GhdXBN5YBYgBBhUOrIPVMbuMLksmHgn3bLYTwsAsMs3Y=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5232c217-a128-4570-3cee-08dced4e11aa X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2024 19:17:54.0391 (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: LwDgHXVUwOZ8uwmSt3jy8jYtO8nSQVFA4wzLJa7wepfIW2708qFbtqR5ICUT5v65zVkaAZ9Z05GUVJYxqqO2uA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8826 Remove cpu_addr_fixup() because dwc common driver already handle address translate. Signed-off-by: Frank Li --- Change from v2 to v5 - none Change from v1 to v2 - set using_dtbus_info true --- drivers/pci/controller/dwc/pci-imx6.c | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 808d1f1054173..533905b3942a1 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -81,7 +81,6 @@ enum imx_pcie_variants { #define IMX_PCIE_FLAG_HAS_PHY_RESET BIT(5) #define IMX_PCIE_FLAG_HAS_SERDES BIT(6) #define IMX_PCIE_FLAG_SUPPORT_64BIT BIT(7) -#define IMX_PCIE_FLAG_CPU_ADDR_FIXUP BIT(8) #define imx_check_flag(pci, val) (pci->drvdata->flags & val) @@ -1012,22 +1011,6 @@ static void imx_pcie_host_exit(struct dw_pcie_rp *pp) regulator_disable(imx_pcie->vpcie); } -static u64 imx_pcie_cpu_addr_fixup(struct dw_pcie *pcie, u64 cpu_addr) -{ - struct imx_pcie *imx_pcie = to_imx_pcie(pcie); - struct dw_pcie_rp *pp = &pcie->pp; - struct resource_entry *entry; - - if (!(imx_pcie->drvdata->flags & IMX_PCIE_FLAG_CPU_ADDR_FIXUP)) - return cpu_addr; - - entry = resource_list_first_type(&pp->bridge->windows, IORESOURCE_MEM); - if (!entry) - return cpu_addr; - - return cpu_addr - entry->offset; -} - static const struct dw_pcie_host_ops imx_pcie_host_ops = { .init = imx_pcie_host_init, .deinit = imx_pcie_host_exit, @@ -1036,7 +1019,6 @@ static const struct dw_pcie_host_ops imx_pcie_host_ops = { static const struct dw_pcie_ops dw_pcie_ops = { .start_link = imx_pcie_start_link, .stop_link = imx_pcie_stop_link, - .cpu_addr_fixup = imx_pcie_cpu_addr_fixup, }; static void imx_pcie_ep_init(struct dw_pcie_ep *ep) @@ -1446,6 +1428,7 @@ static int imx_pcie_probe(struct platform_device *pdev) if (ret) return ret; + pci->using_dtbus_info = true; if (imx_pcie->drvdata->mode == DW_PCIE_EP_TYPE) { ret = imx_add_pcie_ep(imx_pcie, pdev); if (ret < 0) @@ -1585,8 +1568,7 @@ static const struct imx_pcie_drvdata drvdata[] = { }, [IMX8Q] = { .variant = IMX8Q, - .flags = IMX_PCIE_FLAG_HAS_PHYDRV | - IMX_PCIE_FLAG_CPU_ADDR_FIXUP, + .flags = IMX_PCIE_FLAG_HAS_PHYDRV, .clk_names = imx8q_clks, .clks_cnt = ARRAY_SIZE(imx8q_clks), },