From patchwork Tue Nov 19 19:44:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 13880488 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2040.outbound.protection.outlook.com [40.107.22.40]) (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 86E1F1D1F7F for ; Tue, 19 Nov 2024 19:44:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1732045494; cv=fail; b=IHqzvGgtZ+xHZ0Nek1l2TKcAWMdxQsQ1I2hqYacB+OFRCj6xlLaHlwthy9sMessENgZHW728xAGn0fGlQxM1gxiRQvV5DizWH7XwRfNLiCzDj0iULUPq56L67/MNt0yQ6Qt1kxen/R9vVPDzdU4WGfE0VqG9Cc5PtqGGxg5RwB4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1732045494; c=relaxed/simple; bh=aXXX11evuoHeJzI2romv1WKj3Ah+7csb/vVjNpesoog=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=C1ly7GVfyfRU7quqzeTXH+NeCzjAG7zzkCdilb8N9hznTFqSslPeufLbM2X6UNIS7OkJJRpqdMPggrSouU9imVD4aPSp8NzgUKMNhqI4o4dhbXyxiOExyJ3xv3KpJollaUl67Ti4F+nCHl/Wl71aqVkXtxCsvHZaEmhD8kRyInE= 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=HHoDgQH5; arc=fail smtp.client-ip=40.107.22.40 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="HHoDgQH5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m+wPI0HzNlq+7iBN35nCWAB86weCdsa8GiVhpSD5fNaJCr60k03hk20/LtjT9A+wNwFySzEHQzj2DZY/h4mjgO7Ks+Wk/gGmTJdfHtGNN64YiG01ib+31yT7H5nb+IwblahauvCSlfuAvYz4+STPyNlBW7TP2eEqW9KzuGmLOyJmzV49OOxsmEcd9bd6YX8IRYR7RRMMB7X5uLNX36Po+VDkoIsDvBZ4OBsWkzi5hQdhrxUTUdQ0nR2RTQNCHBi/+k3DGQpMPLSSYclh+NpIIwCMtBa0P5TbjR8Mmp9jHbXXnQ4s/hWSy4RpgooGs0IpjPHiD6Ftfd96tsso5ktHpQ== 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=/Slmhx3u+CKxItrsOA2x6YrotWMug+CZlJbr0no/5ac=; b=aeJRrBlMNi19CMrNuigFkbjlvcI03IXMEnkhwOzySw7seFhVUyQjybmduU2oGmXou4vo2JQBjxFkUvsZnbt9f46IwtjhMUx4sZhCXoPuYfrjSsNXGp+drapvY+U55xbq2WqduFVRiU+uIFYsrRF6j5PZkUyWp4hzEgDyIFA8nyAqmuNowu1pESD35cgJDMGnzdC5vQ6+rqrjtIAzLyXSvG8HjNdGVIxrF2ek9zUS7ZdYd8N0YXjnrVUEK+3e76FmWfJCIkpBVCAn/yIPZu8guKujQ/UdG7K75hTaE0yTlnkOL6bz+AkfYn47bJwFvVGHqaPdCNTo6Z4X0fvq7ilJZg== 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=/Slmhx3u+CKxItrsOA2x6YrotWMug+CZlJbr0no/5ac=; b=HHoDgQH52Jtiv9D2AyZohgH2cQdx/h+uSghtSWxpL9jk/FrRyt1e9pd5pE3F1iDChj8TGct13cBD/eRWxk49rd6dbipsCMVZbgZILbRkcYp/WLl47ic+BLV997Uv6RWjQvv8UvevGuSzISGlPX4ktZFlkcRTo/QooDwQ9ilj6wz9S8+AJ1OG+YtA0BUjIkpbXMmFe3//ZjkCRnnHV3duoy37V2/8wzOQRwRJZ+g8tPZiB5r0HawEZOHB2XoEDItTtEv6q2/KksfQBuDVNRTMQyTcTlK6orBEVIuJWXPpKjK04CT/m7XWpcov0fZUNabVH1/02sGUzIXqjVkcN5wyYw== 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 GVXPR04MB11068.eurprd04.prod.outlook.com (2603:10a6:150:215::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Tue, 19 Nov 2024 19:44:50 +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.8158.021; Tue, 19 Nov 2024 19:44:50 +0000 From: Frank Li Date: Tue, 19 Nov 2024 14:44:21 -0500 Subject: [PATCH v8 3/7] PCI: dwc: ep: Add bus_addr_base for outbound window Message-Id: <20241119-pci_fixup_addr-v8-3-c4bfa5193288@nxp.com> References: <20241119-pci_fixup_addr-v8-0-c4bfa5193288@nxp.com> In-Reply-To: <20241119-pci_fixup_addr-v8-0-c4bfa5193288@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=1732045469; l=5694; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=aXXX11evuoHeJzI2romv1WKj3Ah+7csb/vVjNpesoog=; b=qSrTkruYBvzE9sSni5f6eei2fmbhebzWj/98M3g1QQaBKtAYEoh0RQW17+6ziD0eBc56BsCry DVIq028IQf5Dqapv2Xn5Jx4tVQhrVkr76jseqgyHA4lqU226iE+iMqU X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SJ0PR05CA0009.namprd05.prod.outlook.com (2603:10b6:a03:33b::14) To PAXPR04MB9642.eurprd04.prod.outlook.com (2603:10a6:102:240::14) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB9642:EE_|GVXPR04MB11068:EE_ X-MS-Office365-Filtering-Correlation-Id: 17c717f2-5ac8-4eb6-4aec-08dd08d2a168 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|52116014|376014|7416014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?aRBkLs5yTCEkgphhfJAYatEnlAQGrfj?= =?utf-8?q?L3uxhU41KYYVFONjqZSUk79oNJa533cue0xhhFpnEGV93Fik98x2JAxr11c9n2Pgy?= =?utf-8?q?dL8yrZPAQZFD/g/d8kLCpe47ZR/rBNI0WeL2W6RBvckbJ7sk0Wn5knekBnGqYR3fH?= =?utf-8?q?57it+WLXZXdLy9ZSM2886SPzSKSbLnkXS9nkjTG+6n1WxavQM2B+GtWMULPJhUXp9?= =?utf-8?q?YeiyCFjpnaDj0KddziNaXvecMLaMYthuxKLYAgl8+Bcc8Vdjz7msPFmbYd+O++lb/?= =?utf-8?q?yOK2Cu75c19kpbCVk78o5if7DafZLCKenOte+KPNWLeXI3VlHRwOP1/oNGApL0oxb?= =?utf-8?q?LbbU9yGm5B8w3qpvgoIEyLI7q3Iirns/ixyFQDZ0/QGgLQtu3SmpdJEwTEA5ypa6i?= =?utf-8?q?/sf5OHNiabZPDzhjjaw6nb8BZ2F17C4AQyZEAud+ksODgAmnjTk4v1PBKD+3JSl+6?= =?utf-8?q?NdaTVB4NACpnzT0OUJoJMLmN+zqfjghWhniJ8qyvD+nHcaGY/DRuVHIylPdmha1DB?= =?utf-8?q?Py19UWQth2SuWEB64Ttn0YF1zzQ0NJqz6iiJlazCqClHKBOanhmXgL/4pQjBDJpLn?= =?utf-8?q?NEOd8PQnd+dpHaixPxqOM5ZIh75S94lAxxANkatJuMFZINyjfLaKhxyRqnQtDZQ5P?= =?utf-8?q?teuoxYPLwnFviG/E2scVzCK2YLGwYXBpI2UXrGu7Be4ocht03EqTIku2uH2Ndri5+?= =?utf-8?q?R2wOD5B6x81aE2jNTX24swFbuQxEi7drjpmVxFQk3qOWz+SezvVE7dKhrdAxd6P/C?= =?utf-8?q?0RJSv35MgQ0CUORCgC905S6hLJYIpV/a/pgWQLoEmxLEc+nssS/zPfhQN6+vspHK2?= =?utf-8?q?41IV3XD1SKplEyye+0HKwtUu0YrVYGMX4aHe7WsXXY5PYY9H1O7xISldNHUctARcE?= =?utf-8?q?azkUJj7D1UYjGSUzAPJBPQsWCZgGafJ72OGUBYnZy7eYEGh3zCRkXm5RvuNP0Yxic?= =?utf-8?q?+EiXwZNma2J9OQHNBJUJ1T6dfvVAWWA8FweKkHjXlT9hZgn1L7MKq3qIVxkfnR8il?= =?utf-8?q?chglJ9Pdog1TxIshsmO2hUlaU8MxaM+bFoPR1hn2T1Wl2YZoYmatLNu9vz7FoZzKf?= =?utf-8?q?j97Dt9Klturi3NuhnoN2+3jteqll+8O/Pr50B01HbSfo5EUu0xzauk/k0bDuqlxWA?= =?utf-8?q?8rk0V9zWI0Lk9zVLZty3lFehBvMGqKjK54cTDbTTc6oZKo4HXbFebetJeGpvl2iGA?= =?utf-8?q?bDZxUH2ODBFlLnG6dJO1NuO+WYiMB5va1C1UzE6KuVgGJ4OaeMA9n8qqniJ/GEQtI?= =?utf-8?q?lOWw9jVsxotwy9DAGVXkjYza4cVoAqbOPLmb+UwSjpFi8o42U2kkUTBMxFoAVcuJw?= =?utf-8?q?8cSQRYLyJiYPxcBFwGcxA+ffPJ3ylD06Mg=3D=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)(366016)(52116014)(376014)(7416014)(921020)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?TTNcI5XbH6Ewfv1chc41oolnB8wn?= =?utf-8?q?It850x8aizOn5kjFibEJg3JwF4SGs3aT3RFBjX7ewpc1xEieSWsSQ/4ezspEf8NYC?= =?utf-8?q?PRZWf1iUC2rWtYJbrDQ/Kh1cQI3XyDHyETN+GymGkSBJa0icO6Rh8KPFF415KiGvn?= =?utf-8?q?bJ/+NIQ+SjUjF023E0E/AK4QWFpyIa7k6t51uANptQ5Dhhgx6uoqy4oqk4UNPRY05?= =?utf-8?q?uYLBJTIc+79oSEklapXHCg6Nqx88M347MqruHWZz5lnURgMmC6l6cp56gio2AH0s7?= =?utf-8?q?tHgi6MqJL1UTMS8CKPiWx0ma3ukpeXqb9ga/kY9pURWlgyeq5rBCzGBY9KSqpP6KQ?= =?utf-8?q?eDFmAmflX3OqcFrvg5hQnpCAtj4V5Qy2zko4tql6cN1AmnXHn+via9bubPgq5WUg5?= =?utf-8?q?PKN1Mei3S/fTPclZ9IKwbH1cDv74kzCQE6zvCRd/VUybmz6/TSkAi6dbbRfn8vVJh?= =?utf-8?q?KbbQlPwcQ0A4SphGCeUAdA7Hd7+qizyyPBfcjEgDAKv7s0s/WeCEmWk0w74cGDrWZ?= =?utf-8?q?7zRr9/65ErV/s39dx5wQuSuB4vSCvpZuFgWSoVYwP++OZjwGP6+UPDHuHQ8RUusni?= =?utf-8?q?0PWj1xMGd0cNbCoxSsAWl2/IfpdVhoZzcPRGpLd49eR4nlfHk7MrUM0T/H3teMOR4?= =?utf-8?q?5Kprw8tyCTdTqE92/r6tOiY6cTs0JHe3oUOyJg0IBBpV3Jsp9x5A+2Xn8IZl351jZ?= =?utf-8?q?5pHPUDrOE+msIyHGJSqSRGJgKJOtrJwrqhCMSnKPg0nvh1AA7zC0iN6n6XuFx4U/e?= =?utf-8?q?M3aPibLLI8sMM4Amd+181uJMffZFSxsimkG8dbIEC7X9hw2ad4pDNbjGr56PKDdcn?= =?utf-8?q?YGdRyIrGEEc6L4vjBr+69lEYhCWgvbPeWGaCXNI0WP8NF9qwMjON/nkcddJV8Xxvk?= =?utf-8?q?qjRRmG2WC5WWi9WgNUvhkRUK0OcQiXANo7m6uGzPE3JiOmymgalonjf6AZSFgM7XP?= =?utf-8?q?4YlrrikM8ODfW1ilxMKdXx7bolq4PR8+l4uTokuND3LkTD0qscIswTAJfN/lDSmQX?= =?utf-8?q?KSjnpd3jQfDcbvOKhp8HZgWAVhPfbF53VAdMD7S7MwSgHmQ8qNOq8CsEY0dLMLpZt?= =?utf-8?q?1WUB2g/uJFsWCquUVd28XyWmM7wTPjARRK2aiYBmV9n+8jfGxwWMT3wZmZTigONG/?= =?utf-8?q?VqIzB/1ePpJtPAbHfreK8lmX7g0hoG27rlxyU2JSrM9ypb3UB1fRLSaSuZQvP+ykc?= =?utf-8?q?LJNZ2Zp2QNSspQ0ksvT64KFZnxyFt6JTp1nMcoLUh0wVpGYvlr88Kf3Uwiad1VM80?= =?utf-8?q?Rw8l4f3qp+VR7r+6IRqydhggUFRrIE0I/iRYR1tNtqMJxdxjfBsoTfhjeDg9W1+Gx?= =?utf-8?q?s9/Sb5zHzYYDvFfDLeGuQOE3FOF638umo+K7QySZ9Nn3gqN0AueuocONM6rB5Y0D9?= =?utf-8?q?DfH9lmgC9XeN4WqfT1gl6XapSu2PULrZFSGtmrA+stwAClusx1+ZO4bimeR4g9rUc?= =?utf-8?q?rpEXPcHivSCK26ZCYf0nqKdX7Cw1PSy51XlOBW5CyrXlqbdPycgNbsqM=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17c717f2-5ac8-4eb6-4aec-08dd08d2a168 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB9642.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Nov 2024 19:44:50.1887 (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: u/e0QEdPud2YhDTNNP4pXV4dlDdQUXde98+yGjX3wyyFn+xSyitXFDUMSvTk3s9kYOIX4t4H3Jd/1fM3n7+czw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB11068 Endpoint ┌───────────────────────────────────────────────┐ │ pcie-ep@5f010000 │ │ ┌────────────────┐│ │ │ Endpoint ││ │ │ PCIe ││ │ │ Controller ││ │ bus@5f000000 │ ││ │ ┌──────────┐ │ ││ │ │ │ Outbound Transfer ││ │┌─────┐ │ Bus ┼─────►│ ATU ──────────┬┬─────► ││ │ │ Fabric │Bus │ ││PCI Addr ││ CPU ├───►│ │Addr │ ││0xA000_0000 ││ │CPU │ │0x8000_0000 ││ │└─────┘Addr└──────────┘ │ ││ │ 0x7000_0000 └────────────────┘│ └───────────────────────────────────────────────┘ Use 'ranges' property in DT to configure the iATU outbound window address. The bus fabric generally passes the same address to the PCIe EP controller, but some bus fabrics map the address before sending it to the PCIe EP controller. Above diagram, CPU write data to outbound windows address 0x7000_0000, Bus fabric map it to 0x8000_0000. ATU should use bus address 0x8000_0000 as input address and map to PCI address 0xA000_0000. Previously, 'cpu_addr_fixup()' was used to handle address conversion. Now, the device tree provides this information, preferring a common method. bus@5f000000 { compatible = "simple-bus"; ranges = <0x80000000 0x0 0x70000000 0x10000000>; pcie-ep@5f010000 { reg = <0x80000000 0x10000000>; reg-names ="addr_space"; ... }; ... }; 'ranges' in bus@5f000000 descript how address map from CPU address to bus address. Use `of_property_read_reg()` to obtain the bus address and set it to the ATU correctly, eliminating the need for vendor-specific cpu_addr_fixup(). Add 'using_dtbus_info' to indicate device tree reflect correctly bus address translation in case break compatibility. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- Change from v7 to v8 - Add Mani's reviewedby tag - s/convert/map in commit message - update comments for of_property_read_reg() - use 'use_parent_dt_ranges' Change from v6 to v7 - none Change from v5 to v6 - update diagram - Add comments for of_property_read_reg() - Remove unrelated 0x5f00_0000 in commit message Change from v3 to v4 - change bus_addr_base to u64 to fix 32bit build error | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202410230328.BTHareG1-lkp@intel.com/ Change from v2 to v3 - Add using_dtbus_info to control if use device tree bus ranges information. --- drivers/pci/controller/dwc/pcie-designware-ep.c | 18 +++++++++++++++++- drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/controller/dwc/pcie-designware-ep.c index 43ba5c6738df1..42719ad263b11 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "pcie-designware.h" @@ -294,7 +295,7 @@ static int dw_pcie_ep_map_addr(struct pci_epc *epc, u8 func_no, u8 vfunc_no, atu.func_no = func_no; atu.type = PCIE_ATU_TYPE_MEM; - atu.cpu_addr = addr; + atu.cpu_addr = addr - ep->phys_base + ep->bus_addr_base; atu.pci_addr = pci_addr; atu.size = size; ret = dw_pcie_ep_outbound_atu(ep, &atu); @@ -861,6 +862,7 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) struct device *dev = pci->dev; struct platform_device *pdev = to_platform_device(dev); struct device_node *np = dev->of_node; + int index; INIT_LIST_HEAD(&ep->func_list); @@ -873,6 +875,20 @@ int dw_pcie_ep_init(struct dw_pcie_ep *ep) return -EINVAL; ep->phys_base = res->start; + ep->bus_addr_base = ep->phys_base; + + if (pci->use_parent_dt_ranges) { + index = of_property_match_string(np, "reg-names", "addr_space"); + if (index < 0) + return -EINVAL; + + /* + * Get the untranslated bus address from devicetree to use it + * as the iATU CPU address in dw_pcie_ep_map_addr(). + */ + of_property_read_reg(np, index, &ep->bus_addr_base, NULL); + } + ep->addr_size = resource_size(res); if (ep->ops->pre_init) diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/controller/dwc/pcie-designware.h index 4f31d4259a0de..5c14ed2cb91ed 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -410,6 +410,7 @@ struct dw_pcie_ep { struct list_head func_list; const struct dw_pcie_ep_ops *ops; phys_addr_t phys_base; + u64 bus_addr_base; size_t addr_size; size_t page_size; u8 bar_to_atu[PCI_STD_NUM_BARS];