From patchwork Mon Feb 10 10:30:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mykyta Poturai X-Patchwork-Id: 13967578 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 CC7A3C0219D for ; Mon, 10 Feb 2025 10:31:02 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.884559.1294274 (Exim 4.92) (envelope-from ) id 1thR3w-0004Q3-VV; Mon, 10 Feb 2025 10:30:48 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 884559.1294274; Mon, 10 Feb 2025 10:30:48 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1thR3w-0004Pw-Pm; Mon, 10 Feb 2025 10:30:48 +0000 Received: by outflank-mailman (input) for mailman id 884559; Mon, 10 Feb 2025 10:30:47 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1thR3v-0004Pl-C7 for xen-devel@lists.xenproject.org; Mon, 10 Feb 2025 10:30:47 +0000 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170130004.outbound.protection.outlook.com [2a01:111:f403:c200::4]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1689bccc-e79a-11ef-a075-877d107080fb; Mon, 10 Feb 2025 11:30:46 +0100 (CET) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by GVXPR03MB8404.eurprd03.prod.outlook.com (2603:10a6:150:6::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.18; Mon, 10 Feb 2025 10:30:43 +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.8422.012; Mon, 10 Feb 2025 10:30:43 +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: 1689bccc-e79a-11ef-a075-877d107080fb ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JfM3ov5M5tJwLatg7w9FApPwc0keQSVvObQj9WengdEuSusNLbPQcXaP2EvhrPQ/k0mI7pFa1C41Vq02LOVz/os3cTzxSZ41cxvjFtOMDsfEWOeL+wxmWk4MMwyQbpdzAai8gA1XMxVCONGsR3vqUXD32g5HvMdNyWBMb/PBfTCz3zrlysSXD/MYfd6l6InAKLdmTPkk6MlwTp6wASP03LTrAFvNZjzh0zW9Lvkt+iwEBZhwoEjCcPf9PzgHSsEuNGzlAcj6xOOvu1tdKInJ5lZ5BoMR2S7nHpTZPIullpXachyl01rZVxmi8hDhhyoIH9k0eCCvFAe1hWmhAlW6cQ== 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=lg3VdTMOgEkRuPK6nGhV2pqWsLBTMLVfT/8HXH50j1g=; b=PhjG8nPPauT66BY7/6IaI19/FckberO8+lutwy61wQG7utYBSPag9Xi0BVLKoWt0zLctFKh+cuHI/g21ndY9RpoOz4YcvILsoI/oGdmXP2HXCPJkoy0kZzdS2VMOdw5MYgFbV+XF1rLlUWe3o3I7w72HNTB15O7Fw3QnuR1BGTy5xlbKIdFcXAYdUog+3atIuqtBxDqTsWFIkoMUr+cy1gDhI/CokGXaYYJF0kuDJtBySEQRtu8prF84kPAIKM2ZD354eRSW/rmrZwoyic1uMCX/EKas/X4h41AFBiAiJzG6o7LMEVKx27J7jB55jlsrd4V1TThyW9ZCPc6LVAkzkA== 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=lg3VdTMOgEkRuPK6nGhV2pqWsLBTMLVfT/8HXH50j1g=; b=fBawI03xsXdoeGalz0a9Bp0i6Z9ZZ3XSQXobloo76zSSaDKfOVssWiV2YEC9FWeO8xxS4tUdMiKA7pz2CrfBEK99EbAiEUGOPeWZUuA68BpebkdHP7GwxDI1UhBcF6KckSA+tHaiTDF8sHWSvoC/Ya2nWSw5JnzUmxByWueFzKIqL0XuVRGb2oWhztN/bdRKk4bberP2FuknoRpNBrooLEIrsXJ717iuuJKlXJaFierSYehHqjJZmf1b+XT08BszQhE101V3jfeOAcqHToeqghv5deyZfPn0j/gsD+8n7qQU3LUSSREofEU6WicCDBAExUTDN0JbXSCp8EV4BnL/ww== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , 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 v8 0/8] SMMU handling for PCIe Passthrough on ARM Thread-Topic: [PATCH v8 0/8] SMMU handling for PCIe Passthrough on ARM Thread-Index: AQHbe6bWSthIneLqiEGoGplsvQOTyw== Date: Mon, 10 Feb 2025 10:30:43 +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_|GVXPR03MB8404:EE_ x-ms-office365-filtering-correlation-id: 18a0195b-3c7c-4c12-026b-08dd49bdf901 x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr 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?oZrLxdPL0BiXCfDpJnqoLhLdkg?= =?iso-8859-1?q?8Hc/oXcbJQBFL0DLaw9OermKVJQJKGO1gB78ZL+AGwgubS2sLOTstqWybDVy?= =?iso-8859-1?q?WkTbQT+Schb3nCZq6d+HjnIdr6zoHacw/jYtQ4FLckDyFgWBX2JdMhey8soU?= =?iso-8859-1?q?mYwfbbKAyLztqZJNI4u7TnQwxrpvCng6brJgjT1XVIjsGnpej6+LaeVNgxPZ?= =?iso-8859-1?q?4h1O/2eWICo8/rCU55xdvO6+5M0Z+QNEQeNkS874jFfw5NOHJwcpFaqFGK+C?= =?iso-8859-1?q?jouFiViz3Dxj5jjtMl4w1SZ3ZRowIBH8b2PfpXVAPnIeURPqPKhgElUsshre?= =?iso-8859-1?q?K1mOQXW2131ZaC34baT0AnYn6N3hgwqWgfQVDMvWvWu39vA4wckzZXrS8lVw?= =?iso-8859-1?q?7FakFX/YBZ53RYEKSrTDByH/9H5eP7kfZQSYcd5WprxQ1I+p/KzRkZkF3a+u?= =?iso-8859-1?q?GawrhDOyQu0geSINxEjowmqFaDq3e3Mzgfw5Ry9oCzZcCT6LcJSjDLNB7brl?= =?iso-8859-1?q?5yfdRpRIJ+r1UskON3Mup8EgXf0Y8eBVYe0QC7TnOWNEnD11YOXUAUkcow5i?= =?iso-8859-1?q?7f6aEU2LiTkZyJr1OPXckqls+lA+ozWb1xh4UkqjTSC/aFNtte5BN2ANTCMg?= =?iso-8859-1?q?ZQmbWIxDkdQWdkwWw5ME/tW6D8bvyVjDELx+ZRKhBu3g/SKc+4vABndLN/r+?= =?iso-8859-1?q?FyA8eQJcTUqyz8fSVJXxvJ9Zouo9A1BndiijpowLg2kn1eus365QlqW2kenG?= =?iso-8859-1?q?bLFX8MIYueioh5zly3dSwjZFyoEuF2HqjdjW9N7MX8Iu9YvbkrAfB8O+cscL?= =?iso-8859-1?q?IE35Vz/GNp9HOooiYNFeY9o7b5zA6+x4Esf2FAObNbV+sm2HLZS9SA6a8cLr?= =?iso-8859-1?q?KuyhWdkGW7iAyVHGvnud+Q951VMLv7L/z2iTA+JGW0UT9GWr7VU0eiWMUPAR?= =?iso-8859-1?q?ODYjRu/48svP4qekPVVCu9ZeYD4yVfRJ5uS7mye/9XkMdOECx2YTVpb3ur79?= =?iso-8859-1?q?hL7+Op7gSYCBxKwPFJzbs0x0Ic6uuWUzgNVzvT5U+1S8mc2GbySuAFvTongZ?= =?iso-8859-1?q?fD53FGGRKiHHaKMqMur0Tif1lG2Q4oB+39Nypuc09a1hQqo+GVrF6Ebgf/R8?= =?iso-8859-1?q?vWGV/T+7uqZ0FMmr0scLoWcNR/gbroFfUw3AQrJp9bFCS1adNd2zvwoEyBp5?= =?iso-8859-1?q?6cmJsDYAzq9xH2fdOTPnh2DBW+6woE/PPjPmjQNNrBGzyv70skXkEo4jEnlC?= =?iso-8859-1?q?jUx+x1PbgYqRoWHpeZ5Af/l30Ijk/Ap4gov62lac9fUnBwrkstpbWdbxI1ly?= =?iso-8859-1?q?DbD16Jz2Zn8gsJNYRcEMVomYX9e7mXaVA0ArT12SLMYEH7qOx1/gzEPvc2ea?= =?iso-8859-1?q?Uf98pOtQxjZr+UZtpDORFmCwi3eMdu1FjQOdUOpmal4eCfyCz/uunrql0mBt?= =?iso-8859-1?q?Bu0m6eTbV3ce0rOGmVXr7z+Q=3D=3D?= 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?YYCZ3Pi2tWzwrjZUT6uo68W?= =?iso-8859-1?q?GLYaawX2qbwKk4MPifQ3YKXcStsFynsUZAXfFDzHGLu4Q9cRoTCqu4AmUTnP?= =?iso-8859-1?q?kjq9Jq1VwTXaCWsYQTP9u2jG09lO+3LaZ7lWwLDGGNXusg3EDqFISOXq9cI0?= =?iso-8859-1?q?jbKjgkTt5NAUQv1Qi5s5xZjOLsuenbu7xn5cL3UgcI3plFedfiJU7z2rhSWb?= =?iso-8859-1?q?mBsUyATHgCaMp0IJCU4K24KGltE+K5XLCiAkr5Fi5zjQ3bSKmVMztAosnDco?= =?iso-8859-1?q?fbOxwoZWB0jQnvFsTmBAq6jV879Q7IdDJYyjmYlYlSNHrb5QRVYeiCT1PZER?= =?iso-8859-1?q?MDFN5V/hDkrG/VLntiYOUwuEPYrvs027bONtDEPOCmey4BrQNwQEz6PXOBBh?= =?iso-8859-1?q?kCLGcs6ALCmehHWrlmvrLbBrOsKUNyDXIT2LGGqs7O6RQ0F7AbNkbkUX5Mnq?= =?iso-8859-1?q?aaGZmJs1MfMLAGRuC7bnuVlokBtOfVxr4GmyAVg13icdAlw26eUD5w2tnZ9V?= =?iso-8859-1?q?u+m5xn8vn//0xjJfyz8Ov29y4jh9NYJpwnylmvfeVbnc4zd2byKqospFImk0?= =?iso-8859-1?q?eSV6kHKsw5fuqTKyLQc6Bg/RvG4jMciVqOMWGDD2sYv0Ozu0kNJexMLVn0PQ?= =?iso-8859-1?q?O5GBfVrBgPdPgmHhXykwgY24sZO5UNaZTT/fPyo+w2GV0hua6xoQIxkraWVD?= =?iso-8859-1?q?RO65Bicp/abC2N2j5fR5QdoW68PQ5yuxjWZnj+fFloLIKpR5AG/B1B2GD5DB?= =?iso-8859-1?q?idEUCcT7TQrD69arSZnTUJOtLXdd4DRQpd/DNHHISzD3CVN5kRvBrv9/Je2z?= =?iso-8859-1?q?xmOHM/1L2CwMjyiM12KIMA8k1qwqCyeYhz+U5di9krnYGfjMgvLqBbP79w4C?= =?iso-8859-1?q?AMQhF1Ou244PwM7/zHe1QmXtXmc+n/ba8bjfOvKf1kg+euIDEo8XB3WrQxuh?= =?iso-8859-1?q?5dhG6KT8sFa9CvlN/7bVDrR5vOs/Xf73lFAri4G51fEt185R2JON5QrofNlN?= =?iso-8859-1?q?cmqxZ+0tt6qoLpCdgRguB7xEeTRPogwFpV0KkXJ8qmBRCYhgO05sdKz/f+R2?= =?iso-8859-1?q?Mvi5NgJ+tgB8uHxk8MOH1LNIx/hEMySrBSF2AmaZzsn/Nu2Hb2fWV267MLVr?= =?iso-8859-1?q?MELhxgQhkD20Dv+e11GlHRDlWGRiFWWXUWw2GmPQAVuE3HEoOvCKz4yxE5wl?= =?iso-8859-1?q?k68tCdqLmdqWbwawjJHsBvIdCh7M9odeKHlICS09UqU9Qty5emHIYtuHS8Tk?= =?iso-8859-1?q?x0Ss0ZdmgtppE7GrIOPo67uKzcPbdN0ORc07BGNTHE468bo8Anjf3XXmhl/n?= =?iso-8859-1?q?qevc2RWuhy0hMbnLlBgCRSygCm4wIxet2u0LruAhWZtO8kXGUz5umoi4naXJ?= =?iso-8859-1?q?J8hMPrMQOPmY7qYr3rX6F4nZD5Bdd8C+g3zH29Fr819nEMC3fQudirUMXYN+?= =?iso-8859-1?q?8q7QU+pWucE58+qnWAJaPGZx9ThGk5AYr4k+SUofT16uVZUp5lbZ2wXdDehd?= =?iso-8859-1?q?iCwIhgrE1d2Ornn81bhZ/qUqTOrYGx5gDHHbmMBNT5+w0MD7/u3lxDgaQT+S?= =?iso-8859-1?q?vF71OSkoR1EV87/wj/2oCwJoqP+VERcYiLAMUQdJdqeFOaWis0CNPKwJ8VFe?= =?iso-8859-1?q?iykyW5LJ5353/QCFh3ef1fdSWSKB5otY6s4tC/Q=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: 18a0195b-3c7c-4c12-026b-08dd49bdf901 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Feb 2025 10:30:43.1409 (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: CLo7KKmWYQ6xDNcUE0Iq7BA7ktHZGIU/hr6w936nNIdspxbMhp8vEoUqvzoYmO2XnXjWyIpd02K618yhd45cSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR03MB8404 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 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/pci/pci.c | 5 +- xen/arch/arm/vgic-v3-its.c | 20 +++ 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 | 97 ++++++++++--- xen/drivers/passthrough/iommu.c | 13 ++ xen/drivers/pci/physdev.c | 4 +- xen/include/xen/device_tree.h | 23 ++++ xen/include/xen/iommu.h | 40 +++++- 11 files changed, 524 insertions(+), 78 deletions(-)