From nobody Mon Feb 2 09:25:51 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1767733337074310.6876756816698; Tue, 6 Jan 2026 13:02:17 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 26AAE3FD19; Tue, 6 Jan 2026 16:02:16 -0500 (EST) Received: from [172.19.199.83] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 2B10C43EA8; Tue, 6 Jan 2026 15:56:06 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 2BFF841AD6; Tue, 6 Jan 2026 15:54:41 -0500 (EST) Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010013.outbound.protection.outlook.com [52.101.56.13]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 6FEF241AE0 for ; Tue, 6 Jan 2026 15:54:37 -0500 (EST) Received: from SN7PR12MB6838.namprd12.prod.outlook.com (2603:10b6:806:266::18) by DS0PR12MB8416.namprd12.prod.outlook.com (2603:10b6:8:ff::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9499.2; Tue, 6 Jan 2026 20:54:30 +0000 Received: from SN7PR12MB6838.namprd12.prod.outlook.com ([fe80::69ae:2df4:372b:6fbc]) by SN7PR12MB6838.namprd12.prod.outlook.com ([fe80::69ae:2df4:372b:6fbc%7]) with mapi id 15.20.9499.002; Tue, 6 Jan 2026 20:54:30 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qAYfNeqrxttWQXNonvkCnSkyT2OcKMMl+G0w+sq1GJxCaCYK80d+xrVsu3zzhKDRZKTzoqxwjMqG5ohRGHOMwZOiWK0g2mtykSNAyLSz82Jrk91TMMDv0hIxhwuRIEBHASD4a7vvHa4QSSjIQlGxCYd4weqNe7OYIGeyv8SYCmySpwxjsHOcDAF+2VtPj5+9yNtmHZGZoAUKFcBFtRGGxAGhasILuXRBS7OFsPFcGXldl9zxwipjUXO1QeK7nYLDzkRqVI5kA+KX/tZ3JJi0GW1FxTURmK+QWhEuiTwgObUO/bx9Nsd4VYNn60tPmoY6/7xIMUGRPJGqWIBbK9r+Sg== 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=VgwrSL6wprbqTZPYUtqO9mEL/xoHkEyFqRBTg0dv7N4=; b=rV2VbxvPk3Qng078lct5epmXQOhMhN3BqQWBJNZmQPr3CTyFbEOK4iB5ggCxIdvnNwHfj5IgTjx3/UQjgToMHLEDXyTbcVfY/muehubj4jRwXW4mhzCMGD4DFGvHPYMYW6aA1d72AA8saYJnQsByO/jciKKGvrnGsJwYgJzQvMqats2sOB9lEKE0Dh/nK5PyTz6QGurW/Qrq+9UIrxYgZHAsJ30TPI9HJ1ryLX1z9boaCjLLt2lxHaPu8sBG+DsptyiiJdFU2zXD48ASTRSUmsgQTl9X1aaWJPqXGJZAIUhtN9bol32iJSy1k5FKKHd/2R5cOOyXLLivK2sJV9ojhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VgwrSL6wprbqTZPYUtqO9mEL/xoHkEyFqRBTg0dv7N4=; b=EEQKv4eUi9ZIRy+4ewz+k20LPEcCHmu2FEPGJqS4/UHmKyGKr3v0hg/CS7SGO4+UWCiHGPgf5yH4UUZAqsNIRm99cKDyIAcou7+YtMlDSARF0zYX2REOHoBc97V5bes4/p1cVf33vU/bJ7j71/H0byF2hBoxZ31urdt4xHrp6zO4seec2qy8tRWPqLb9aOqI8WH0XPbCb8Cgxm2XB+QhvRkp08MgEhER3+TrH5Ona20EjdW5xJ/DdGpVlDjQzAoqVtzsoLc7zWSshHElNKsPi74HE6yJL3kDKfwh+DzvO8A/SInELaHKsfbLGYyMk/5lMut0vai68AGLMFok/HhnPw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [RFC PATCH v6 3/4] qemu: add IOMMU attribute "cmdqv" for smmuv3 Date: Tue, 6 Jan 2026 12:54:24 -0800 Message-ID: <20260106205425.363116-4-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260106205425.363116-1-nathanc@nvidia.com> References: <20260106205425.363116-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0375.namprd03.prod.outlook.com (2603:10b6:a03:3a1::20) To SN7PR12MB6838.namprd12.prod.outlook.com (2603:10b6:806:266::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB6838:EE_|DS0PR12MB8416:EE_ X-MS-Office365-Filtering-Correlation-Id: 54f9beb6-ebda-4e75-95ee-08de4d65c964 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qaGD8C0W2LIoFRsT44zBq+pphwnt6oekuflGSzZJKw27/8nMLxnyTsxATnS8?= =?us-ascii?Q?7ro9S+kr0TfGuwIH9QaUmrhVMhG41Yr5ywnV+aclN8uNOZlKNVcIW1MUBSUU?= =?us-ascii?Q?8IAMp+Slrm4Bc2fO8eB42uXstqQgfXZ2KqbXlBfrSARkHfsxpb1rmsBheP5U?= =?us-ascii?Q?lX9wxlWYXFhX+ueHFYV026c1RqIEdM20ghnI8AYHAlV//UD0Sa5f/1qChWsm?= =?us-ascii?Q?091tgVjR1/3ZRXEbOSojx2yK3JfQQvI4erlJDQe7h4XB5qqsZd7aHygy2NtS?= =?us-ascii?Q?QaNSMESfxQGsA2zAbQu3yrCr1WmiIchA2lmt3J11XxkNa8siC+hHnw2FMLSj?= =?us-ascii?Q?1oAebkNFRgcx0La9Pl4Pjc0RfFlj3s9sGTdPeLF7zD7Aan+JvnfRw6oJW7gD?= =?us-ascii?Q?bLDO6uO8pcbAiOdE27x5RjYgdkJMWrqJz6IXzOFyGUaYVhF5+Y6xNXtMkWpg?= =?us-ascii?Q?z3RgT43qg7zo/D08oIaPZ2m66bFx6nE8Rmd1jq3fijVJonLvDyBffxzuyVqp?= =?us-ascii?Q?h3MAtMk3Jrisw0Tu2gWE+o5ra5AL/VJt8bRd4FO5kc587t1vdC24KGWd39mB?= =?us-ascii?Q?qP2eQi06pwV3g8It0XDE6H5ibs2EvbTAlYSVvW0Ehj+nkXiJGGiCifZdfuPR?= =?us-ascii?Q?4iiOiJXGVHtKDxaF5H1VEvRSuzlVfsDe6OBni65+5Ne3ciysegbPaLwdPF7j?= =?us-ascii?Q?jYmFCTV0kpzFYYtBnxO/7VrOJOiU+qra6DFwSgXCu0ekTRu4byeqBuP4WTrV?= =?us-ascii?Q?LQg9zWp1MB9m34EtHIMPLfpH6wVAFikXRmj0XfbgLlG/xJBVkoZgxPRtxGPG?= =?us-ascii?Q?1PzmAnKvCon1Qcy1UyGlUyQR5RIhq7agXfJaUQODbnMwd3P9n04186PhWjwL?= =?us-ascii?Q?8yEPeGpdU+sfWm3nAsXa9IK1/DGgDRepK5Of81kTHUCvE6IqMSNElmZn2Jpf?= =?us-ascii?Q?hgbqwmx+SR3QlzWMBvX5E3S+N2zW0CE5js0SwgirM7qmAsXG/3yreQxowdYs?= =?us-ascii?Q?2uFKW0V6QQ3wNTXs/i7dk1q9Fojx+d9rL+0FTmG8mYLY4oG9/ptR9mqrUy4G?= =?us-ascii?Q?mx0iyYGz06ajCH1krOyV5zfH3tH6PTqou/JVpjTL/Q6Va/nT2e5GGtSj4xnW?= =?us-ascii?Q?s3IY4VuDMNeDLljOgBjIK8y1kRScvRf6d5mvnBHUV27WV5iwwK2nqlnOjlWm?= =?us-ascii?Q?WcHlm2vstFYzxHY0foO8xrjKLgZoK3PN6+TIDzsD8bhgIE0U69B9ckh4d/2A?= =?us-ascii?Q?pXyj4Wf25NShq2QYsrXCoqTYKfCPjIs/r0aOoS4lJmhu1NpjJN2qfl3nuosQ?= =?us-ascii?Q?XgFx6+if1VHc6kVPGQTv7IwocG5a413ZyQHjtttL1u7imdr0kNIYmgtUqyCZ?= =?us-ascii?Q?rTMhY6qhmDwrMGB71gtZKSH8EANwqDhEZ2VCHnUlxihMCn1UCznwBynX+E3+?= =?us-ascii?Q?xnF4uSZwluacZ7CqcAW6LxDOre1PJr4a?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB6838.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ovUGgDXeq42fSI+cDneFDvT19apwoy4gUPTEdrMZQFLR5iApdjbZ9K8ItqMI?= =?us-ascii?Q?ezW4xrhUWS/JC3HfTkYIZWRei/NBh30CfG53rcnu8FKknKCrmzKi8x7GlyW/?= =?us-ascii?Q?YEgG0qk1JqOn1vgOucz4Ap/PJx8M9TcXXXnsRdCVCU4Iz+HpY7MZW+fi+m54?= =?us-ascii?Q?/Mw1M7GfA9DyVapruPqa5kZvPR9xgFgjo8Sl5d7fXzMg2IWXA6Qzwb2IG9xB?= =?us-ascii?Q?aPNUB7hvTD6cfWpKlSMVxl3psqOye87/6zymBhOEujXBpjXfU0E5FG8d2aqp?= =?us-ascii?Q?8gzLUerI/qjJkxkfLNYNBZZcEtv3vb1nDGLcNAj/6EbhlEhALozJhD1Xm4B0?= =?us-ascii?Q?rY3p2GAR0g/gYauYK1Tm3cOA65wOOYGPQEGx+6mZ5zsKEwAyBY6frYI19iL/?= =?us-ascii?Q?r6wNotB203hBKJhlpdwruoJf+qpLa4Vt5llD4P4WJMkmqKvZR7HT+7qO+/Ux?= =?us-ascii?Q?ExApX5D9iyXksFA0Y/JlW4Ohjuph4SjklJS4D/+FZXuKIHcMNaM5ZerzpHf0?= =?us-ascii?Q?2jLUgrTd7lTjbmfqyw8SS8jOJB1IwBE5tu/e1a80ZDJkwQTO5zCmLP3lmybH?= =?us-ascii?Q?0hpqaoPhmPSCBadN4vWpQyQ1aZ1yZvR3FiDrNxecb1DQVHu16aiRZO/nn5Wt?= =?us-ascii?Q?tCN0uFm+DSivTrh/lZYX/0VsQ8unRI2enp6DALb8OBNpN+3vvc0Q7Oc970Qa?= =?us-ascii?Q?tIMcOMJ3NhvlDG64WZjBU2j0Jv9lfgktGjHX64j6PMNaaXSi+sB96Zj3nRCm?= =?us-ascii?Q?WtYyMLti3i8jwHOLMwfCf2cmHF3ToG5gy5ws+3V+xQ40tW2hLXH1k02hG+lQ?= =?us-ascii?Q?7WuOeBjS+oy+RypgovBtQjMrp32QukC/vOw5o8fwb6ewIy48txgr1IXe5UlM?= =?us-ascii?Q?uXbq6L8RXxjMMaJ3MoPZSBJKUxp8/JSySHkE1IOhJWeK/KlJWxlyzrPjtjMx?= =?us-ascii?Q?jtGqGKXkNfwvvsiGxJzL0ruXQ95IkY7vm9fHyd6uPdX8PzYyXXxBO57JbgRv?= =?us-ascii?Q?DpLylvYJWw0SxOU3hQMB95eE3sMtu8XOmkpvE9amnCzVnIm+tZelvZASlaBE?= =?us-ascii?Q?XqSN1pE6jcT/ZMLYnfJXboXdZ9pzwqol4LsCfObrg1iLY2wuLL5YAvwzPjMZ?= =?us-ascii?Q?y9QRT9GD6GdcIcr/F1CrJ9c9GeTkpuBy/k8MbNyS7WbWG4f/TSXC48H0/p6n?= =?us-ascii?Q?z1rj0jBoxeQZKCT3gWFF8Hr9aH9YtNtCT5M13V970VKeztAix+9E/8CEAseN?= =?us-ascii?Q?yoKXNZLqOBbHW9UhO7gwgzE4SC1MYj+lTi9WRwgTiHHvhKX0ejM5lWm/SVPh?= =?us-ascii?Q?GT7mdvZ1PHzUcwj9krsiE7IuVbXVnHs1SsUxG1rOthvMcopDHcACusPHw7iL?= =?us-ascii?Q?pzKSTUxCT9M293tpSg+AXwzhbLU3W/Rgu3yRm/LIxKNaCqrSr7emOnL1URpO?= =?us-ascii?Q?NjvCYH2gxmL2Q9qrdmFNS/401L+6i0tvJj6bDCyFoQ0/Vx0puGSMVdVZVZj5?= =?us-ascii?Q?bpG/o+ZAjX3f+0D28emuxrbgrnmujiaFB5QL7d2sbay+LkL4LoKtVGxxoxki?= =?us-ascii?Q?5XKP1KwofqIolImVh/bN18D9OlPxFmBoqPsQlcerm/47jBerJ3t1MWvx2zjM?= =?us-ascii?Q?UVCJknQaOFIUqZFHOaawzpU59dYi7J9Iy3ojF51NVq6ihP4K7VDubA9b9/Ey?= =?us-ascii?Q?ePrlhHoWst2JmjZaBwG/AfpDZZvADBJJcWFewUqL+FSA/vUOOPGGbnDYsJNy?= =?us-ascii?Q?ybEl5u8m9Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54f9beb6-ebda-4e75-95ee-08de4d65c964 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB6838.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jan 2026 20:54:29.9929 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WRHJq2VfbmQuXtcvn5thAJVkRpSjafVOMxiBP+C6SDMhvVDkdW6w3QQG4Of3sXhmpx61AQgOMMW6Tt1Hh+GeOQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8416 Message-ID-Hash: GOVJKMK35EJBXZYSBIODVGOR3CDOFRSV X-Message-ID-Hash: GOVJKMK35EJBXZYSBIODVGOR3CDOFRSV X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: skolothumtho@nvidia.com, nicolinc@nvidia.com, nathanc@nvidia.com, mochs@nvidia.com X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1767733339284158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Introduce support for "cmdqv" IOMMU attribute, which enables NVIDIA Tegra241 CMDQV, an extension for ARM SMMUv3. It supports passthroughs of physical SMMU-CMDQ linked command queue from host space to a VM. Signed-off-by: Nathan Chen --- docs/formatdomain.rst | 5 +++++ src/conf/domain_conf.c | 15 +++++++++++++++ src/conf/domain_conf.h | 1 + src/conf/domain_validate.c | 3 +++ src/conf/schemas/domaincommon.rng | 5 +++++ src/qemu/qemu_command.c | 1 + 6 files changed, 30 insertions(+) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 458a514b60..8d23bcf317 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9269,6 +9269,11 @@ Example: to enable hardware acceleration support for smmuv3Dev IOMMU devices. (QEMU/KVM and ``smmuv3`` model only) =20 + ``cmdqv`` + The ``cmdqv`` attribute with possibel values ``on`` and ``off`` can = be used + to enable NVIDIA Tegra241 CMDQV, an extension for ARM SMMUv3 that su= pports + passthrough of physical SMMU-CMDQ linked command queue from host spa= ce to VM. + ``ats`` The ``ats`` attribute with possible values ``on`` and ``off`` can be= used to enable reporting Address Translation Services capability to the g= uest diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 99183b5c82..e93d6602cc 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14519,6 +14519,10 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, &iommu->accel) < 0) return NULL; =20 + if (virXMLPropTristateSwitch(driver, "cmdqv", VIR_XML_PROP_NONE, + &iommu->cmdqv) < 0) + return NULL; + if (virXMLPropTristateSwitch(driver, "ats", VIR_XML_PROP_NONE, &iommu->ats) < 0) return NULL; @@ -16588,6 +16592,7 @@ virDomainIOMMUDefEquals(const virDomainIOMMUDef *a, a->dma_translation !=3D b->dma_translation || a->pci_bus !=3D b->pci_bus || a->accel !=3D b->accel || + a->cmdqv !=3D b->cmdqv || a->ats !=3D b->ats || a->ril !=3D b->ril || a->pasid !=3D b->pasid || @@ -22294,6 +22299,12 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, dst->accel, src->accel); return false; } + if (src->cmdqv !=3D dst->cmdqv) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device cmdqv value '%1$d' do= es not match source '%2$d'"), + dst->cmdqv, src->cmdqv); + return false; + } if (src->ats !=3D dst->ats) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Target domain IOMMU device ATS value '%1$d' does= not match source '%2$d'"), @@ -28668,6 +28679,10 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " accel=3D'%s'", virTristateSwitchTypeToString(iommu->accel)); } + if (iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " cmdqv=3D'%s'", + virTristateSwitchTypeToString(iommu->cmdqv)); + } if (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(&driverAttrBuf, " ats=3D'%s'", virTristateSwitchTypeToString(iommu->ats)); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 71ed4ce0ed..c619e679d6 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3063,6 +3063,7 @@ struct _virDomainIOMMUDef { virTristateSwitch xtsup; virTristateSwitch pt; virTristateSwitch accel; + virTristateSwitch cmdqv; virTristateSwitch ats; virTristateSwitch ril; virTristateSwitch pasid; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 0f84e9f237..856ed2a213 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3142,6 +3142,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pasid !=3D VIR_TRISTATE_SWITCH_ABSENT || @@ -3160,6 +3161,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pasid !=3D VIR_TRISTATE_SWITCH_ABSENT || @@ -3176,6 +3178,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pasid !=3D VIR_TRISTATE_SWITCH_ABSENT || diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 3d6dc695c4..3dc6ae2626 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6334,6 +6334,11 @@ + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index c4a6ec7aa6..b9df5062a3 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6268,6 +6268,7 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef *= def, "s:primary-bus", bus, "s:id", iommu->info.alias, "b:accel", (iommu->accel =3D=3D VIR_TRISTATE= _SWITCH_ON), + "B:tegra241-cmdqv", (iommu->cmdqv =3D=3D VIR= _TRISTATE_SWITCH_ON), "b:ats", (iommu->ats =3D=3D VIR_TRISTATE_SWI= TCH_ON), "b:ril", (iommu->ril =3D=3D VIR_TRISTATE_SWI= TCH_ON), "b:pasid", (iommu->pasid =3D=3D VIR_TRISTATE= _SWITCH_ON), --=20 2.43.0