{"id":2223436,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2223436/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260415105552.622421-11-skolothumtho@nvidia.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260415105552.622421-11-skolothumtho@nvidia.com>","list_archive_url":null,"date":"2026-04-15T10:55:31","name":"[v4,10/31] hw/arm/tegra241-cmdqv: Probe host Tegra241 CMDQV support","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"d56fa84debbcff3ba95740d017aad440bc15e810","submitter":{"id":91580,"url":"http://patchwork.ozlabs.org/api/1.2/people/91580/?format=json","name":"Shameer Kolothum Thodi","email":"skolothumtho@nvidia.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260415105552.622421-11-skolothumtho@nvidia.com/mbox/","series":[{"id":499965,"url":"http://patchwork.ozlabs.org/api/1.2/series/499965/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=499965","date":"2026-04-15T10:55:21","name":"hw/arm/virt: Introduce Tegra241 CMDQV support for accelerated SMMUv3","version":4,"mbox":"http://patchwork.ozlabs.org/series/499965/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2223436/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2223436/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=QNAJ7g4D;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fwdQn162gz1yHM\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 15 Apr 2026 20:57:51 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wCxwB-0000k8-C7; Wed, 15 Apr 2026 06:57:39 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <skolothumtho@nvidia.com>)\n id 1wCxwA-0000jR-86; Wed, 15 Apr 2026 06:57:38 -0400","from mail-centralusazlp170100005.outbound.protection.outlook.com\n ([2a01:111:f403:c111::5] helo=DM1PR04CU001.outbound.protection.outlook.com)\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <skolothumtho@nvidia.com>)\n id 1wCxw8-00041Z-O6; Wed, 15 Apr 2026 06:57:38 -0400","from CY5PR15CA0152.namprd15.prod.outlook.com (2603:10b6:930:67::18)\n by CH1PPF84B7B0C96.namprd12.prod.outlook.com\n (2603:10b6:61f:fc00::618) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9818.20; Wed, 15 Apr\n 2026 10:57:27 +0000","from CY4PEPF0000EE39.namprd03.prod.outlook.com\n (2603:10b6:930:67:cafe::16) by CY5PR15CA0152.outlook.office365.com\n (2603:10b6:930:67::18) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.50 via Frontend Transport; Wed,\n 15 Apr 2026 10:57:27 +0000","from mail.nvidia.com (216.228.117.160) by\n CY4PEPF0000EE39.mail.protection.outlook.com (10.167.242.11) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9769.17 via Frontend Transport; Wed, 15 Apr 2026 10:57:27 +0000","from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 15 Apr\n 2026 03:57:10 -0700","from NV-2Y5XW94.nvidia.com (10.126.230.37) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 15 Apr\n 2026 03:57:06 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=dQnR7GRbiP1Auc8PSX4xlBZL5zQjR92VatwCaOH8FPxYWuxadkc5Y2RQ6+vn1TsvamLyYqqWX2Q6YS0ft5EvuPzo1ntxCiOLdoao43DuhWUi3iTXcnsKTc2o/2w6JMx/KMpEK3Gj+ZNn2dMt78BnOWRBTGJTtGpALOKtyfjbHuf5rq/+O31nHyYDeHrEd2S+d1b2j2uICVS+D7ubz2+GDQhAbyKdVtQtc/O3JeSsL1aCRSwvB6LXHULIB3cGxF3bc2WAkgujGvCpzPnFjcjWIuDVwjk/JBhp9FrhpECbDZr4sXSHtuOmR5kEL/MI+JZBwI4bjNty3v52VP1SwKCPDA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=DyzpGCd1LCollYrQuQQJ16hY3n/9NW2IPvqpMgi+Hy4=;\n b=y4k3mwqeFmaRbkhacE8edrmFs5zaXNaXAKc6isQQQOUnxJ68xOyLzxmQenfZ95w0KO+dM5zu8tqGCu+bJ3MNPjm8fnn7dyyiLcZow8vS+UmG0rV+PJXiZETEtKCFEiuPRw5vOan891Tlm82DPVgpYgNUlU+pZLGb/nPNtgc36NOCenpRIatAw2CwPWZQh/XiCdUVJOVgeSXBtivkBjMeFg6ShQv0s+2UFZ5bZnbv29MfIAa3gBneV9uC0iA61gBGc1UBveLX8fNrFzDBhBK3Ge8BLwAkeLp1CnuxICqzuYNJBe0gU0xOtgM1iMInys6jQTCtwDqlqc8tH9eVNTI9rg==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=nongnu.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=DyzpGCd1LCollYrQuQQJ16hY3n/9NW2IPvqpMgi+Hy4=;\n b=QNAJ7g4D48eSXCGB6PVlMIxOS/UzW5bEL/y0JaB9Sajq3qVPwrTfwG57aPussxhi+emNTn+kyCLL+EA1QR6sLCuuu7KVCAl44wZCAeICnVQ8OxrFHRwKvCBKSA06HH7yBQjO3p2xeqf4Hmd/18bCnkRNEcWzMrnlo9tU4ziGFC7Z7Sij0sErNJMAWGpRe2CFqsGwmeJp/PKkL4ZcdUZbEdgOJAxJ4ATf0cc4hvfY8gRgjtCxt3WyyAcjpGpXUlk+c7iDuPwO46oBQASqNH1XINGOYnBUx3wSRTe9VZyqmCINTbfUworh6JzK+YpXEJIRgluZeQ7zxATKCuCiSEcSyQ==","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;","Received-SPF":["Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C","permerror client-ip=2a01:111:f403:c111::5;\n envelope-from=skolothumtho@nvidia.com;\n helo=DM1PR04CU001.outbound.protection.outlook.com"],"From":"Shameer Kolothum <skolothumtho@nvidia.com>","To":"<qemu-arm@nongnu.org>, <qemu-devel@nongnu.org>","CC":"<eric.auger@redhat.com>, <peter.maydell@linaro.org>, <clg@redhat.com>,\n <alex@shazbot.org>, <nicolinc@nvidia.com>, <nathanc@nvidia.com>,\n <mochs@nvidia.com>, <jan@nvidia.com>, <jgg@nvidia.com>,\n <jonathan.cameron@huawei.com>, <zhenzhong.duan@intel.com>,\n <kjaju@nvidia.com>, <phrdina@redhat.com>, <skolothumtho@nvidia.com>","Subject":"[PATCH v4 10/31] hw/arm/tegra241-cmdqv: Probe host Tegra241 CMDQV\n support","Date":"Wed, 15 Apr 2026 11:55:31 +0100","Message-ID":"<20260415105552.622421-11-skolothumtho@nvidia.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260415105552.622421-1-skolothumtho@nvidia.com>","References":"<20260415105552.622421-1-skolothumtho@nvidia.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-Originating-IP":"[10.126.230.37]","X-ClientProxiedBy":"rnnvmail203.nvidia.com (10.129.68.9) To\n rnnvmail201.nvidia.com (10.129.68.8)","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"CY4PEPF0000EE39:EE_|CH1PPF84B7B0C96:EE_","X-MS-Office365-Filtering-Correlation-Id":"6dde8550-3703-450d-84ac-08de9addc86d","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|36860700016|82310400026|376014|1800799024|18002099003|56012099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n sxYw4r8eLVNE3tVWUOFevA8o77jmjwMtaidsIySaYKAqeQsOsnIFnys0EPKBmzlGUwXFp+WaxuLNEji92PBDRCRwF5n8nz6mnBm9LvkXQj2Gde/UPXMyXWjjR0sNl4bL44nQhyiY4/KoDcUA+SJNth/rpOlq6eyNtprXtgN7bW/Q2tP8mRfpPxOdB/DPKr7hDcfhk9EgCXCHBnsFx/KOhgMB7Fqednq5OSigdRaHO506U38/wtaA7u2OWfIEc4jgh6ofTBw8tu8ilHSN9/reBEFgJMk2ZLRcI8O/hRPQkF/hBnikwWbV/fgL+TKUNOILgX1QzZQmXCScPXrv6fqu2KDvm0eh5R+/L51QUwLkYzGl7OLAeu+gdWRE9GY9XWBDMdVtNuyD0f0y+C3qvD6sLSSBLkebdfUU21dtYGx0EXZiliXw4/4oE2LAdIURrAp5+NYeqM3iK3WE3qZm5k39TvCdYcWD1kSR/JfAF7FzLDWiN91l76vl2R1z9b0Ek+pjSWdtPWBzFooruMawK89S+U8IURAuOTU4OcPaCMfaFu0E37RVNSr2MdKieQwEsjEc5cDIO/a30jyJFovlhZgIltK+YvDPXBOuwNmbFlk+2R/RAjJq9J1z1Miw3CTewKinIC0Ot2k7PINfVYAq446OUzHwIack8mH+8f1pbAV83qtYtHcKZx3JaHFQOxmstEUEb0/d1btftX62MbKFsU3buQ1THSx1aER3QzR4L1cQOe70voeCrNpZK/po0DuXwRBGZomVy9k4SMrTupPBBJb17Q==","X-Forefront-Antispam-Report":"CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230040)(36860700016)(82310400026)(376014)(1800799024)(18002099003)(56012099003)(22082099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n spGnBx9omkeYWVmTxxOy5J4epKu7iNgjTB9+clr0w1fAJwzRVtlIaU5IjavfPnw9cbEQ0171tuPH7+kd7nz6epgEhBb5ouU61nYuZ+VVQ5raGm+7pLkkbDgm+9sK0kjACjhGRh6P3+rRiufjHLxHyV20gAZZvcFxUpnRnEjxIsntFoiZyFqcntnY6imi+RaTCasi1ORYBzk4up7UbABm/VtJPA7S1nwnPMmi/czycdWcVviP/8pOq7D2oLjP6URkTczlvSHaUTgYnA6m5lYcVLpTYRnMBbvAUoHgroabgx2tQp6YsysWmIfpi2mPztpbCqeKzwDLCwhapGrrB79oud9sO0USW/mgfpyUrrxBX8SKzx6eKnz68m/MU/MLOdcuaCjomIwmZjZg/USRU71XUjOaKS3oFnbzxhRyvG6qhx615yvCSKsZhRmcmiOf/kHO","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"15 Apr 2026 10:57:27.2964 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 6dde8550-3703-450d-84ac-08de9addc86d","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n CY4PEPF0000EE39.namprd03.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CH1PPF84B7B0C96","X-Spam_score_int":"-15","X-Spam_score":"-1.6","X-Spam_bar":"-","X-Spam_report":"(-1.6 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001,\n SPF_NONE=0.001 autolearn=no autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"Use IOMMU_GET_HW_INFO to query host support for Tegra241 CMDQV.\n\nValidate the returned data type, version, and minimum number of vCMDQs and\nSIDs per Tegra241 CMDQ Virtual Interface(VI). Fail the probe if the host\ndoes not meet these requirements.\n\nThe QEMU model supports one Virtual Interface(VI) per VM with 2 vCMDQs and\n16 SIDs per VI, so the probe ensures the host implementation is compatible\nwith these limits.\n\nReviewed-by: Eric Auger <eric.auger@redhat.com>\nSigned-off-by: Shameer Kolothum <skolothumtho@nvidia.com>\n---\n hw/arm/tegra241-cmdqv.h |  4 ++++\n hw/arm/tegra241-cmdqv.c | 32 ++++++++++++++++++++++++++++++--\n 2 files changed, 34 insertions(+), 2 deletions(-)","diff":"diff --git a/hw/arm/tegra241-cmdqv.h b/hw/arm/tegra241-cmdqv.h\nindex 07e10e86ee..c1866084f8 100644\n--- a/hw/arm/tegra241-cmdqv.h\n+++ b/hw/arm/tegra241-cmdqv.h\n@@ -10,6 +10,10 @@\n #ifndef HW_ARM_TEGRA241_CMDQV_H\n #define HW_ARM_TEGRA241_CMDQV_H\n \n+#define CMDQV_VER                 1\n+#define CMDQV_NUM_CMDQ_LOG2       1\n+#define CMDQV_NUM_SID_PER_VI_LOG2 4\n+\n const SMMUv3AccelCmdqvOps *tegra241_cmdqv_get_ops(void);\n \n #endif /* HW_ARM_TEGRA241_CMDQV_H */\ndiff --git a/hw/arm/tegra241-cmdqv.c b/hw/arm/tegra241-cmdqv.c\nindex ad5a0d4611..3a19a1af56 100644\n--- a/hw/arm/tegra241-cmdqv.c\n+++ b/hw/arm/tegra241-cmdqv.c\n@@ -38,8 +38,36 @@ static bool tegra241_cmdqv_init(SMMUv3State *s, Error **errp)\n static bool tegra241_cmdqv_probe(SMMUv3State *s, HostIOMMUDeviceIOMMUFD *idev,\n                                  Error **errp)\n {\n-    error_setg(errp, \"NVIDIA Tegra241 CMDQV is unsupported\");\n-    return false;\n+    uint32_t data_type = IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV;\n+    struct iommu_hw_info_tegra241_cmdqv cmdqv_info;\n+    uint64_t caps;\n+\n+    if (!iommufd_backend_get_device_info(idev->iommufd, idev->devid, &data_type,\n+                                         &cmdqv_info, sizeof(cmdqv_info), &caps,\n+                                         NULL, errp)) {\n+        return false;\n+    }\n+    if (data_type != IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV) {\n+        error_setg(errp, \"Host CMDQV: unexpected data type %u (expected %u)\",\n+                   data_type, IOMMU_HW_INFO_TYPE_TEGRA241_CMDQV);\n+        return false;\n+    }\n+    if (cmdqv_info.version != CMDQV_VER) {\n+        error_setg(errp, \"Host CMDQV: unsupported version %u (expected %u)\",\n+                   cmdqv_info.version, CMDQV_VER);\n+        return false;\n+    }\n+    if (cmdqv_info.log2vcmdqs < CMDQV_NUM_CMDQ_LOG2) {\n+        error_setg(errp, \"Host CMDQV: insufficient vCMDQs log2=%u (need >= %u)\",\n+                   cmdqv_info.log2vcmdqs, CMDQV_NUM_CMDQ_LOG2);\n+        return false;\n+    }\n+    if (cmdqv_info.log2vsids < CMDQV_NUM_SID_PER_VI_LOG2) {\n+        error_setg(errp, \"Host CMDQV: insufficient SIDs log2=%u (need >= %u)\",\n+                   cmdqv_info.log2vsids, CMDQV_NUM_SID_PER_VI_LOG2);\n+        return false;\n+    }\n+    return true;\n }\n \n static const SMMUv3AccelCmdqvOps tegra241_cmdqv_ops = {\n","prefixes":["v4","10/31"]}