From patchwork Fri Mar 14 13:34:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mykyta Poturai X-Patchwork-Id: 14016906 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 77D2AC35FF1 for ; Fri, 14 Mar 2025 13:35:08 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.914586.1320299 (Exim 4.92) (envelope-from ) id 1tt5Be-0003Ly-MR; Fri, 14 Mar 2025 13:34:54 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 914586.1320299; Fri, 14 Mar 2025 13:34:54 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tt5Be-0003LU-Jb; Fri, 14 Mar 2025 13:34:54 +0000 Received: by outflank-mailman (input) for mailman id 914586; Fri, 14 Mar 2025 13:34:54 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1tt5Bd-0003Jp-Uc for xen-devel@lists.xenproject.org; Fri, 14 Mar 2025 13:34:54 +0000 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170120003.outbound.protection.outlook.com [2a01:111:f403:c200::3]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1b86d15a-00d9-11f0-9898-31a8f345e629; Fri, 14 Mar 2025 14:34:52 +0100 (CET) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PAXPR03MB7950.eurprd03.prod.outlook.com (2603:10a6:102:219::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.28; Fri, 14 Mar 2025 13:34:49 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::35ac:8893:c31c:b971]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::35ac:8893:c31c:b971%3]) with mapi id 15.20.8511.026; Fri, 14 Mar 2025 13:34:49 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 1b86d15a-00d9-11f0-9898-31a8f345e629 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wc3HM700v5OBBXALbz0FDgZ1zS5iPxDYMjGTE2Y1W8TQe11GO1m59Yj0AzRq7FlqivZPZNd9SNB4jTcPYySlb9C2y5cfFENbdI825v5BsJOJx5OMM42ISzk20DcZeNoPB2OjEmdBln8h861hruvsPuxcteXvR89lXEjU2AJr2M5Ajw6e7xMcqB4uiFURYTCaXWKoMZ4SsIdNlFj1VoZiv8ssYsqTeNJczQGHizBCRSplLbbgndF02+a4yYU2PJ+gY+kyw77qzx6T8wbryLw+vEO3g3UYiF68Gyiy09RMBix4krLi5vtPn7DPEuZT0X/vyqW+GgBqIrbLYU2nsiXdbQ== 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=kDr12ZsXB6LPkmtXOzVU1uDhSozE3eMv0KaDRRgy6Z0=; b=Vep6mL8NMIE+Zv+M0npMYGSpD0bqt/EQPIBKHOdM1nwAsh0cQ0o75bhMYYeFzVE9ABFucoHhuE/QbO4JGxFEGGF2ccgl89Z7sgwtpnPg4bA5iDtS3LGf2jAgvVEYa0TsIv6WHo/cicTOwUeByTH2g2P/gOptflDbUwNMR1vbcFYEFYJWaQeem2SrS+jnprg+f0CIwRv/1ChqVM6Q8omK/HTLWIXcRdkPp6oaFc4QYE/ZGQpg+AvUeUzum1j2uC5LRF5ZtrRAhf3zQ7ygaHSvXuWOy9Zst+ktWCYZC4FEYbPYIe4SP1JchdgvhfIkqKptSQgSw9vrAOaWT1Ks0t8J7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kDr12ZsXB6LPkmtXOzVU1uDhSozE3eMv0KaDRRgy6Z0=; b=A8IpkU0a9GpaJ4sAElJyLgKSk2GkiyRGdN61hPBVJnMq4+T1blbpuL0UZqhExOqXpOk0fVZ99QTecuilcLjJ2ilTBDsm/X7z8jSOaqAHyORCIrnnxllRQaANgzN1HVNTwbMMWwqUzTrI40RaviBe64ZSEBLa267wo10Bv2AeH/PDNqLy52azsZYo4KeRWFztkSCuZmFXf9YjU5hnH1/mnbSEqI7d/xgXl7qwmMdL7aq8cVnQiueUgr8gCuVrw51WygXixp4UkMS+/MWtWA4patNnCarfLEVCWWvsVc+ZPTWUFyT/SjUWaYXEbL9ulj6ZL47qQIlalDyto0Wd/9rv+Q== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Mykyta Poturai , Stefano Stabellini , Julien Grall , Bertrand Marquis , Michal Orzel , Jan Beulich , =?iso-8859-1?q?Roger_Pau_Monn=E9?= , Rahul Singh , Volodymyr Babchuk , Andrew Cooper , Anthony PERARD Subject: [PATCH v9 0/8] SMMU handling for PCIe Passthrough on ARM Thread-Topic: [PATCH v9 0/8] SMMU handling for PCIe Passthrough on ARM Thread-Index: AQHblOXbm923M7lmNkiZwraCcQZgOg== Date: Fri, 14 Mar 2025 13:34:49 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PAXPR03MB7950:EE_ x-ms-office365-filtering-correlation-id: 75ea87b3-7ee9-4bc5-b88c-08dd62fcfe79 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?z/OYNNyrExZrur/VDgeNEa3O6b?= =?iso-8859-1?q?JbT8XIrwx5SHOxN9RtygsRZ/eVr5tHC0yLn/MfqRCfPixL384J4kgj3+7AKs?= =?iso-8859-1?q?ggJHzYp4xBB618VxIYOL1ZHfVrISGy85AfX9yGgJXsn3ixIq3LBtvilsd0AP?= =?iso-8859-1?q?p59VwS/hFXTkL3MCnhATAPImXi49GhiMypVPsocA8LId8h2J1T6HmSbxYaWs?= =?iso-8859-1?q?AfjRs1SWvd+6YqE1gR4lM0IPJ3pQ53xPmwAcQU10VaYK+iT/3N/sBnshQ6Pt?= =?iso-8859-1?q?VGn3FvADAnckVns8u8UjfKGlynenwuv+1tghC/2UOFHuZugcAFJpVveu5L98?= =?iso-8859-1?q?3vAkoW/H/p9UmWgIvUb6OkkBk+cjSjEgjxPAuA2XhItBpkHFNU2FTUxhB5bA?= =?iso-8859-1?q?3RAiMq4ipzvGRcPhUUQUSHXFvBCC6Il5npc8hrJQrLF7tnJRusIGQ8O69wyy?= =?iso-8859-1?q?y+p0vBuw/Gl+L0tYJSgaoT9JuPJV/k9qWwu9c+dHPq0V+Uc2wtz8U1ovXaeQ?= =?iso-8859-1?q?0fCVpBI3R6Y1+wSM1CP8/rXZBPjpeT7CuOkKDz33ccaPPtC4ha597UA8ss/m?= =?iso-8859-1?q?2JG+0vEF60RTdk4yQ02LmwRxkFaNn4vkFrGt74YnJWkYjeiQoz7Viqfljm7d?= =?iso-8859-1?q?28AHjTCeIEmnrwJdaVU+e63mfNzCs/IONVwVsP8MVTc4cPHfVM26KofUmH2U?= =?iso-8859-1?q?aQ590qbdG9iT/KAjpdybWsEpFV9VfwtXmOXTDkybnSk6qGoXkCknyz2WWssK?= =?iso-8859-1?q?PHtEPgpixmHYZkCCHkd4Pyc7FLmoZQMCyvZAxB2PX2F9XdxYbWbFvNwnRwHb?= =?iso-8859-1?q?flVl/EHls97RQFs2/eGV/z9PwLfquQbGY5Db5UBs622pS5SFtaYi6efY/7sL?= =?iso-8859-1?q?7a4gOxDmpU1HlB7Zb9eeuRrS2jIvL2iRtb/kr43CmYUkdQzWmwLIO772x/MV?= =?iso-8859-1?q?n6f0yfAO/qdoczpog0Jl2U2X0UZjIEGilxjldrIjU6Q1sZuf2ZH/2VmAa3wd?= =?iso-8859-1?q?nqMP6VIYvaLHoUyUpybIrQ5NlIe2jEWb3724+WQFHUqn7fWCnoRajsqX7+SC?= =?iso-8859-1?q?e8uO/UQLPb/MfJk0dw4QpMgfjCaaSrVMin4zUBjHx0onu4I7B7ghlrMTlLuX?= =?iso-8859-1?q?L5yD5Bj/knA64qoLQ4un/DWXcNjxbMsjBdYLIGYdGq6g1MTnecP7p9Oc/fo1?= =?iso-8859-1?q?xfG91tdcfvgQslHmGzb5Icd8BvKQorTXdw4TErlRoHI7yYSnR+FKrxjKrp6K?= =?iso-8859-1?q?Etm1muBGOhNtd87KO5Tt8cxhkj5NtXrfoBFiDJE2XyUrtf0zT6ihRjlXIZq9?= =?iso-8859-1?q?kQmt7WIwRQ3ggaEt78iYRlIDO/7UTr0b3WCk+r8u7yLdsaPq7/z+Iwc84IG7?= =?iso-8859-1?q?BLAIbhUT72TLs7iFEFNOVfVqwcM/LJNTcymdOOQD3qon/0Y5WamVutNRED58?= =?iso-8859-1?q?yxu7+qerQ82Y416gIEV5KyuB0IZjOqiwn9jAVk1nNWahFtZvPC0iognUcVT5?= =?iso-8859-1?q?6TZNE6?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(366016)(1800799024)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?yRF9ptXcr+qCEdFK+eP5Wyq?= =?iso-8859-1?q?Uqg8z4GnYGmQdB0pgWCqnnmFZtJ6bPzaU9C/QKrXJuKlJ8CApmeWNveHh0Dj?= =?iso-8859-1?q?e1PcrgE4chnBlKLVzoMgmDsU1d7c+mWyYC5tm0iS2AdF+wu28zzj8wLo4KoG?= =?iso-8859-1?q?WG5hzsGcaGvkQrZOuPuEdg4UCQkbn3o8t2xRZKnRmDbZUvCl+lK97xnarVty?= =?iso-8859-1?q?G62XRuavarl4MfSjk+TI32Z+q9L0bZG/etEZYn7kVrlit9KMQb34YSSjim0O?= =?iso-8859-1?q?yhzTbO4QHJVKoulZ88HHOjBzPOGZwGTFmy8oGcEgtuNp2crWbcD0i34TYtmQ?= =?iso-8859-1?q?xXwHs5Ywxoab8Lve4J44gmbF3F+FnUA3+FF5VaGmhWs2NLMJS0+DPAif+m2a?= =?iso-8859-1?q?iTRVZlnYCIsE1fxY6p0EMxH6MHw0bAxdC+RRjIS9G2IiGuMJDlki2hjfQhQi?= =?iso-8859-1?q?huhDOvxdymW2LMoGdOwoJ/sMPa833LTfm7AtcPFSZy2j4UR4e9PG+fQFKelH?= =?iso-8859-1?q?VHShCVWMJDor2h39xJSwpCBFramR5Zjgw/ackh+QvdGvFTgJngFaPchAWY1A?= =?iso-8859-1?q?0TrtEmcrv39NSqu3+qU7uteYu2HeoD989QHFkOH7KLxBNF4mb2tQoRb54erN?= =?iso-8859-1?q?GgI9tsoeTX7kJNN+XqQNFBKN1XPHp06slupeeYRkMBVk061c4KsME21DCNMc?= =?iso-8859-1?q?qYeYIe+yQZ5GT58tfAFUPX6YgkMottj6Ozo7rp0K7bXwEbAYwKKVrt17Gd5R?= =?iso-8859-1?q?nK5o3up9luUpyd5oTxcKZ4YJknP535RVmQoVGiNNLa3YP6iRWcphF0/W/mrJ?= =?iso-8859-1?q?ztYp3+kk3HFWF+UuZrLqC1+Uu8xuskIte1u2YFQA6GZK6aaml4uSicGr64Lc?= =?iso-8859-1?q?qJRCKkuQA5TpCrVLa0zculX6pjcpkXhSi3H//R82NSK53gp3JaNNPZaxpoQd?= =?iso-8859-1?q?/XBDp9VzN7hsUAYkZEDR5mwMTu+rzpFCIBLeZA2Mwyqrp1mDGzc2Odc/lWrp?= =?iso-8859-1?q?5WhjcABuG8/66cvyw/kXRv+nwtahsAFl45kl6y3RFRMe8fXFNd2IK+biOqdf?= =?iso-8859-1?q?eDayxaiE6CWYh+WLW8huRqV6bPZarRYYnyX4i1scOapFL1qdDrwzJeGS0g+q?= =?iso-8859-1?q?tS7EwtWUL3CuRXVCczTJQvwBaTp5oMJSZJFZH/w90y2OKvAj2lp379U6tRdS?= =?iso-8859-1?q?5vCAqfct0bq0ZNRWI0h1jfQPBA7EplBF+IXAxoH6w9gqogaMw7F9QCACuHl2?= =?iso-8859-1?q?xFmXV9duDeJkp/tjkhuHytXm0QWUicQSzGg9ZICr0GtQyFbBr3+XZWYYqNTz?= =?iso-8859-1?q?ntw29S1sutgFBFlCRKVqC/srXBOveCDVTsNkEO6gWv7urzdzPlMTcBKAlq/F?= =?iso-8859-1?q?ssnU/JRk8cdNsLOmv8svz4ytdPC2NGgeDeNsah+44v3/7awmVdu8gkyYeDgA?= =?iso-8859-1?q?5/HI/dNNkhqbh6UaRjyY7aCugHCdNOCc/SwvVcRaSN9QslhnTqs0IDIqQ29Z?= =?iso-8859-1?q?AjgKAW5xnco9tyIuFSolLFF06Ot0vUH95zj3LeMzffZ+inJS9Wk9IZXyx7g2?= =?iso-8859-1?q?EBSU7mO3mO4evCUkDe/x0zEZXPDK4JYwciRfKeHwUsi5r/Ii3kSdfyOOoBY2?= =?iso-8859-1?q?D+e5M5xhmedqS99AqNekMqzbTlMDl6CBFqD59Kg=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 75ea87b3-7ee9-4bc5-b88c-08dd62fcfe79 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Mar 2025 13:34:49.6790 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nsfKFmZ8p5X7S0jNH+axOAgMtNW/NxppDbLNtsuM1oGW4O/522SpkyBlrAOdMHC977Wp+vOf2oyW4pkUHuHVMw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR03MB7950 This series introduces SMMU handling for PCIe passthrough on ARM. These patches should be able to be upstreamed independently from the vPCI series [1]. See [2] for notes about test cases. [1] https://lists.xenproject.org/archives/html/xen-devel/2023-10/msg00660.html [2] https://lists.xenproject.org/archives/html/xen-devel/2023-06/msg01135.html v8->v9: * see individual patches v7->v8: * no changes v6->v7: * drop ("xen/arm: don't pass iommu properties to hwdom for iommu-map") v5->v6: * don't revert ("xen/arm: Add cmdline boot option "pci-passthrough = "") * add ("xen/arm: enable dom0 to use PCI devices with pci-passthrough=no") v4->v5: * drop ("xen/arm: Improve readability of check for registered devices") * drop ("xen/arm: Move is_protected flag to struct device") * add ("xen/arm: don't pass iommu properties to hwdom for iommu-map") * add ("xen/arm: Fix mapping for PCI bridge mmio region") * revert ("xen/arm: Add cmdline boot option "pci-passthrough = "") * add ("xen/arm: Map ITS doorbell register to IOMMU page tables.") * fix test case #1 with PCI device in dom0 v3->v4: * split a change from ("xen/arm: Move is_protected flag to struct device") into a new separate patch * see individual patches for further details v2->v3: * drop "pci/arm: Use iommu_add_dt_pci_device()" * drop "RFC: pci/arm: don't do iommu call for phantom functions" * move invocation of sideband ID mapping function to add_device() platform_ops/iommu_ops hook Oleksandr Andrushchenko (1): xen/arm: smmuv2: Add PCI devices support for SMMUv2 Oleksandr Tyshchenko (2): iommu/arm: Add iommu_dt_xlate() iommu/arm: Introduce iommu_add_dt_pci_sideband_ids API Rahul Singh (3): xen/arm: smmuv3: Add PCI devices support for SMMUv3 xen/arm: Fix mapping for PCI bridge mmio region xen/arm: Map ITS doorbell register to IOMMU page tables Stewart Hildebrand (2): iommu/arm: iommu_add_dt_pci_sideband_ids phantom handling xen/arm: enable dom0 to use PCI devices with pci-passthrough=no xen/arch/arm/device.c | 2 +- xen/arch/arm/domain_build.c | 2 +- xen/arch/arm/include/asm/pci.h | 5 +- xen/arch/arm/pci/pci.c | 11 +- xen/arch/arm/vgic-v3-its.c | 20 +++ xen/arch/x86/include/asm/pci.h | 2 +- xen/common/device-tree/device-tree.c | 91 ++++++++++++ xen/drivers/passthrough/arm/smmu-v3.c | 117 ++++++++++++++-- xen/drivers/passthrough/arm/smmu.c | 190 ++++++++++++++++++++------ xen/drivers/passthrough/device_tree.c | 91 ++++++++++-- xen/drivers/passthrough/iommu.c | 15 ++ xen/drivers/pci/physdev.c | 4 +- xen/include/xen/device_tree.h | 23 ++++ xen/include/xen/iommu.h | 40 +++++- xen/include/xen/pci.h | 2 +- 15 files changed, 534 insertions(+), 81 deletions(-)