From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725625; cv=pass; d=zohomail.com; s=zohoarc; b=VXAz8ssvurEmf0pecqwPLMQrOSg1kvAqFTvkA4QO3RS/SdEGlJeQKTvSnlpyNw0ceEUdgichGD8iNf3e0czEgHjHhwOiJXxRgnm1lSKgqQ7nS+iyqtSo5wGhQBIl7irrgIdEGaRzjkmuoLz6AFZMdAmEi4TwzxlVPQ4DltZvIXA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725625; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ItrWFDaWs2I2Ws4Wbq+N4rlbc7jqlO1x190+ka8/mqQ=; b=JCtVmURw7xe9K9ccw1dzJB0G1ghjDQNNP+oBGgdVnYdzA5aTAt4FXG9A9TLnV6fXopL2JrI1ka0LnVGeqRuUZOyep9BjEOEK0I5s4tleq3hKE1hoF1+Txqw5RalHy+Nj1HF+WnRt9QaA5ev12J2nFdGazSgrCXL672pA4JCL9Co= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725625155912.3469453839969; Tue, 20 May 2025 00:20:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFd-00015U-8T; Tue, 20 May 2025 03:19:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFb-00014w-CM for qemu-devel@nongnu.org; Tue, 20 May 2025 03:18:59 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFZ-00025k-BY for qemu-devel@nongnu.org; Tue, 20 May 2025 03:18:59 -0400 Received: from mail-vi1eur05on2068.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([40.107.21.68]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:18:54 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:51 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:51 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725537; x=1779261537; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=f1JnRsC9ePUlTgcBlQhsyWHB9jkjiQmMJwGwJOISmFQ=; b=IAOXRg8cKqHdqV7s2pQK04DCMKYQMDffD5nI/9kS1I6SKXya/LigPYMh TXrxs8+7S9uT23Tr/x3dBlJa6li9y4dwttkWMjLYFizr8SKqTYH4SRM8N 5KjzOmAKmlnecuKrKDs6waHDTscJhuApOVCjOBqypMdVN1kSYYtM1DtmM FNpLREChW9LuRtmlPxul6ptorN9aVABvA1LNGsShzXNvmQDqT8XBySjdD 3tBqDRRHodJqgz+nXUopM6+D9I78Kd+/zxl0RfNYvjHdMRNNZtR0+Mo1E etJvAVWwg2ddJAiFQtiAxSPSnUbIfcuU6MCKfXbiIpWo9nkROKpjckJuD w==; X-CSE-ConnectionGUID: uoG8ux+IQsKN8Y8OOiegZw== X-CSE-MsgGUID: jv1YG00xSJ+rTiZjeDX2Xw== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37197183" X-MGA-submission: =?us-ascii?q?MDHFMUuLhlMstz4VlW4oNmL3Vkc/ao8oO6ccBH?= =?us-ascii?q?1iN1TrgvA0CVKx0RQh3fg8BksfJKwDc7+oE2/6Z4MWulDgRGCPYLMb4M?= =?us-ascii?q?o8n1/3f0+mF7yqLFHQes81eafVRk0TtXKyInHndTtMXRSFaDoePTJp74?= =?us-ascii?q?UvW5awmUM5pjKJ6T1eA7BOMw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=T7Qz3+4Vh47Em9drzeoLqi6DLUIOalbXOjDW9qhVzijEj+clwhhPIwc2BWXZxj4niNRVASADYpu4akcgYqJ9l6McoA0F9wail3zbtI1C1/fKZPkCoOLh4R+gKz/e09qtbnUbrHY7IY8eehPMDEfj2c9O6BGmtT6xBynDfdnJReVKLNeFJzG7wRlhVpUuaKRM3fSjM8GEVUcAEIP5ajoArggn4hUitBczntkFCLpyRbZa0izXe2mV0fzCYBohR6J/fPBJekFrfXEClweDmhzl5VbW4BnvK6eNXer6X7Co3aZmY8m6RpLYIujiR6dIjstELqGY3+dNOm8rmTCMFaMqjg== 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=ItrWFDaWs2I2Ws4Wbq+N4rlbc7jqlO1x190+ka8/mqQ=; b=pFjDd62FwKLL5Sk8Qa22P2qpRoUZmXC96j+8H2/fdjbHc+DdEhnL+0EKsJlV7hooOBXtFhZrnezuHA21wzilpFdK87iKirMuMxZxfO4N1PIG8NJNnmgM1ihzvpdPvySzHscc9TcJemdt/RR4oUk15uNaNP6z+GmdDv8CB2nxlpICl4fJlb/jcXlJWxJf19um1P8FWnKWlf4qpS+zObN7SUsWhn8wK7xanIdED0n1P8P6qGnQZg0c+eZgzzueEaG+lYD8MPiOhlCkIfDTJLEy21F+y6HX7SW+oKU472mSo5fYogTgRpT8yY+aUpzaf//RB0McQjUkq8b/fG1Q4sYO3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ItrWFDaWs2I2Ws4Wbq+N4rlbc7jqlO1x190+ka8/mqQ=; b=ZgdBADxLJqvYMaDETKw9QdhPvge1pISPtK/XHzyfcfK/4XWCviriIruZ6jtI9G2pneIrQBFPWiLbtYEWu0qcOWVXiRuXxS7r3cnEI9X2WOou5ZG02eln8MfIXL+NIdWPgXkAjszZWlJPKq5HreToEfewKvjOvQZAmytRm8lExL06GES2Z3Mg1yruFv0aUo9hJdb1if4JXBkRa5qdlTw1i/AqYh1V0JzKJxTQiS31wpWHaXZZ4850LSOXm29m2ZmIjEjufyz8GKdz5On8dd+vTP7JF7BaxYT0J6MwR9rUgtFvdrIF1uNvJRWxIXC86BAtu01qsM5r6A4MBqP4WeKfAg== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 01/11] pcie: Add helper to declare PASID capability for a pcie device Thread-Topic: [PATCH 01/11] pcie: Add helper to declare PASID capability for a pcie device Thread-Index: AQHbyVdvBdD4v0hBk0ujnU5gnkAy3Q== Date: Tue, 20 May 2025 07:18:51 +0000 Message-ID: <20250520071823.764266-2-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: 7504390e-666a-4b67-1d89-08dd976e923c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?gmG/mEDwry0iK7+ECgCxJAPCWu6uDwn8nDwhXO9/RL0ERUPchcrqafCFUf?= =?iso-8859-1?Q?sRttV4m/BG84ga5Sc3UvPfroSITZE5WnS47XMoF/FK/1IPt9IGT4BqQiFm?= =?iso-8859-1?Q?LWVyy1qeb7AERkR4VWXPs6XVzR51+Ox0oEqbYRNtRpL5m9qgmeWQoJkLaW?= =?iso-8859-1?Q?bbvpF2tGYcZ77xuW/PDICph+puGeELf/p3vU4yqMx8tONnO3KdotDVKZec?= =?iso-8859-1?Q?7DzwsF0t+ZCO+ihPkIMAviZG8We+V7D5Kj4JSzzM5OkxsJwscEAsic/0WC?= =?iso-8859-1?Q?rKea7aprEtleiHdl0cAd/L7PhYfBtnc1emrsMAs7JOCWuV/mtx8cpBNNyA?= =?iso-8859-1?Q?36Suvnf65CUQ7viwgZUU43ay5QRz+/jKmixUCEaiswbw5PGeTmsJmbBdTG?= =?iso-8859-1?Q?Z9kOZcv8mvlWtxMf7TYk2mMx8xkZei5AvtJIiz6QOeqXMuq9IhkJMVW+lS?= =?iso-8859-1?Q?mnydEXHrD+36YuAhmDelAn7Pxl2DX8x/Rxegt+UAQk0OUEPFxqrKro9go+?= =?iso-8859-1?Q?e+Tm9qLfxEGGavnLqW4M0jLnigo2us15BHsGnplU3ULVjrHgExrwEq9pRW?= =?iso-8859-1?Q?xo1RdD1Xe165cKZRUyQ3CJyyvLgA6Mp19ZMDSSdDmC5dsGZrsudfj9W1hv?= =?iso-8859-1?Q?te8076PNs87+7SLX0HIorubnzS8+BVWEWcEgoltg8nd4QMnBLA5YL/T87B?= =?iso-8859-1?Q?S06dAG+LPdmif3AQRJYNB9rbi/GYnoO8+zmUrAShDLSyQoywO20w/eP/gg?= =?iso-8859-1?Q?d9yrIIpb91OtogzDVvMq7ZoRKsXXy4XMARwvAjSY2Jdk7NC68QNlhNYSxv?= =?iso-8859-1?Q?fVShPG96TDlHkfk8CLWA4GP2LZEBcqsjSlBhnefWskcnhXgKcMvueQjq67?= =?iso-8859-1?Q?DgsjZ3/v7axd9WqkzMH84Ip+D/nMQ5j/v8VHSnGIvSe9q7d0tFDpb/VTkB?= =?iso-8859-1?Q?a7uCzWIGQCIomauR4hlzz85AOL11TQyDFRxtlok0eTuSg7F9pUF7vG6Njw?= =?iso-8859-1?Q?oHrgY3qonuadcIgNd805EeqPgL/JW1dwnUufBARsr5ZbGoaHSPzyPc1WYk?= =?iso-8859-1?Q?0r63dm5xnzV/ILEXHnh6Z923cd4ynVVx9BJbyXZgdzqe6Gffl81bf6NmJb?= =?iso-8859-1?Q?AwnCorZ2aUjB9qtraeeu/47wqw6VCX0MBPdEUmLnMjxA0QPC9ENMIKEFBv?= =?iso-8859-1?Q?7nTZj2SMJ2FBxwncE+AsZe5SY8yAw6L15b/Zfn2gr00eUPblnTI9A7thDB?= =?iso-8859-1?Q?RRxzJKfQTjWelJ8oumI6bvvWnWKn8MUEjYBFqAmsr4URYuCS6irvM8Z1Sk?= =?iso-8859-1?Q?oTb1OcXjDQKAk0/abqx1Qy86ymQaIfJ/S2FfwOd9a3Bjg1JB/vGb+UN4y2?= =?iso-8859-1?Q?Rj9uuixC+723WAdnJ6jH4z2aaAJhen3aAlV/KIkTKPAD9oQbUWkgEkptxG?= =?iso-8859-1?Q?EPPmaUj9bcA/8Uho78fyOYD2EDLG6mIZqzwWPt9yoOIhjMio4dFhQPi1pR?= =?iso-8859-1?Q?5Egmz3gTFaO8YyCwsUZ+P3p22d9EzowX0YzRdfcxieOtEcMcwvnYrCE5TL?= =?iso-8859-1?Q?sm1Qz9A=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?qPsMhMiSXk3xafdGXK7tGIKpNj15jXrbf9WS5KYcKVmOCOPPj2j3HrpSKs?= =?iso-8859-1?Q?Y+jcUDjGDJtuytYxAQd+4cTGT43UQig9oGjoeMkyYuRJ7ZrjYK18gm5PFh?= =?iso-8859-1?Q?dIk1pj7qxadYAcaP12jIThNfO+F/L3sN+q+n56MhAXcSBF8kgNTocpPlaq?= =?iso-8859-1?Q?W0ZfimQcuRHZTaiHhVqdTnj1aBdOApUGZvHxm+BAncaqKamVW6TXageVb2?= =?iso-8859-1?Q?gbbkIPyeuNnRFNC1UWMHxGU6SJwieYRDKJwrDdGaoR6YEqU1XIuuOZ48ri?= =?iso-8859-1?Q?nh3j/L6dHVhTFUQEol66713kkrbgBSelxcFTeI+2e0CDgbHirJUK6P8BAf?= =?iso-8859-1?Q?6NUMAczE1HUjDTOIGJQWC+N+z0yC9H1E2tZ3wyOigGHhwjaGN9PfBCr9qS?= =?iso-8859-1?Q?uV+0Z0WJP+BMu6mMwvumaFsbjhy5OVbLIiZX9Taz0Z2s9Tj/0xufRnCKw4?= =?iso-8859-1?Q?TSRpRvkDsUTvVdCOyLlWthz1KDrwhenewOqfAY3PWQh+Zh5/VIgIMeM3cF?= =?iso-8859-1?Q?3QK1NEJ8qSM7TuxHLMMO90cKd7hTlRt3v4ZIkB/eOK4z5mnrYSU4atxmfC?= =?iso-8859-1?Q?w+C1dsSZPO8FsQeoeQxgVA+bQaKZIYSW2CK1Aom5jQpZr1I5bv+yJr6wv9?= =?iso-8859-1?Q?wc98MWZOWNrjImZ/H6ImRT32KsfQzd/F74snHST98elxd7fwxuaLEH2pfk?= =?iso-8859-1?Q?3SFLGDuu7sIjvXeOvreSaNRcl4Cew8oKRroOJkIjbGOQ79OMmWNqgLl+yo?= =?iso-8859-1?Q?fWYQYrvA9LPSb2VVS79P+aH/oI1PkOV1Ets0lTkwDgm9uGSrQnGiVcpoJl?= =?iso-8859-1?Q?eZaOgnG0bxB+mCwUAFhPWADq6da7Uxl0AtcW2nqxsN6Wy85LhFZMD96KkS?= =?iso-8859-1?Q?vNc8OiE41Iqfu1qQYEIxFVx1BLNtskm7H8JUrw8dwlKXgSO8glXmgVPevq?= =?iso-8859-1?Q?ARoytDZ5atlfwRzNxcZKVWb9nUwzkGMusV+rBPHeOZSuSpinsCp85f4GRJ?= =?iso-8859-1?Q?XAheVX9SejJVp1U3KEfpYcd7OwqydFVqeG6JDNiM1DzIfX9YSkmMA9IdJ+?= =?iso-8859-1?Q?3qY59zXYP9l1eK5YX9q/rO/glT5lSIEGrJ6kGLluC6huvCd1Yf5MAyq2yr?= =?iso-8859-1?Q?ajZr8T015ANkfpagO2j+FknNxvK45/3gWEaFcwJ4ATDWL3+acf5fgvc704?= =?iso-8859-1?Q?Af9UtxmZjW8DuOemH0gOf/1L1AGnM3gkF6QHlJgxZ0t3oZTzNaqzIodBI5?= =?iso-8859-1?Q?h5+/jzl305NaJ7/HYabyZeeElJB/JKfGQol86DhmGMZli6aDK2V4bYF2fI?= =?iso-8859-1?Q?ValZ6Nh7BhGPm20YWvefGCO21jQnZk2l9Ne6S48WnaUYZG03SbrvyyfUpJ?= =?iso-8859-1?Q?b5K8LacVBNM02KmHc56TB9a4plY3DwO6qfZyoXhaTxcS0s6kAS3EB+pxqq?= =?iso-8859-1?Q?2hyN8cAxUnL4w7RFoXWk6BDJjz9XPO2aTGGHejbvaK6YdCIxMiIBNz+DD7?= =?iso-8859-1?Q?hFYqrOvo6XqXbEu5JLObgMAnD7KIEzdWE4lPmWFOMmEwhumuRNfsFdW7oQ?= =?iso-8859-1?Q?KNXBz/OAm11EngmVOb+XmN9Emr0lsfEheifGpb3z9pNcppqlpPwTJKltGf?= =?iso-8859-1?Q?/O8qigidAz309kpraTobeRdZ+AmTVIzkZ6UvH112r47yFcL1CjtZXo7eqe?= =?iso-8859-1?Q?kC13q6CE4gVnfp7S+ow=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7504390e-666a-4b67-1d89-08dd976e923c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:51.1733 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: t5q7nDl8UBuKHaxVfVGexq7JhxogXvlikC/76dB7GFMhV3ZBm5FZAJE2jKMsCAfRt3jWr1GJQCvabgMsS0O0JxxIJAUzCI3rRoCGqEAujhrf9t9xgJSVP3JqbWr8YkXq X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725627615116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 25 +++++++++++++++++++++++++ include/hw/pci/pcie.h | 6 +++++- include/hw/pci/pcie_regs.h | 5 +++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 1b12db6fa2..4f935ff420 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1214,3 +1214,28 @@ void pcie_acs_reset(PCIDevice *dev) pci_set_word(dev->config + dev->exp.acs_cap + PCI_ACS_CTRL, 0); } } + +/* PASID */ +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod) +{ + static const uint16_t control_reg_rw_mask =3D 0x07; + uint16_t capability_reg; + + assert(pasid_width <=3D PCI_EXT_CAP_PASID_MAX_WIDTH); + + pcie_add_capability(dev, PCI_EXT_CAP_ID_PASID, PCI_PASID_VER, offset, + PCI_EXT_CAP_PASID_SIZEOF); + + capability_reg =3D ((uint16_t)pasid_width) << PCI_PASID_CAP_WIDTH_SHIF= T; + capability_reg |=3D exec_perm ? PCI_PASID_CAP_EXEC : 0; + capability_reg |=3D priv_mod ? PCI_PASID_CAP_PRIV : 0; + pci_set_word(dev->config + offset + PCI_PASID_CAP, capability_reg); + + /* Everything is disabled by default */ + pci_set_word(dev->config + offset + PCI_PASID_CTRL, 0); + + pci_set_word(dev->wmask + offset + PCI_PASID_CTRL, control_reg_rw_mask= ); + + dev->exp.pasid_cap =3D offset; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 70a5de09de..fe82e0a915 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -70,8 +70,9 @@ struct PCIExpressDevice { uint16_t aer_cap; PCIEAERLog aer_log; =20 - /* Offset of ATS capability in config space */ + /* Offset of ATS and PASID capabilities in config space */ uint16_t ats_cap; + uint16_t pasid_cap; =20 /* ACS */ uint16_t acs_cap; @@ -150,4 +151,7 @@ void pcie_cap_slot_unplug_cb(HotplugHandler *hotplug_de= v, DeviceState *dev, Error **errp); void pcie_cap_slot_unplug_request_cb(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp); + +void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, + bool exec_perm, bool priv_mod); #endif /* QEMU_PCIE_H */ diff --git a/include/hw/pci/pcie_regs.h b/include/hw/pci/pcie_regs.h index 9d3b6868dc..4d9cf4a29c 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -86,6 +86,11 @@ typedef enum PCIExpLinkWidth { #define PCI_ARI_VER 1 #define PCI_ARI_SIZEOF 8 =20 +/* PASID */ +#define PCI_PASID_VER 1 +#define PCI_EXT_CAP_PASID_MAX_WIDTH 20 +#define PCI_PASID_CAP_WIDTH_SHIFT 8 + /* AER */ #define PCI_ERR_VER 2 #define PCI_ERR_SIZEOF 0x48 --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725626; cv=pass; d=zohomail.com; s=zohoarc; b=GuIbnVf+SzXkhNrsn07YwVOScnuXzh325PRbV0JtRBfcYfYW02Rld8vjrbNFkV4KzruZsZkgMP2poDc9u8UOUA80W1Jtw0zHNeSbiXwJzE06CrWTdbABSEHiZpnHM69R1cCl0rR1Ob+1ECjt4X7dIHss7wZA4yLaZl07l9O9/bw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725626; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=7HI5dl9nWXTry5az4KlPo4ZHUKtAIoN5pXjFWxb0Hhw=; b=D+PvGhC5GHJjA+Af4LtbQbTAiE7fBvtFxbkHQhn3GD0EqJzkJvuxWH7d2DSrxa4Ps7AbftG5cilP/aop1gOs10S5nK8i5P2tFrGS5BlIvg4EtlUTxLhNLEvUNoj1KoYYx44G6Gn+o1AA7shM0AMaUW8c76Ccwr2iKE6bBRoRt1k= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725626524451.12786708816907; Tue, 20 May 2025 00:20:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFe-000162-RN; Tue, 20 May 2025 03:19:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFc-00015M-AU for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:00 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFa-00025z-F5 for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:00 -0400 Received: from mail-vi1eur05on2068.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([40.107.21.68]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:18:55 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:52 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725538; x=1779261538; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zlvg/jUROVZ+10ah33uxDEpDW8jE1OkZopl0gi0Xygw=; b=KFeZ7P+GLvXtoC+j4tyzb4pzSFdf0WRgqOg9FYy4Kb5HZl66etOjTo2A 1SS3SNqVZPf4n65JS35GCmdQy6oWCVszbZTsDwvqHHMlRVKmCchytsxL0 djsArZWTi5KkK+BwRKdG8e5lPictBkre9gE5O9kQ+RJpOEynd0emu8FhQ 517pW5DXo6PJM+mBjBnfdRxDPGZVjOLOcuQAkMpxLPkoiTbQrEr3HnPbd Jw5E8U1tKGhlNBl5RqBIGpMpzpMJae4IFFChJkHz+SklfSEgmld0iT/Gn hvx3Er/FPd6t6AfOvHe2W+tt6dwD6bRD9GN6S+AtNKD1xFZm175Gv1OO6 Q==; X-CSE-ConnectionGUID: 1qSahIeCQ5K7VaHQbskwlg== X-CSE-MsgGUID: SUQ9T+zAQ1CjDn3MQY5HCw== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37197184" X-MGA-submission: =?us-ascii?q?MDHU5MwHbKRYcIB+F5CILfHeHH5xwLUkOO5K7K?= =?us-ascii?q?+LskWGJIHKA96RI0fDS4Jii2qc2qITFyK45iUbfg843TfdqpiugaZc1v?= =?us-ascii?q?kaC1mxKFBEeZ4YXIK3ovRffvxeFbXIFOgmpfP8u4TVrG7DP3C/A1MkRX?= =?us-ascii?q?8BtvEEscsqhXC+FicWJY/dLQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yXvGPtKbF1FmHQqE2wO2DbKoDEjwoV3zCzEQj+XP3mdqm+cfSEa+hD7uZBZj9Fp2bnlTWtQpwug5v8DgmxRDshTrXRmqQfCed/GVajUdaK5mwnNoKQFmdiTlstpHVXmx7ytIf85AmX0XVlix4ocoGfnyoU+2UeZHksontolNrDtJzhcyEGd4+NvTzSNHzDEQqiPW+jjJqGj4pxdAc4HtoSmSkWJaEP3Bk2kP/R4alUJYB4bXi3pLsdAFJzt4slrq3c40/qdp8Vo7qFd2QjdHd8i836RVLxkCxshzSPPQqfLyTs1rCLdyaa6bwoeqwnvurOn9HrhGuXYQI0nXyoN9DQ== 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=7HI5dl9nWXTry5az4KlPo4ZHUKtAIoN5pXjFWxb0Hhw=; b=rYDnJWa2sOQwjm38nOORxo1KqXygLbcFf9apVNsCLiTpRibR/Hg1VGDpppMHkP3B5s97eDFuEM+PCKHWQ37j3vz14y8yEv0l1z9ny21oYUQb1MEuYkg8Y41iwgkKyPEFB1FJwTHvJiBWK+sVk+5g8iU8X3qLNDSHBPq29jQZfccx+MLY5BU8k6l+J7WZ+MNvT+GH6hyhobAlouzNfBpbbAunKZXuR2AXopqEMopkwz0JGgLQ+1mSaKNWhsvjoFUN6HBcZAzkSK7Uc64r4xBbFLpiLr1gTFuKvOyVDNfKuMqyIJbJubj5e/L184C2tpv9dM2zQgmFFte76nmYPCzrHA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7HI5dl9nWXTry5az4KlPo4ZHUKtAIoN5pXjFWxb0Hhw=; b=U8Vh340vNBZ5J+STJtE4TBddj6Y4xa2KIMhfmnSSzqsxnOy6+eT2cHuGMUDO0aX8ibYYtd5vJpbrXe2yaVsdeaXpDGZMMt1hRthAJlfDhiRj0f6agdiCVZgOH67MoeB8P3sMybphKXEKTNwvltKeddMTu0PfZvM0XmyyU7Fkpawyb35n06YSBJQfvoUOF3HuqnPbONSutMPXNvUkdh0MJW5VjdMztMHq5gm0jqzge+D05i14RADerU5klMbUTBT+CkHKu3w5qs6GrB4pkgtiHk1m4Tiv2e5YsIkaz+jEhehlYnIG95vV8Gzuk2Y+l2qPnLOAR0zxzz5guU1qEztavQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 02/11] pcie: Helper functions to check if PASID is enabled Thread-Topic: [PATCH 02/11] pcie: Helper functions to check if PASID is enabled Thread-Index: AQHbyVdwrcSBUKrHQE6E138zbQ1yag== Date: Tue, 20 May 2025 07:18:51 +0000 Message-ID: <20250520071823.764266-3-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: a31786c8-b663-4ba1-7bf1-08dd976e92ba x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?nGdTH3CMXxaICRh/n5dGy2BMGcrfBSTUtB1UGvXruQ7ECc8D4eyM/xyOpP?= =?iso-8859-1?Q?qSDErOKfpQwIJurWAPK/JUNjmHsXCCdtTEyjbBEpp69juDNyA7yL0f89Xa?= =?iso-8859-1?Q?MBy7wtyQMv7FXAZvjYfMDry4rkG+O6gJ3dJxIhps1fE09v6zIfFcfUh3+v?= =?iso-8859-1?Q?srCNhKl/eek0f0l8j5ZJfiVzLWKKD+YIJzBBGSTydcmBp69a4CmhgZ3BXr?= =?iso-8859-1?Q?peGIvPSQNkG/HT4ODv6l8CfZJvY0cm8uXxJ5zbmd3FqOpLH6apQvg+hOCO?= =?iso-8859-1?Q?A5oIyLJxz8NF4BCIR0Ai3/X70qX6P4ubw28K9AGXhij+RH54TNIk6GwW+D?= =?iso-8859-1?Q?QKylNlkJkzzqlM1xO6AKnNfvYlRVGtlDi6k0prPtTZCnKwmt00/Nys5C54?= =?iso-8859-1?Q?xchADhTO9mlrk5ghJG2khwyWKTSig1DORfXCFDG2W6EBjXBYUR9aCTZvDv?= =?iso-8859-1?Q?5iZ3k19pP0c4Ziso3ZzKYdgEQ4FKzXevEja77OuWps1iuwArkie6ghPMSW?= =?iso-8859-1?Q?sQxp/ZMRDplzoktATVPSI16zhp6jpXEyeeSczmiMxTTO8QDUTEdU+X8Gco?= =?iso-8859-1?Q?UVeYvB0P7eaIRIBVr6mibIchQ11PWTP0toL0ujQHbRfPFXikQ6hh/iSdC8?= =?iso-8859-1?Q?drftfjbHEz6t6b1FOTorQ9blUEhjM+nHSwRV3J1JUzwx8+1TCQrBMV67iU?= =?iso-8859-1?Q?4M7FAqsbD7MQraXGcjbH3uYSpf+0UAs4tDgB4I7yugNz4tObkFNEA1Ir8M?= =?iso-8859-1?Q?0DFiYY5tIYsn7g6PbIty1l6iIFd7ITB6RHH/bnroFfGfkixOem0Fo206pt?= =?iso-8859-1?Q?ZiBS2FKIjnbBoy0f2oqJuO9NNBnddbsKIA0Zhe4npSik9poEtMf5G2Ssf4?= =?iso-8859-1?Q?fJ2ARR+XjHkSx2lWK9vuD8igC+oZnc7Lwo7ur3tb8WMfw4mXQfWCewPEc2?= =?iso-8859-1?Q?y6D2bSeMOdCP4KyGIUxTNaYPqodIQlZJA8PzcMEkN3fcImtgu+H0ES1J1F?= =?iso-8859-1?Q?TS4OBKs7frLk7PboQclo4nOJtM2f8tvLZNEAwYRW2iEmlHiRZd6lsnDNhJ?= =?iso-8859-1?Q?7Q9mBvAUQSOHJiRnS/oOUJeJP4AQMmWMgg2566QlXw8Y4E88vP0T5hf3+O?= =?iso-8859-1?Q?6r1kUWAGVYC6/n3hRwZmOtGoxzPmVNUjcD04IvB5rtcKhGwsmgo2bS/gjd?= =?iso-8859-1?Q?1IXxpFVMwKHWSS1BHPfmIU/AaFetaQAq9XIoHJQw1R1MAEJJdfTO7rttOn?= =?iso-8859-1?Q?tygGbTzikwq0a6jyCazwZZneDhLdm/dfmAxgPCyKQgtHAj+MrI+bxum5rW?= =?iso-8859-1?Q?SNFsQFVStwrxpdApO4iKJajcDwHAXMVhSZvT2g0QOb1R01yod2Wi0WVCcw?= =?iso-8859-1?Q?BQw5qRa718dGKOwdU22YJDabPVOJpeL5OGUKtqpvBIsog1jtInRJNy29x9?= =?iso-8859-1?Q?6j9Zr9zW8nzJLw/b3coyhRVdQYqEnAO4L8bKGjtSlR2z57HROrnS8HXX4A?= =?iso-8859-1?Q?/JuES0hk6+TFmuQrdC69iLjhTYullM/wEZyQFBB0e+Iipb1h1DNE/2dsge?= =?iso-8859-1?Q?DpQvCNY=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?ehvMGKM0QwlAUiXJFVQ77jtKHSklCsxaXzQRG8pOyreufHQmJ2HzcG6+ge?= =?iso-8859-1?Q?FPnk4c3Tx95bLrQBSRvXmQd55LW0mMLckCquUYnCV0Ocp3D20ejQRBNrsY?= =?iso-8859-1?Q?Jz0jrb15BXkij9F73BEgDSBJ+p81Uj7p9p1KlQpYpSpAMpsnRmSpaPVog1?= =?iso-8859-1?Q?+aBROk8K4H623VlfyY8O0Gh0/jhtFNOyjUz1oJmP/YS5RwccF6e5c3rmSX?= =?iso-8859-1?Q?BDt/1z1WkNrmxlQAk0fdWUolJx5yxJ3RhFj1YOm/bpdtrafRUT/CL5Q8aM?= =?iso-8859-1?Q?pk8zkrWEJ20TSDskmnUkoYcsUzT0IN6FCwsB0VeLu4ExNFxTP6VPSQ1rBm?= =?iso-8859-1?Q?vK3U/YbHyPhUZpTCFKoc5kINZrtRUHGX7IVInhYLmwMKGe1z8xILD9YIU9?= =?iso-8859-1?Q?H1GdGaTxwIzHrfNCbU6o08mKNVQxLGFwJ1/SZiAeLCwq514w+wxS10/TRy?= =?iso-8859-1?Q?V7Vj6UBL9XzAhLzSSZPHZOUJV28qpT/y9nDRNd96t4o9ok8RyJAk4vs415?= =?iso-8859-1?Q?n/Vchnw5ZgDars3nby5duuHDjHLf5ETHYO46hPhojrjUXRLo+Bn1KQrCTP?= =?iso-8859-1?Q?eKZXfbIlE4T6+rC5pg5DsrQOcz1V49/0DPLtIC6zT8DPb+Z9iG3NeidGKs?= =?iso-8859-1?Q?4pwKVzv9ujYiFn6hAwx2oYvKpEeBdYCZkGvoNrGSQ5DRzPbeiWoMxbciNq?= =?iso-8859-1?Q?0nIYsssHDuAFDF/BBi0jByEW/7opbcd4MY+Wp4iui9ss9ofnqSYmRPbiGh?= =?iso-8859-1?Q?b0KwxIjmTDZIiulIrTVydLbLPMuf3RiufFt3Njophsx2p5Dcban+Rh3X9u?= =?iso-8859-1?Q?9aNvSTZCGCZeKdJkSoK7yiBPpVb+KyJ5pIRx3E7jqXcxeDR99pq1u5Zjp6?= =?iso-8859-1?Q?7JcSxWdE2KT8A7IWylQhV5cyGyljoYNxDAraTRdiREKdNAnwbo8/MUJBhX?= =?iso-8859-1?Q?VKwCOT85XuYnx6D/5DOG/XUsyehbbKnrGggzuWTIXV9IdeGdo09mgxBHOA?= =?iso-8859-1?Q?uBZNapXN5+a8CdgBFFk1dHHWdzi8GzxWB9YDKxVX89J1xZvsVzemIKsT7O?= =?iso-8859-1?Q?6eOwQXnmTWuFcDklzAfI7W+cSzXtJUNmdA2mRjZXTlfAGEDPA+mWubN9s7?= =?iso-8859-1?Q?KLZwMd30g9QkW39gYVgkpFoBYLKHqna6AlezZ+a0fqODcch6h/E0pk+kI3?= =?iso-8859-1?Q?mHF2pa3rxyXT8W3Ykvo62+hNoWsbVWlwgcdMsjvdgRAkFQjPPDR66yzA+n?= =?iso-8859-1?Q?ndTXAVZf50+2BUsTn+LBQMFegmLhqGidcvd4KdHYPSjS+Mpr3VsJeU2m8H?= =?iso-8859-1?Q?h4lnXxj2LkzqnFqFr1ovaeUtbMiJrtF6ACy+VFHKhgwr4iHac3Hi6ovIhe?= =?iso-8859-1?Q?VdoPhiYIHkEv62dndGzrEU7yQ728WABedYOX5gqI2o6MFJzve0Hnxpq7Qf?= =?iso-8859-1?Q?oImCnCUyKjy3OVq+m0Oou76KBy0mdIZhLYCAKD7fvGAkesC/rTh2ZdZp3X?= =?iso-8859-1?Q?tA64UKzRiFQ1ScyaUlbXghcciJW1F2igzYqm9PGfZwz5JHWnKQbYXa4AeG?= =?iso-8859-1?Q?seLU8Mk2L7z+EM53AM5Sw+iXu1BA/XuDAzSXHOn9z1yeVuTUydiPPCpDZy?= =?iso-8859-1?Q?yef1i8W9HFsvbSKR7cMcGuphRih1DnoAEeN9ouJwk1XJ1oE5nH+W9aGRNw?= =?iso-8859-1?Q?GdRm2deJLYUHlxXOkCI=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a31786c8-b663-4ba1-7bf1-08dd976e92ba X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:51.9795 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cWFifYKi7iPY8Gg2y5sxssqY2YtpVbwGFthXU5rwOOdmX43uGK3HD7dyodIkjFqp+NDWVMvb4cwS3ZJsqWYuY+LLWvBVMDRLGaWkl5nGHDZ7u07QtUWsY8sqES0ke5tr X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725627561116600 Content-Type: text/plain; charset="utf-8" pasid_enabled checks whether the capability is present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 9 +++++++++ include/hw/pci/pcie.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 4f935ff420..db9756d861 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1239,3 +1239,12 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset= , uint8_t pasid_width, =20 dev->exp.pasid_cap =3D offset; } + +bool pcie_pasid_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.pasid_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.pasid_cap + PCI_PASID_CTRL= ) & + PCI_PASID_CTRL_ENABLE) !=3D 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index fe82e0a915..dff98ff2c6 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -154,4 +154,6 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *ho= tplug_dev, =20 void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, bool exec_perm, bool priv_mod); + +bool pcie_pasid_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725640; cv=pass; d=zohomail.com; s=zohoarc; b=TRe6nVYEm0RaWpWukyP0sNE36yDKASPBPniFwplt5MMh5d1tFWup3mwE/ntsgvYJrphvGHBoPNcUbo9CQLr48LaMryufvPcd2oz9X3B4ybKLR8QRwQK6maHOjmO4hYtM8osfU/GMOuev+7X5DLh7Kp7+6q2G7RL2/QYOXyBaenE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725640; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Z/yj2Ghuil6B22yNfi7Lvun2Sw4Pd0QSaygLFPwBLGM=; b=Z8eHC6uFurhPVFQlsD0zQCtBBVenJNagOYZ9ssW7FFShEBhFaMcwadjJjaY3SkOY3KuSeFuBZFhqIYb/t9RLs/k0hO8T9443KPlDUvn+n0BzWC9vEgtwMDTuPtJ0jwQ1Sdvj8uBb54a96Fari2XIzTAP/o5RtTvnwsO2IBxHfXQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725640212825.8029301061633; Tue, 20 May 2025 00:20:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFf-00016Q-JY; Tue, 20 May 2025 03:19:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFd-00015m-To for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:01 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFb-00025k-TG for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:01 -0400 Received: from mail-vi1eur05on2044.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([40.107.21.44]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:18:56 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:52 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725540; x=1779261540; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=kfJFL92ja612s8S1MW1A5MAlOH9/9xQxGIQwpcJjr8w=; b=xQ8TkI+CI/hvP07bhAwtHvopn+I+H4s8YCB3g1RvBqAjLsTTEyWYUtEk Q6YiDT0qfZJbRDv3trqgyM5Cw9mfWrWsUGlFnNbiO8Ft685CwuEXLg6B8 Vv6iMEFf9EcolIH/TYWbwnexiMwLkIzh5NIb04+2KFi9fkQlKwobqmYJA IxrzlcYSotrwSRb3evw9M3Zw8TBnPaKNb5aY9cczV100h/EP3nRkZOVje ly4KdcfenQ352QQNfgrm9GMEOJmozluGSXmKluSLkCag0y+Z2p9s2y7or gVC8w8ebKHKia1hlUlc1gWjy1/KHTRExBcQWen6IAlJDOzIrvI+9dhJ4P w==; X-CSE-ConnectionGUID: 4QQK3FnlT7G0fffTvCCqpw== X-CSE-MsgGUID: PZWqDjOhSU6IwUJ3haDelA== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37197185" X-MGA-submission: =?us-ascii?q?MDHzk8vZ+VKbe+KWl+qYkFouT9QGrT45uuRUDD?= =?us-ascii?q?DjxFOkr0CxF+0jiPkloht85PlhvzLe31wpWOTMJbpFY1N4EIK6fcvEPe?= =?us-ascii?q?OeViBVt/P/c4kW4KmVh/EUi99bEYGz+r66yT17OkPzWwdSL2vxMmINVD?= =?us-ascii?q?WUKfNTIvN1/6Q+q/dkLHZeNA=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NKcJEaHTwoLhctiXAodxmCxBgtURD40bKKU3u6oku5r9+3bGzyDQASyXdllu7pOGdQQylWlIT2Qgn+Cs/mgVT0Gh633+t6K9R+OEF2ua7AwcC10Q567iFDDVZJZjTisc5wbZvxf4THjGiS+co7uxOD/zbv6aiLUUiv5V1xYkaQIYFLElw0qwRabbWOY/41Xs8gwdgrPFoBm/RI92I1F6idh/o3Y+4+FA8Jbt3NH/Hb+hAgVaQSD6zCbJ2AuZtx7SUY7FglTCKw2kFOyuQILo9E6oPbGsCoc2WJcoW4yUeOzv5xbaBapYLn+VnRdhYaWu+8fnyCOxOFfafdu3emF2PQ== 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=Z/yj2Ghuil6B22yNfi7Lvun2Sw4Pd0QSaygLFPwBLGM=; b=C+0isAuuQbeRN5pgsY3229RV2u+uSjAZWCBGw9/fP6YCWbB3dBeTV6CubQySYA6V53KQj14HztePeeogRriPwV0T9AUW3pKDfB2g68jlt48LAUa9QK6jowUKZTCAFEp+FgPmM9aaQFGLS8L8ajHT4gHhc1ccCHoZ+junjTE1e04FzZp+2+7VNGm+UiOVHV+s7m3ixObMCcj+exn+34rcKfLBGLlrYX2T1AhgY5CCBWsYzs1CeggBVLI3/yCnAglCUYnoA5dLxty31mtD03Numg7DHFIrzzYBdrSyDP2z9IFntrU1ZqYWJIcJDFBAtmzl1UPM3P5bj2C2YP6gBJMFAA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z/yj2Ghuil6B22yNfi7Lvun2Sw4Pd0QSaygLFPwBLGM=; b=JqqP83Wo+YXKh4es8Nyl1eqBvJB+mp9XsYrEo4NJGDs5J4+QkPqfaoGdKM8FMdV+qbWoPvNgH0aL0s43ynjZxKDj0U01HRlvMfoifidbkQBQ+waUiH+VWG3AHoLMqdhPp1y2sVGIPle2jTpUDFyYopvvgdooF7GsJAM1nZbNc3YRLPrIFF1WWCYk79AM11lqBFf231K+uga8mNopTAIft2LtAMq0yqroFVXd3MhD4D+txZfArFIT00/MVL69Dd3tTrnY2W9IbHqu2TgF96zl49DDb8z/eGEci+U4AaEx25bU+bCiuI1nPzbdZcgVbXqF8jEhPNeIDGCT79Lo9bwdow== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 03/11] pcie: Helper function to check if ATS is enabled Thread-Topic: [PATCH 03/11] pcie: Helper function to check if ATS is enabled Thread-Index: AQHbyVdwNT7CuEiFF0OmlUpCKCqsuw== Date: Tue, 20 May 2025 07:18:52 +0000 Message-ID: <20250520071823.764266-4-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: 82dff09e-d7fc-441e-7523-08dd976e9336 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?u+yAc9qo3TYx84GklPXL7Fatuke9fFvaPoQJ8FNqdw4m/cnHT2GXYjd+P5?= =?iso-8859-1?Q?J5lytHDbXJD8ilNcTNpjBSBIqVmGYHZ3mj16rTj0SyQTjFq24+NR1piNH1?= =?iso-8859-1?Q?62nsQ5tfehiPRKSSxr6p5AmaG2UYO50JjUDeOLYmA3wjKhe4GacbI/Jipl?= =?iso-8859-1?Q?C80qfLqcEx1OsG2suntIlrvzswKlO+XdOdV+0TkcBHeFSCtrFl0AoBmPE3?= =?iso-8859-1?Q?ULiiUv+mS/9USHu/YMaSfmXV4+tBpGli8u7IrADj9REvUui+WiozIqJtkd?= =?iso-8859-1?Q?4rNg/xLkcTLZAgXbSuKg0qxVub7UAYiATO4K9jBndKJ0tvTBcCYSsaYGDQ?= =?iso-8859-1?Q?Fm09kiDo/NqBkYCJodSe9T5wnpMqqHqpva5rX9UI+SRdF72djrLkd4DpcL?= =?iso-8859-1?Q?0NmWcP+ay1GJ6Y7nh2dcGoP2W3XXzdpXGJ85jvdmwZDod8NEgA79VXidbg?= =?iso-8859-1?Q?x2SPoFB00Gy3wybDIL/EGwGIdh3RVlqORhvwAY0Ah65GwaEmNBGkw5vvzP?= =?iso-8859-1?Q?Nq6QEr8D8K0udCavd9V94pEQqtdoUuDlpix5JSJYHyhb0tcjMnf9rXQ634?= =?iso-8859-1?Q?KL6Ut8R16PVHrgov3Ydp7Ct3+VLu5lLPz7ZC+4lpT5xIdJ4uQQxCqJhGpA?= =?iso-8859-1?Q?ZY5odhhPQ4lBq+Xs2nLrdAgO7tyNQKRg1YMGBIrYaPl08kbmYpozo6puOT?= =?iso-8859-1?Q?G7ZcNrdwZibZL+iPgs3mI4lVAKopIGIuWgFg9YiH89H3SzfgVPsLR8MqtT?= =?iso-8859-1?Q?ZPJeRkKy9ApuqjlFReav11DcOzYAmNhzSUaI8Cux3TX7lfR1hgTEVtWAiV?= =?iso-8859-1?Q?rL/r+nZLnpD4fOY3JN/W280Oe95m9/lJnAg4JVseJkt0PN8M86zbdhgnzL?= =?iso-8859-1?Q?S60RX02/vkmc+jMbsWGXG7ObbZ71rC4NeDwgkOlGL0f2pvlftkrZcMOsIO?= =?iso-8859-1?Q?Kyn6MrI2EmqEuTLFqKmBWk6tr7OnUVXdUKiJuuxQEvWAGX8tqVxAY1wgEs?= =?iso-8859-1?Q?J4oZ6/GRFjQ/qec7b5H8lQHeV+NsVmOXxS9twVMVIoQMlwZm1UrpaW7+eu?= =?iso-8859-1?Q?kHIxB22jVXni/RHQPqjqEaXqr8wcZb7Sx7wV7TqH3P6bW+uijWF5r3T0Ic?= =?iso-8859-1?Q?O1sEsPHaPSRBrWjN7sTLqMhM6I+urSILJgLPOn+UgJIGPUBPiAafTXIp3t?= =?iso-8859-1?Q?m9esj06209M446WbVp4R8OHlC0u625se11rrfuwexSVqV5Np1g45JAfEwI?= =?iso-8859-1?Q?rWPu9DU5iMBv4qVfhmGobk67fT0Z59Yl0pE4QTQEY7i7snEo5x1a1/l8Fq?= =?iso-8859-1?Q?WjWpqo+DeM+DxVpmHrSThTbtprNKU8L2DiKChd/VzoBvzvw60qXYtg29zT?= =?iso-8859-1?Q?AFdMSs7I5fulpxfB48HeyFpspPQDrrcLXxdO8vb2VXM21uJ3B2MpKTuYgV?= =?iso-8859-1?Q?jXxil68CGzfFOFS70HZXkFsGmkPFQWFUspv0e2XYli8hdOWBOYtfp394zR?= =?iso-8859-1?Q?BwAvnr+qukv7SDFiVRC0Bihy9IOxvd9P9NONMVnulKNwxfxdiCZvNmf9Y/?= =?iso-8859-1?Q?w+Sx2XY=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?4c8Fx5eV63skNn6l5qN/0ImGLCsHxpUCVu9vI9m1pPI4K85YjjDJJZmNvO?= =?iso-8859-1?Q?rdjnPOlRsTDBBRwI+cDAvZenQmbhusx6KlwqvODbpPoM0akAcQzDBR/7s5?= =?iso-8859-1?Q?shoCjkI5A4fiMdRAs/RyTSTdIXcc+WqMT7w0wVZfyXx26Z9VSRt5moReCr?= =?iso-8859-1?Q?9QkkKiixqmpqznYSQialEyHt9mPNHyQXmkcBxZdGC+GRJy3aUEWBioR+mB?= =?iso-8859-1?Q?1PJXcIGvFc8wNHf4fCU+q/lFKeqwmsMuDeDzmpR7tMXVUPENrhzJqz3bQH?= =?iso-8859-1?Q?fSGgkGUrDBVstWB5xTXVikudw25230oE781YjdMhcqhILcGCD1WB3kfjWL?= =?iso-8859-1?Q?mlROtMwOEi9Dtgprmy3jp89cwUi76HVOe1lbGsOBPFBF1lmJSxO6cKk17p?= =?iso-8859-1?Q?1wvvN3u2MeawlbGmSofnHTMSqvzgWJ6kBs8Kp9Okdl2PTDrLNEJ6x32XP4?= =?iso-8859-1?Q?ENDMEz2y8s7rlyXLZkOA6j88YoJAjppBAC2EF0xmoZoDYEwV152SOCR14d?= =?iso-8859-1?Q?/UpirdFZncFmEHaGam4hENO8YY98RGKh4zUHrzbIwqUgrECPfkD6tmQn/M?= =?iso-8859-1?Q?KHDq/wDKEfpkMKfvoijUVxfp0P/xMctH4IpmVv+qT6dBT+3hebLtsF2rVB?= =?iso-8859-1?Q?zYks3BKwC+m7+R06nRRxUrgx7D0J/tpBflNQ5uwxJ3BHZAnV5mcs8SyeGQ?= =?iso-8859-1?Q?HXPDl5QojIctCmyabsgo+afplYpHr5JtjNkNN3Fy9XzM8WgJCB2KJmzBIC?= =?iso-8859-1?Q?L6bThZ/2Jiwf9MwEZEEZmOC/aSFgsg/xbCLM8Lz2CQELDe4WBE8wa6E/cK?= =?iso-8859-1?Q?Nr5SvgMhUVry1nFPLdLxt39oVb+AohjXlv6lr3wp08zycvd4BRn/L71L2x?= =?iso-8859-1?Q?ye4YOOzNSa5PNuk+EGw3w5z5qUt3cr1r5JxVC6lh2rOtxhyimHbtGiDMwv?= =?iso-8859-1?Q?XyZL/PivhuJ+W2aNf/HK2NzlRjn4HMs3uYvrlACvCyXEv0rYFU0FhO3csk?= =?iso-8859-1?Q?xzvcLQnnhWM3xAEi141W91jDzE0tlitQuABbSsN56TQiEDgeuXZ3zQMt6W?= =?iso-8859-1?Q?TE7fqa5c8+9Ec8+PyjRIVe4UfKrYJmETk9ZoqkF7+NmD9E25TPQdKfl/I+?= =?iso-8859-1?Q?HqmU5uMF7QuqvDuWHUQrFrrjFsVJr6Qq81Wl5vn9zIsJXXe6hL2tiWmrf4?= =?iso-8859-1?Q?Ysv3ZDsXcVDN5G00cNykDc8wO6yEj4IECoGQ5FXcvk8nSdoknQ7DxXxE3W?= =?iso-8859-1?Q?YjISt2jq3/FbSXxeNKco6o5wAy2j9R9Wyr/mXWtWl9S+bENm4IdwS7GM3R?= =?iso-8859-1?Q?VEwt2uf/eYefXY7WN70OhVeH/wOCHF9yMy1WucNzUTZ8g99auWjF4OJDyH?= =?iso-8859-1?Q?Cide4rJLm7TQ8cIpYps6j8myQmrWFgzF1avHZo8PvpSK9D7yWtUNvNKEMr?= =?iso-8859-1?Q?A9O/9eI6DSWD+0/B84bDRZp+IYwnFpPxavikmfFpdBG5DJPupS+1+/KEP/?= =?iso-8859-1?Q?XJkqandreCBrkDR81L+/w3AJHRQjXqXPj8mv6QJOrfkv/TlUk86zewEZ6d?= =?iso-8859-1?Q?5UF0maQVJd2yC+Fo83p8TXdGTbc+k5cmsV3ciMuONKtbcgxAILcjlDJMBL?= =?iso-8859-1?Q?Z7wSZ443N4KA5pEukW8ZA9Nnvz9gh6HaRcs/FSTBI/iM7/FLExB1QCChAX?= =?iso-8859-1?Q?QHpoykkCURVNq0jcRf4=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82dff09e-d7fc-441e-7523-08dd976e9336 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:52.8298 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vY6afMKUyVmB+IN9mKDE+uLeJ4T7CBzA3yWtRKTYOAc8s1QFuPL7FHNhzbjcKfGjvlVbEQy2J4KB7XqlzW0tBmaGicqYCzKaaNRQgs2I06XEehA8+yHzuF+bPv5q28D3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725641686116600 Content-Type: text/plain; charset="utf-8" ats_enabled checks whether the capability is present or not. If so, we read the configuration space to get the status of the feature (enabled or not). Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 9 +++++++++ include/hw/pci/pcie.h | 1 + 2 files changed, 10 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index db9756d861..36de709801 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1248,3 +1248,12 @@ bool pcie_pasid_enabled(const PCIDevice *dev) return (pci_get_word(dev->config + dev->exp.pasid_cap + PCI_PASID_CTRL= ) & PCI_PASID_CTRL_ENABLE) !=3D 0; } + +bool pcie_ats_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.ats_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.ats_cap + PCI_ATS_CTRL) & + PCI_ATS_CTRL_ENABLE) !=3D 0; +} diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index dff98ff2c6..497d0bc2d2 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -156,4 +156,5 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, u= int8_t pasid_width, bool exec_perm, bool priv_mod); =20 bool pcie_pasid_enabled(const PCIDevice *dev); +bool pcie_ats_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725600; cv=pass; d=zohomail.com; s=zohoarc; b=lHyH5PKIyDaVGl/RO9N4GVb8ItPnjgcNHePM24+Agri7jH6mgLhbaWWe+VrRulQONhpjlPq555H0+cz93WpzdLwlHNCZd3HuUgZC3+iTTeUPZfYFmul6Dz+F6U9YQXvjuSZDWe+FB72nW+L//Zo1EFshCLEpjvoyFeHdSP369yg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725600; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=IDSKog/xlt1cnwqHaCfwX4JxYICgVUwy1huzv/FYz7s=; b=lOVjXLknvZKhmTtbuLlwI6WDjc3Khfvh6vG9uXjrjpin7cVxTspV9iYz6N+VxECuEJMvaPVmzMBZo5JmMabznJQqnJYzK3HL85eOGC8pCntcrHhUNDd6wIb/i2uHjbZC+zHONT1cs7+knY19u6c+7UeHwCkQ4tqYZYaUfbwBVC8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725600489960.9279114153856; Tue, 20 May 2025 00:20:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFh-00016u-6z; Tue, 20 May 2025 03:19:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFf-00016I-Ba for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:03 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFc-00026T-La for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:02 -0400 Received: from mail-vi1eur05on2044.outbound.protection.outlook.com (HELO EUR05-VI1-obe.outbound.protection.outlook.com) ([40.107.21.44]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:18:56 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:54 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725540; x=1779261540; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=5nDJVyaCW96jZKuDHE7F9IwKCF7Y2hfu7phC4MsvWPM=; b=tFs2CDYmDxmi3+suistIyJNNjaN/lO7tRaNNVY84A4iB8Drxa953Btnr udh4k6ms6fP3WSQgwldyHDVRMMgKhI/21PTMV/vtbKXZdqakjSsjwLtIB xcXdx+/5/CFzW3EGRenSCEOC+2eZN0G1ctIo2ZxOiRtD8qjTXZHShrmiU 6huW53tS16lrrpBoQpCJLe0XPA6Hbu3S9ZQ0dHwvSjY32CuDk2H8fm9LR WeT7RpSGx1pQyHrFuP/E7zg59quNjpNfq7NwDRer6TzDCe9HMebu1iIer HHw1ozIqDdv3ZbcyBm/6VcFXE1/SP0vPuJXA7uJ2DpVnSnFfsnRi31p8n g==; X-CSE-ConnectionGUID: gVSkK987R2e+0yM/OiwTbw== X-CSE-MsgGUID: t1w39jPATfGdi/xrvfrcMQ== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37197188" X-MGA-submission: =?us-ascii?q?MDG06x9kqChY6UVtZBg7E+1oIYGCCd/DbkBBbI?= =?us-ascii?q?0+dv/+ZwHIPhgPX9q8CKZ00+JSHfQuLmOhqVEY9/xiASZCiNF6Mngk/O?= =?us-ascii?q?O/ebbaTPXK9eRlT4c904HK56+o7JnjmIaKoMtikrb68C1TpugPcH3D7O?= =?us-ascii?q?Mx/mFHsInlPV4Tbaj+db+1jQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gKiklCk6C4vs4Hkm3q43SQw1gmo4WxrFeLhA8tHSUhS70gRRGec+mf2rPxb13UpuSFC6A61QKeGpKabVpYpvjBrpHyzDZnTZwudZT+AG5+7f393onhSrpfRVK6d7Lwcgk11eAAuNNz1PjoFP0NlfaRc2C0swipiOk6LtkHvflZMKnHY5F038ZI17CbsmEmq63GMwc+ldJx53TwfC6FolTuIoHUFLltbONNpcsgEQmUuUE7SiVuGoyBa7JEB58wFa41e0sDYJdP2oEnhVlYTpKhkux4LIQxQkqsKB+df8BIiSE4pQzKl7IsejTcMo4dRJ2HffVc4GytlpIplM7c/G+g== 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=IDSKog/xlt1cnwqHaCfwX4JxYICgVUwy1huzv/FYz7s=; b=ZzIy+ZxQkQgf9qaYVzmyu4+zTmOLJvdJB9/iUgUSKQkkNCFBeZqzmNsi0WCGCzyi4Y1OdcASLO05rFeHuc7jayK9Ka4wkeQ4IGhcsfkX33IpZU277Jxt5y4ZTg2jFharMUWa0V1/Vdcli5lXncjIJ4wk4/K2ukLIIxWTfub8uAOVx0hEYEHotsiYfIdvqjiKCgk9hv0b7ShA8QMoO7k8mQwH5DCzX7BtTdlRKWGEt3VK0tat34tAu9jQKn2Et3eMKDnTsLV/ZgFroi4myfomTwSECbXfmpLcE48ZsNdtaOh2Cwmoc+Mo/6GsaP54r/sxMy9o1eqnEoXGVL7wWzbzKg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IDSKog/xlt1cnwqHaCfwX4JxYICgVUwy1huzv/FYz7s=; b=GG+284RHDkp7KbIhsgk4XOXTM7H6JZrIWKz3blDHxqzHWI12iCDpnQVeyfrcZrId3kSgkh8KrmbuKrxae0bk3GHJC2g50c4P4kvkz8PdvrCATKqOFkF0Mzc04xOgm6gdBgKBsX/seCZ6/EjsQrOqaFFOufCxX+6PIRVgVtEj4MyipLbIlNXvA4N2xAffoApKtfJcMeHcBS6khy9jfYLGjtg7d3X/qZ0YxRKpbl99IVsakrSIb+p5ve9VymXVh3VLnMXQuvv01obmbygMAX9FErg6qJy/DaG2LoFupuaqyHXWKER6nN1waRe2hL9ufPN67wj3ob/3gvSfITnLePZgVQ== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 04/11] pcie: Add a helper to declare the PRI capability for a pcie device Thread-Topic: [PATCH 04/11] pcie: Add a helper to declare the PRI capability for a pcie device Thread-Index: AQHbyVdxb3c7TpGNFEuuPH7UPO+EWg== Date: Tue, 20 May 2025 07:18:54 +0000 Message-ID: <20250520071823.764266-5-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: 76061e50-fe50-427b-bffb-08dd976e9448 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?aQTpIubgEzsJDjYpYVirHuPLYJwoju+Ln/ADDxdlCpAKqXkladSZYAthpB?= =?iso-8859-1?Q?SiA1OZgjSyJIR2RrXlehWj2GaGh0UbrROEHyOgNfStJS3V+DVXAB4f1osj?= =?iso-8859-1?Q?w1T12JaeiVrF/1QCMD8HYGVP1ZVBidU/7m/FQT2Gdc3DqSmVJvQtxhzm5m?= =?iso-8859-1?Q?IEFsi1EiMYRZAoVmmRy1K2fiLnRDfkkMSd4I74ozqfX+cjeojgRxHySYTu?= =?iso-8859-1?Q?y3D88Vfz5vMGbp9TRJh0/bfTxetuvnmHqrUbWduSKaao4W8zno0xLS8KHW?= =?iso-8859-1?Q?nSCv16RVX0tUcNnTfGX4Y6VtDVAi2lcMU5Kj+uSgm2U0V4bugGba8M9FTb?= =?iso-8859-1?Q?ffd2eQXjWrj4gVOgwSX+Mw+bpkdcMFwTSvNB7Sdidw5ghc7wvM945vxKil?= =?iso-8859-1?Q?Lz1rnb8tB1bYvRp55TorHlcnOLM/XT0GqYttdAGrPbnH4o/IcY0/rsFPpx?= =?iso-8859-1?Q?PplpvcH39gio/5gHUCDzAz0e/ok35RAn+2au8NqqSzXondnTGWYswi7nYc?= =?iso-8859-1?Q?lGPUpnCiuGbioB59dVrjAI38YLDhNFj2OYAmgQAKNCXVPpFtWGrvYAvG5n?= =?iso-8859-1?Q?rTl+hUxQ5gI3cgkI6zvGwoMZwdusnLd9fSbdi/qbMC9y5qPqc7q51Jmm0g?= =?iso-8859-1?Q?9XiA3d12Zg0qFuT6GbgZA+/nqQdoed63wA6Y5HgE9G/VOKvZ3DpPIWSVN0?= =?iso-8859-1?Q?9USv1D7igXshTMJOoHR7JS3eLIViCJ/Ou9i0bzPIWTw2lkoGzEnTzliiUl?= =?iso-8859-1?Q?aC1jCT1W/ujsAQgpC6SsnKzzOiqT8oXnBLToO+ZQql71OqVAvr3Mq/ZlCH?= =?iso-8859-1?Q?OoqXVsifJQIAE5DMQ5jT9o17HOY83qlhWNGevkdyRGCKe6BSV+RZjd7fY7?= =?iso-8859-1?Q?waYmm6KXvU2szZvUkQVnp1CWNXqk92vYmmF/zOiWonlWylk3y1ZJ+wmeMu?= =?iso-8859-1?Q?rhhGoLSG2AZPiIaY/RAGhnkojHqU+KpwQrJ5qu22CPgLtgNdLvxHyzsi2o?= =?iso-8859-1?Q?GbriSUyyrQh4vUrdu8fF87kn9OzKPTvtLBxXeyocR1Mn4Cse+xzEF2GNqG?= =?iso-8859-1?Q?uqGxn/K5roPcwTrgGCXaw4WuJlDb8+8fAcg9kBzcoOg2bbxoxwQbalR0KN?= =?iso-8859-1?Q?vujOpTPV4o54vXcs2ksCp6YhPq3yZN/cBrz1R4BNtIeGlpGTXrukC4jeRO?= =?iso-8859-1?Q?/piogGU7pGg/u4R1DAFWzGlnakT5WZQTJDY/egXQ5t4+9lbMoFbsV98k8O?= =?iso-8859-1?Q?q9+CJYi6kT/CU+xN3CnuCsvW+Skk61q+iE7lvbj22j5FXp+n8ndxiLlLcD?= =?iso-8859-1?Q?Ps1/T1p+NBH3E0QHUKLJ3SOam47ugbKo1YRM+EX4/tlodb4KHUDlisUVPx?= =?iso-8859-1?Q?AJUNkpFxmddggfsg/XSXZkO+NPC6Nv8677kiFd0GKk7o4B+bZJV5rfhgkF?= =?iso-8859-1?Q?bfzQ7xkCnel5s53KZO3S0bpAMZpsgSAHNLFWqKQq3k1CLH2tl8vxUmSDTn?= =?iso-8859-1?Q?pM4BF0vD4aVOi+o0OdU7UR8J8UxPvElrSCyllmM3borJls4BQ+TRJyZR/f?= =?iso-8859-1?Q?YjhRRgI=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?TqVx/WJoc3xdXyLUKcjgzHXmSZu5ChzfVqd0V8Ii8SPRUtQKzJsmMBOPll?= =?iso-8859-1?Q?KOotgwx7zd8ft4o65ml3swI1Pl8dD7QcyLXu60OPoVo5j9kLtyh9+yJOla?= =?iso-8859-1?Q?ezRwQqrvCxSswPQIuMVEySaDRmxplYIIooeqt+ahCmssu/C4RqseH/eIof?= =?iso-8859-1?Q?UwVhfZ+LPXA12fSVI15MUDfJQ1soLS2zdKtA+A8+SPSMvHGRLgPItMcEKE?= =?iso-8859-1?Q?mLnl9sedzAyxkfG3k6WCjDjJBE+FDwUz/5Xh6Pc2n1IJ6bkk3Sba8M23PF?= =?iso-8859-1?Q?elbOawuh3rjtiYuv+VfEcJ/fRMUcLg63mbnKBnuPvuzVD4YD86YIKnJh7l?= =?iso-8859-1?Q?m1vdvvEgIJUA4AZWWbcrD1FNWjzWDR+5OAdGY1uvaNyhd9EC69PrwZCVb1?= =?iso-8859-1?Q?ZlDogOuigb+tHKRpSC7bAiCSpS0D1JIyPXj4pXCCz/zBqUIXirTWAVnNFg?= =?iso-8859-1?Q?cPP2ycG7sSPMDgBklL3rkzf6xo+4q9kB+ShyMCD0eea/Xk8ymqpJETLI7t?= =?iso-8859-1?Q?kMUhDnjPae5Mb2Ly+p/4JibWcd6spHQS5ylgd7Q2xKgBF3WV5yFi3hQ0Mc?= =?iso-8859-1?Q?XA1PrFUqLdmnmq98JDv3sUHOTx/CfhDKmNAYJ1UQ+EF22H7f9/13SPqMCi?= =?iso-8859-1?Q?68fNAzMbc0o3rJQ4b/uFL62NkM+Z9diTpdw/07RBLYKuqRoKUXVXuIZSEC?= =?iso-8859-1?Q?iU+NgzevAWioxxBh8KUP8BqXIxHbFC8Q5uJQR1WeL+QjYJZHYZkxWzauXL?= =?iso-8859-1?Q?Q86qP9VkdQ2N327MEpWhUjLeZRy+19r1CoJml6/LBDVnm+0OrI740v3KGI?= =?iso-8859-1?Q?3EIplJimkO8Lk1yBzxcUy6s+w263EAmFR6gdOstLfJoLPe1fx0RCZ9n1z0?= =?iso-8859-1?Q?21hIdgOcfARXOgJJCwiabBRss1Skmb7jP+nVi8+OrHTJLslhxaBgcChtEK?= =?iso-8859-1?Q?nPabIZH11dBkIpBBB+2ioVRkBIjBIkFoy1JCcD+oboY3JWX7kgiXOjNGjc?= =?iso-8859-1?Q?GmbOzyhiUnj5TMiJUNQn5JsTkuXst9U+mVQJsvV1/1oaGYKgtlskzkvdzT?= =?iso-8859-1?Q?qeBVE2sz+2xXUS5EVgBMjta+UyCKMNFnskiE+EpJTeiB+2Zi+sp0TJCJfk?= =?iso-8859-1?Q?n+4kL7hqYYKpgbtE1Iyg5WTJJo+bL3TbpXH53j6/FJFdLml/1V4bi6GZDz?= =?iso-8859-1?Q?E42i5zMFE8Clk8rhHG6kWY2dFsPDTReDDrQHZ20rs3jbxMPgItlUEJHofN?= =?iso-8859-1?Q?4fpgFi+NaLutOkvBxLU+WeBQtD0et20UxSUHd6p+iZKGunmPDc0CFx4Lbi?= =?iso-8859-1?Q?+iK/lqqQ138EXPVOJa2fqqOq18wA5VeSYjDxeQQk4RzkRVfrgHD3LgQWKQ?= =?iso-8859-1?Q?BQHSL6u0VfKzOLV468uIIel9QmJYticBDkupdRiOewWdRlqLJez8Bn2Qhm?= =?iso-8859-1?Q?ous3rlT3aNN+W5RK4Yct9doKaSC7D0TF3VO/zXNwpFF6au/k7FGpcdyVjZ?= =?iso-8859-1?Q?GSyiwW5+g8UL61exRBHhc2GEff8BVdSeoWVRoHnHEvlAzzNgwuaxbubzm4?= =?iso-8859-1?Q?ESHxLsUO5NBH0qEZst3kAFmg6mEF+wb/8kom/KBcL4+nK5R9S82XK2A5RV?= =?iso-8859-1?Q?aWnbTapiHunLlozXAovRVNHj7BpquMEW04rEMUcfABQ/morzLjMT5FtyL/?= =?iso-8859-1?Q?653mvOKTuHM0ynJFhBE=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76061e50-fe50-427b-bffb-08dd976e9448 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:54.4769 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 0ar9Lw+CMCYNYUN2IY4qb09L+Wkq7sqWZQjZ0kmS3SPosRVoZ1QDGBpWAfpXx4aJYdMFYIMSW7yN/FlmVaSXJYRr/FEEjCIV8U52yYWiiMCZGw0r6UIhGGuDaQi+LoRT X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725601752116600 Content-Type: text/plain; charset="utf-8" Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 26 ++++++++++++++++++++++++++ include/hw/pci/pcie.h | 5 ++++- include/hw/pci/pcie_regs.h | 3 +++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 36de709801..542172b3fa 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1240,6 +1240,32 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset= , uint8_t pasid_width, dev->exp.pasid_cap =3D offset; } =20 +/* PRI */ +void pcie_pri_init(PCIDevice *dev, uint16_t offset, uint32_t outstanding_p= r_cap, + bool prg_response_pasid_req) +{ + static const uint16_t control_reg_rw_mask =3D 0x3; + static const uint16_t status_reg_rw1_mask =3D 0x3; + static const uint32_t pr_alloc_reg_rw_mask =3D 0xffffffff; + uint16_t status_reg; + + status_reg =3D prg_response_pasid_req ? PCI_PRI_STATUS_PASID : 0; + status_reg |=3D PCI_PRI_STATUS_STOPPED; /* Stopped by default */ + + pcie_add_capability(dev, PCI_EXT_CAP_ID_PRI, PCI_PRI_VER, offset, + PCI_EXT_CAP_PRI_SIZEOF); + /* Disabled by default */ + + pci_set_word(dev->config + offset + PCI_PRI_STATUS, status_reg); + pci_set_long(dev->config + offset + PCI_PRI_MAX_REQ, outstanding_pr_ca= p); + + pci_set_word(dev->wmask + offset + PCI_PRI_CTRL, control_reg_rw_mask); + pci_set_word(dev->w1cmask + offset + PCI_PRI_STATUS, status_reg_rw1_ma= sk); + pci_set_long(dev->wmask + offset + PCI_PRI_ALLOC_REQ, pr_alloc_reg_rw_= mask); + + dev->exp.pri_cap =3D offset; +} + bool pcie_pasid_enabled(const PCIDevice *dev) { if (!pci_is_express(dev) || !dev->exp.pasid_cap) { diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 497d0bc2d2..17f06cd5d6 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -70,9 +70,10 @@ struct PCIExpressDevice { uint16_t aer_cap; PCIEAERLog aer_log; =20 - /* Offset of ATS and PASID capabilities in config space */ + /* Offset of ATS, PRI and PASID capabilities in config space */ uint16_t ats_cap; uint16_t pasid_cap; + uint16_t pri_cap; =20 /* ACS */ uint16_t acs_cap; @@ -154,6 +155,8 @@ void pcie_cap_slot_unplug_request_cb(HotplugHandler *ho= tplug_dev, =20 void pcie_pasid_init(PCIDevice *dev, uint16_t offset, uint8_t pasid_width, bool exec_perm, bool priv_mod); +void pcie_pri_init(PCIDevice *dev, uint16_t offset, uint32_t outstanding_p= r_cap, + bool prg_response_pasid_req); =20 bool pcie_pasid_enabled(const PCIDevice *dev); bool pcie_ats_enabled(const PCIDevice *dev); diff --git a/include/hw/pci/pcie_regs.h b/include/hw/pci/pcie_regs.h index 4d9cf4a29c..33a22229fe 100644 --- a/include/hw/pci/pcie_regs.h +++ b/include/hw/pci/pcie_regs.h @@ -91,6 +91,9 @@ typedef enum PCIExpLinkWidth { #define PCI_EXT_CAP_PASID_MAX_WIDTH 20 #define PCI_PASID_CAP_WIDTH_SHIFT 8 =20 +/* PRI */ +#define PCI_PRI_VER 1 + /* AER */ #define PCI_ERR_VER 2 #define PCI_ERR_SIZEOF 0x48 --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725642; cv=pass; d=zohomail.com; s=zohoarc; b=WPgQw0XgwMS8zWthEoMwmAb+tK2IxNG8nV3xj3SmJ1R4g7u+BDvGWA8NUNWw6tsf1QDJ8aTkZXGHY3exHefOVYrUnVGzYq2w0MqyMRfwlxeUFDUwjezH5RKosWlvgQa+0184Wx0htbZC/ip8kc4V08qoGy/MxKbFje0/O/lrqKs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725642; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YDCYHwdkWUdDoESw4n4SITtONSjN1nj73RlpMXRY+b4=; b=Hi1zmF0xJgCVbGmABpKhxortr/fOJz+3XirLSXhhUw84Zw1GI1bZMAbztCDwS1OVBpg3lCp8zcdoN4+loY3xmxhtIbIkU0i3KpNfgv34cqzhqG1SQaQ54r9DXqd6SiPWvEMLKUUvstnk1wOLku0LHhQR7qeNMJrtFQkuJpXbSu8= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725642101121.84913800838626; Tue, 20 May 2025 00:20:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFh-00017C-L6; Tue, 20 May 2025 03:19:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFf-00016H-BR for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:03 -0400 Received: from smarthost2.eviden.com ([80.78.11.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFc-00025z-ME for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:02 -0400 Received: from mail-am6eur05on2086.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.86]) by smarthost2.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:18:59 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:57 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725540; x=1779261540; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=atha23AoxYQ83V54XBJZXJ8hMTWneWI/sfIVSgoqwnc=; b=Gd61vzQ2iQejv1hYGEwLOEviydfJWSmvuJCtzXQnPOF5mN6UDFakGw2r XAmzjkNoIZ5AvwxAs6v7yxkRsmCROp/vs3QRJK+gwLoyN9VCNt+w9b1Q4 Ad8YXmI6l/WaolxAcFyir8VXU+A8neQMoNyOOLrejBp1V0mhHhzNZq6sG sPUJ6R4HFIpUQmvHbmFfHHkvGXZicKy9TZWnk30sTO846u4HXJuWbhVvd Z/8fcRWD4Oy+bNjL60pq8pP8EtH9JIzwgxZwkGFgceJ3fjqF63s8nJJ3g iT1YTnyNBeNl2QKV+StZ0sQlXswLlakcw9pzGE7Fdf0/V3MmpRYNLVnBf A==; X-CSE-ConnectionGUID: IfKHoLSjRPCnHuwYBHI16A== X-CSE-MsgGUID: RBWFoJJKSK2G0ucLincg1Q== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37197191" X-MGA-submission: =?us-ascii?q?MDHqhsSyHvEQWdE8wsl93yowGseZ+tqXaA22PV?= =?us-ascii?q?/3rTzazHldqTcg/7IpLKVFxlTHR0Xkj283uTFN8DB4YxTRLPsV4tKo6M?= =?us-ascii?q?vs+rA3Xw3wnfsoBluvNSZ6WEc6U2HUIbR8yaKMObNLAr+pbew3mZhktH?= =?us-ascii?q?7Hx5xvbYYQ39FODOQ52uaJkQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YIOeOz/WczUF1yalB3bf6pEj0k57eC19vskgWIJXLUpvdJX3oWENcKZ/WwJjgjMimmQKt0q09lNm2cJkmkQGWe3FIz3WYaAD+nQ/N3nmXZ5cyYi85YoPK4dUMgaMMMAcFv3dysXoVAxPfw6ZVP624jOCxyx2Rw1RWeIFJS+8PDHIjiSMJiiCVnNhfCpSpW7/mBB0S+5A7dALXeYCqCJ/Em3VBF/dKy10Nqv3JtNnUZSVCZ98H+AeR3aRJmEHEiK0jIly5ieLuFWHWrnE8Z/XNgc/g8H8TcE3PKqRi9tdLEL46tZOJtnk2d0SAIDySRgMZqEdjy+DeZkF8Bt5n8r5og== 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=YDCYHwdkWUdDoESw4n4SITtONSjN1nj73RlpMXRY+b4=; b=vtfyhZAVN11/YfVpHD7TzVRf2XUUzt7CRqeI5U5hRl6z+H52IxzIxRwZq8FFHAoC9Ec8Jk+zuqP6seCh8FpyJxDoAQsu3+dKZsLSkm/Nhnq4iyQtPqaizVDrJKgol2R2fmh5k4L5bZmnPqbCnBPvBN2bP9qcbrT1ppQeah38YvXt/4+08WfJHAsg/HBumCUtdY+1azIpw9wFuNEUZXpvbtzKH++e2/9OPGRtJ4cBUyar4KfM0/caE2YKAP+IF23tLCKqckBfOF0ZNmhnZFyAQS+9fesDUOBzeQeDN5gXxEM351SWQg378DS6Q8nuahcq95zNG1nk9NeRvzIM04qttg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YDCYHwdkWUdDoESw4n4SITtONSjN1nj73RlpMXRY+b4=; b=a8DTYUPB+h/19pBelASfLdFF+h7U8FmIrFXf1hmJl9faDVkYhu1GCqb7TJAMe3II/VdWlycfRwCsuVEyC2D+GFhveSlAowIz8xNZjTGGC2BimIcg8APxxNBOOIrW2rEfNfsi+y04Ag4txgOpL6WW3zPRR8cyS11Q190dvZcY3GNcfD6LxpcTwxnVa97W9usgWdF1FEsjfkGMhgqHJr6AxAqpsX9Rh4NJDkOdAk4+sUixFI8g5fj9QPYOKRnZYuHhSrdW1zUrmMP8uW9MezN06yeJCti9dQENqum5q2ij/mIMseHLTjtQsoxYT1ABFKZxIILOFYsyoL3vfttpDuqpTA== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 05/11] pcie: Helper functions to check to check if PRI is enabled Thread-Topic: [PATCH 05/11] pcie: Helper functions to check to check if PRI is enabled Thread-Index: AQHbyVdzkprVx0ysDU6OsxuY2ra/vA== Date: Tue, 20 May 2025 07:18:57 +0000 Message-ID: <20250520071823.764266-6-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: 65ac28d5-b825-4872-d254-08dd976e9601 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?HIqjmr1xU9fY/G8Zd1RI27F6uBVaytnOwBYRX9+MPTZFOJBjTR7vqrn6KP?= =?iso-8859-1?Q?EKV+YhSr7Nn9MWcU6WdAPbrIDRUv/vE/YMxPS2kHlELKoiL0q5+C/ye3Vw?= =?iso-8859-1?Q?g9FF1g1VchbI2xT38hD3YRqxVGil0LxfylrbjmOjC7vFvTXIqVhBdCvLTq?= =?iso-8859-1?Q?/Fbxh09h3+7a4mpj+aEBdYEYbqyZ4hfZXlWtShU7euSBhGHThMdwt9GF/k?= =?iso-8859-1?Q?ofemcL/AtZ+9KSMS3tzn4DuXaqNTQ5ryhqhl1MsTX2s+4PjwWZ2TJk1cJT?= =?iso-8859-1?Q?oP1tBVWUQwatU7iJgAeHaAtDqmrgPkCdIAOJoynh7tNwomZ+MgNfucVqti?= =?iso-8859-1?Q?NU8wSWEivaIWLyZaNs+fuUStrZJielGuW98Tjv6Oz4326v6Nc3MMt4FA+E?= =?iso-8859-1?Q?64RM4aI5bXcCoWAj48+3C7ntjL16831b0fYTFAbmk0xVfSxx57b4/O9xkZ?= =?iso-8859-1?Q?zj59IWWGVA6AWjqb5NLMpFTqfqLy7O2kyNRG2kOGaekf9n0T/0yelke+v/?= =?iso-8859-1?Q?amDCQ+XZffpMEwGt5ofkiFkH8Z12w/5xbPUQDldvWtplKkfdWabst1JCFd?= =?iso-8859-1?Q?thHwxOGFHdB8AsJvxevXkH9X7KDZTsQgcPOj+K0WLbh6kXx1ZWElFaw5Ml?= =?iso-8859-1?Q?4GxqRM6+3oLbucqepr7V27ClWNrnnwAp0BsxtplrGMecT0rtFak6UwyqXs?= =?iso-8859-1?Q?gVAL4wEPBZLSQ8gZWsbM/wADe1WJqwxamxtby+RNv1n5eizRvXotZufEpQ?= =?iso-8859-1?Q?BYJXoHDHML9UdCJVKmZG8+VQo3Abse/PaFYYqTe9zZ/pan7o/usKIvb/DN?= =?iso-8859-1?Q?azAowZFJZ6RScmgyy8AGFVbVsE4Gg799Pzp1vSXGkCGNnKfUjy6WaDMn8g?= =?iso-8859-1?Q?VKDkZ3t0tAHysNn4OgK+jZmlTEkiLYCv5hxKp9IKh5Z56yyE6aYP5pPHNl?= =?iso-8859-1?Q?eoERUgQb4/p2q0haDBZBUuvEFfN2lhFP24r8KCQH1AphQFCMlwlgTVVAm0?= =?iso-8859-1?Q?Iv1WV+7KQiPjCuzciqkugz2ip5JQw3r1uH2QaRiMA/AsQV84ldDM9u1bcf?= =?iso-8859-1?Q?xh4nRknP/D+Yqrsb+OZOo4y8m+hTm9wf/EFJLVc+zFX24EXJLI69iSCaHz?= =?iso-8859-1?Q?tLyowN/eYgyKtDggZcRoLM4mdbK3EWNilRk8GFRIyy0bLgskhVFBMwYs25?= =?iso-8859-1?Q?yudGEcTRbWTTBzyID8Sv4FwF8gS99PisXV5tM7wwNKw8vu8hP7HjBW5qJQ?= =?iso-8859-1?Q?XuAEHX4X3aY0QYRF3F5ZOY77wWUq/i4a2d8YGSZMU4t3wxBaX2lIvhalja?= =?iso-8859-1?Q?b7MpCRGMr7j3k83DmjaVETPeAVHoQ/jVc2mnWKElrp1CICxFkgLO6EMLdi?= =?iso-8859-1?Q?ZwXD0akwh2Icb+mISG9IuDyBSkgkfC71wG5lleY7GGsoYJ2EdB8KX1F0iF?= =?iso-8859-1?Q?h+UZusf9xeX9MtKC9GPyZ6NKJU5kaVMuMG3xIaYbN1UIzDuE+eO9onaWoz?= =?iso-8859-1?Q?qEfA0ItCePaagLWiugoUJXdH3Kuig2X60WBtlEAjJsZnNbSda/K09n/Sjm?= =?iso-8859-1?Q?09b6fJ4=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?FMVpuDgwunKHVBsomukiCVWmiYjyQI1QcglbMac+pXpoQaS3YULy9zR94/?= =?iso-8859-1?Q?+kh2WxjiLZ5AZOvLurJxgNV5ZPi1AcZPH5o30HR1s2NGVK2h7+59aP2sOz?= =?iso-8859-1?Q?ZCecO6RTrVIhCtTFhRAvyGnIiZWCEfEBdbZM5+uJ4sIA01bRIqFQHZwBe7?= =?iso-8859-1?Q?8zgpY4KX312iQH+8HvcYxxHD8G3Tmvq6SQg4dxs7XXIM3oiXl6Vg7lFNSb?= =?iso-8859-1?Q?l0k/jjSjWrKKJxnHxo9KNkIi2Z6SApvPC7Cb6nWxEQnncIiqF3VDb8IbN9?= =?iso-8859-1?Q?AT/C/cdUpiPbVvOFwDKvbBl26HB5fu3uhu9GOvVG8yaI4U8ficlUWEc+TW?= =?iso-8859-1?Q?lAcNk9ilb2hYuc0zCgZZQLt/6snnyLiQVEJCvk/Y6z9QaMyQ649gtAy/MO?= =?iso-8859-1?Q?XaZkiu5OaAkir6kmS86QsuXEj7+AjgQHpBR4nvnsdvGsMEmK8bo8FJeTSg?= =?iso-8859-1?Q?ohS5oyktzXSMZrgiqlcIvN2smArNRikATvXTzX8W45jh0zhGA01oVZWebN?= =?iso-8859-1?Q?DV3O2DV7Ji1mgGe2aXN4HoflthHwGLSDi+7gAz/t5Sdu1or/V2ZbnRryaf?= =?iso-8859-1?Q?8FUgMqP6RMtuiVfbQiDxF/UbNW5KyPOtOZ/jYIw2xjuYd+Up6Eg0pIEacp?= =?iso-8859-1?Q?8FJP2PM7gtkhA9H9Wpe9WFk9rnPuC3DKIAIYDd6b8TYXl1DQWbxB4IA2vd?= =?iso-8859-1?Q?6WP8jZv8+0wgDGjWx/lkt9IRuNooMkRYwyiF1uxzkpcQyqfTjG9H01HrAS?= =?iso-8859-1?Q?is1aBCIovVkprdYsNR1QjONeva2xyonWzvI/t/Y3BdOxeewj+tBPiUU9oS?= =?iso-8859-1?Q?OtoJWq1JCYiQ6ZdOt+URWES2M/UCv5fKykjuoR+B60dQkNy80nXS/SGYBp?= =?iso-8859-1?Q?P0wuA3AlKQW9jmpc4C1K5GDv1MMubrvR9iqTbWk/BApX2kqwZ8aKwhy94Y?= =?iso-8859-1?Q?2JMIhmXb3CVhxJZOwkKbqO5e8WmN6xNU61eRuMmP1Zki5bObViciQhu+3s?= =?iso-8859-1?Q?7hIGp2h/0V3Ks/eVcluOAf7xh2JkKObuFgcyNPSa1eymXhDcSCU6ga7G3F?= =?iso-8859-1?Q?yA4Q1ihd8ZrqMIWMxwVZ2kcLNeeZajTMz0+uNxhIBMjOTYNeQA8PyKIwN+?= =?iso-8859-1?Q?c3kcY/UREX/Tqie9NR3gMKzMqmuMb7VhrMo7SckVezcVncz2WAn1R9y3/h?= =?iso-8859-1?Q?1yVb/Jjp7GQ8sSR6pFnkKHt7f/DG1AcO2eXIS7aVi9phbaegTxZQIpMASI?= =?iso-8859-1?Q?TLd+xpY33kdu3hPHU8KhsnC6M5p4SK/vL1G5z1pM8lA0mC37TT9MvJ3QlS?= =?iso-8859-1?Q?opUDEZ+gO3yBUL/VzQDMEdlbndSoq5IdenSylh45ltEDoQLos/NSfgAlNC?= =?iso-8859-1?Q?2f3hN5I0g3wci8rx5jB/4rwpy7TI16NHzZskd38ppdcN/I48O7RqMF64zi?= =?iso-8859-1?Q?qajr2wdU7kn+9hDL1BCJGlilZ6JJ6Uy3EW9SMenTfwUTr/wSA0h/v2Cykh?= =?iso-8859-1?Q?V3Z2qP5jTNaAgo1m8uG8SVx2KHl2cll2JfE6p8bkjTkSo2dlSaJXYwm+/6?= =?iso-8859-1?Q?xreJlzaPG7+utvJRN3hyaZt8sByxKfDibHTb5qmlMxXagg6qzfGAcCVnZJ?= =?iso-8859-1?Q?Pb6uOMcjvHROUSU9rsH8KDyGFn08W+Ws1tuU5nxRprVcGotsSLHcp7etBZ?= =?iso-8859-1?Q?dEn4DAE+ByEuWUKouUg=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 65ac28d5-b825-4872-d254-08dd976e9601 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:57.5258 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yhjuVzSqzNqjYhiYXhyOGEo3McqFHaKOngDWOrq1/Q4kDeDv83hncmTwGnH16fJZvseCHrw8W3nlPjG52n4iFmuccTGnpf0edGDTDvXfFof9sAUOXewcWJLor+GWYJyD X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.83; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost2.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725643636116600 Content-Type: text/plain; charset="utf-8" pri_enabled can be used to check whether the capability is present and enabled on a PCIe device Signed-off-by: Clement Mathieu--Drif --- hw/pci/pcie.c | 9 +++++++++ include/hw/pci/pcie.h | 1 + 2 files changed, 10 insertions(+) diff --git a/hw/pci/pcie.c b/hw/pci/pcie.c index 542172b3fa..eaeb68894e 100644 --- a/hw/pci/pcie.c +++ b/hw/pci/pcie.c @@ -1266,6 +1266,15 @@ void pcie_pri_init(PCIDevice *dev, uint16_t offset, = uint32_t outstanding_pr_cap, dev->exp.pri_cap =3D offset; } =20 +bool pcie_pri_enabled(const PCIDevice *dev) +{ + if (!pci_is_express(dev) || !dev->exp.pri_cap) { + return false; + } + return (pci_get_word(dev->config + dev->exp.pri_cap + PCI_PRI_CTRL) & + PCI_PRI_CTRL_ENABLE) !=3D 0; +} + bool pcie_pasid_enabled(const PCIDevice *dev) { if (!pci_is_express(dev) || !dev->exp.pasid_cap) { diff --git a/include/hw/pci/pcie.h b/include/hw/pci/pcie.h index 17f06cd5d6..ff6ce08e13 100644 --- a/include/hw/pci/pcie.h +++ b/include/hw/pci/pcie.h @@ -158,6 +158,7 @@ void pcie_pasid_init(PCIDevice *dev, uint16_t offset, u= int8_t pasid_width, void pcie_pri_init(PCIDevice *dev, uint16_t offset, uint32_t outstanding_p= r_cap, bool prg_response_pasid_req); =20 +bool pcie_pri_enabled(const PCIDevice *dev); bool pcie_pasid_enabled(const PCIDevice *dev); bool pcie_ats_enabled(const PCIDevice *dev); #endif /* QEMU_PCIE_H */ --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725655; cv=pass; d=zohomail.com; s=zohoarc; b=U/LvpfHpt5NA0JuhiMAI0qzUwYE2o/3rJ2cTim0DTRCaxBjRAVzuLL3TYnfFA3kt5gPcv6lSJ9ZPoEQr1MNr/cxyDumbHYQ9Nfv9T5tcZdjQ9fl9ahzhIjMTj7terw8pWfc8UP+NEY473s1+CwC099gXh6J6Yb8SiA+TmhVOa6o= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725655; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dTJH0C6MP6vsCGMwQ1z+JcrsrSrQoSMiTtfxfEYSWQQ=; b=YsW5g2C2AR65ojQlG55aW5EjiUfkpaZKmQgylJFKqhJL2F+QBlsFdGikL2xwJnx5Pc4wSNdpEAQ6ZvLVjMzljgns7q7I/fRZIp7md+t/WnDroFcDSbhQvkAJg5T4nRdaq/ivz8vmW9gIvzLwMHo+Xmxo7WDuSRsO2hxSzACoNyU= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725655317875.676646313142; Tue, 20 May 2025 00:20:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFj-000189-C0; Tue, 20 May 2025 03:19:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFh-00017F-Jl for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:05 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFf-000277-Gc for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:05 -0400 Received: from mail-am6eur05on2046.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.46]) by smarthost3.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:00 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by DUZPR07MB10037.eurprd07.prod.outlook.com (2603:10a6:10:4ae::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:18:58 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:58 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725543; x=1779261543; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=BCpPV+AOjC+Yp02BmteDrDVL9O2jw6UpVXN4cxr1U18=; b=DFYfWcbL6Xnw5IKnFVv1WqnpC38VabJxJHigTobrxlywervzNB9dI8z1 l92n2/b+xkdetT1uqmvrug0mSbuhxlXilXkyW8rMJAJLOunui6oc2R0Yr ImE4gpTD6BSi7OYg4BV3x/n55LTnEtCDV7TwUdwYWzc6bERZXldMfVPvy 7ycPrRPasA379OwLjyh5rwnNCon1Zeb4SN2li+VIChvwW9YoQz48sNFN/ Ox3fjsZDoVQL58ODdftD+BLJ9pOeD7QVQkgnvIHnY7Mw7/fCDVM3hRX7/ bgU61GAVEeRWl6FBl9FwOLIOsCSivawJYQQwalsUnML2RHrzKPNe75nr1 A==; X-CSE-ConnectionGUID: Xi5zcinVRrSwAyLdt31/lw== X-CSE-MsgGUID: JgKfXEsUSxyeNJJh46tPEQ== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37190740" X-MGA-submission: =?us-ascii?q?MDF0/D9EEdoWlzkTFbgaHyQ2kSZJHqU0zd4Jhh?= =?us-ascii?q?Cur8yI+HvTjet1W/hgmeg7WokyBp6gAwgM+yKl+ycAw/aHl29Z3hyU3z?= =?us-ascii?q?vtzh96ptODwpecuc74iC+GyGnDSRn1b8q16yLnd/bn3ZyVkNaIQmX6Dd?= =?us-ascii?q?JFOdv1f+m9EyRRDT893oDHrQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IWNt3nPVWTUVUBPL2PHRSCTZ03a6cfJ0O+c0LTFTkHCPMpFy13Sr9uW4Y5aD+4mk4vpYy4+3npmTgmXxGom/FFIFptvPMkkzEWopPRoJsGLd0Pa54c/diZF1onhf/CRJfVpjyFAvXT31C3MkkpXAAnME2VLce3UZZvLwG7gOsY7/8wcRqTrPK6s9Ru4GcVArXVBcee5+hU3bDDFva75wkluzWUh5eZxLzJ5mQ0NmoHHsUz10Ok3V6JfSMQOeHTrtV5GOppEFkTc6K7RYD3NfnCUzdoxscdObxlYrNv/vdI+BIfsEsrUceNa5lEtRhj+6qapFszp/uZrWANEgCUR8Sw== 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=dTJH0C6MP6vsCGMwQ1z+JcrsrSrQoSMiTtfxfEYSWQQ=; b=sh7EsxqTB0ctRJKv//21qkJ8BJd63pPCBCRc4lWu9+6Ic5O7TIpf0R6OOUlfvuCEkD5ItWAssfiUzZ93L41MzjznYD/39Z2W98RUkiFwoQF2WsMFNHd/SYC2mc18oM/hejI63QJDUfTOG8b+m6XIsonmLf8xcCWz1d0F0OQjUvFxVc+rV7sd1gQxgqDo1MPqtOh0UEw7a4bZ+7kMZXtuf3mr5/+NnvcvesCTrtcui9tpuvoaNyoqMNMoaBn3wW6xNMBImIPMYuofYFs2RpTq3tHaocxWLDfY8TjpjKPvW+kRDaJQtthbIsinG8QJ/3IbjcvpocSgi1bibhoPn9xU2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dTJH0C6MP6vsCGMwQ1z+JcrsrSrQoSMiTtfxfEYSWQQ=; b=CME804AyMypLMfjxFZe1rj3uQiisFe4GH8hakC/c9zh1de6ZRAa3XyoZHXIMGHrCIT2bSy1d9xVobfhIrEhap+G1DF2K0oyL5QlnkaqGgLiqHWBdKHBZldJTDjwdKyYokcH5va9HoB0VO/rd9Y2U9SAdxCayzXNvZfe2eKcX7GA6bxMkTzk19YdZxisM3fGqCf8TINIm3qCLxb7JWhPU96TyPxqu/9Kt93U8W1SSwtAR8ByNnCVYV0ud/YDWEIwWeOf6z/NeeqYiT++s63RHoAISNd7PFgj89pTca0zaDAVc7qN+qY87n77irnSLGRwtna3GxBqMSQ7olqh0uWhpoA== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 06/11] pci: Cache the bus mastering status in the device Thread-Topic: [PATCH 06/11] pci: Cache the bus mastering status in the device Thread-Index: AQHbyVd0TYFA8ISTBUaaNvp7dqo5qg== Date: Tue, 20 May 2025 07:18:58 +0000 Message-ID: <20250520071823.764266-7-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|DUZPR07MB10037:EE_ x-ms-office365-filtering-correlation-id: 3e96e856-4ffe-41e7-7110-08dd976e969a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?BGOhe+sKEGehhwRpXjQn7qW7xtG0VV6ibU0tcCNbwIYS4Ln7ESGdIBCBZL?= =?iso-8859-1?Q?Xy39fdX9bpOdLW2nmbO0thMfpM2siLdQ44jZEJNB7+kHON+k+EDEYSWHKd?= =?iso-8859-1?Q?9cV9IDMce6DOowe2/sJI2LKQJH1OL7/KEKYtkJ6lQmwNnWu0uX5eW+dWY6?= =?iso-8859-1?Q?YruDldDAkLehP8+JlIbdbiCi2QoNRgiSpkwdqht8LfTWWd0R2id7x55tJ6?= =?iso-8859-1?Q?Ywk/nl8YxfU30viufEvTdjO6vmhKKStlBpzjqzgwO5YzsvLvT44wOYALft?= =?iso-8859-1?Q?4qWkshacljtB8bhCLJg6aD7A/gzAlgZG+8YxwRwBaWoE/Ww/CWNBLsKi7z?= =?iso-8859-1?Q?Zq3DJa4zf3arkXI3iteBFeAIouusHiEIEwceWLiQCtY11a0vaUrKGFl1dn?= =?iso-8859-1?Q?gIxTazMW7CzSAsQIAveD+oqjDTuUvYdrY3iHQHP3syRL128uAYj+aLi4YJ?= =?iso-8859-1?Q?Y5O65v3Ck9qZFufuMZec6oF9tgZxP1maY6Qw6AwCmvWNzbIFygv94kC1dV?= =?iso-8859-1?Q?1H5j1aiTJbMihG2alz31JF3+3GFsI8Hg+X32q0P5OABhJFfVDMtXwSK8Ap?= =?iso-8859-1?Q?DxsYYa2fvH7uH4uZwSdfuekQXumCmRSxur8JKTscgJ1whP6Jw+xklxc5tu?= =?iso-8859-1?Q?X69vRFj+FGGVwSgINZ0w0xsfi1/xTLNh8R45+d7Alr0bmG0biMIuARE+uj?= =?iso-8859-1?Q?AOt+uaKXeUy5oP2musizfWEHRJYq/5SHLgki+k1prq3RvJeUb5OJboPvYu?= =?iso-8859-1?Q?ip9+L63rygbnfMCAmuGn+VIWf1jIOfmuh1LLd3PEfy+ByuxnM8/uepumQj?= =?iso-8859-1?Q?zH2177mYvoZ9HK1+fkXJnZypClqNO1LKD1yP7Bs3+dNBEG87/88NsAR3mS?= =?iso-8859-1?Q?oh5flTqqRIel3mMNbHRZeTwH3BNLd1dKQ21070frIEaOOTFRscEohpXBr4?= =?iso-8859-1?Q?vkFShQx2nbJTOZAWBveuTW4VgpG5JK/vPZRhIwqkYWyLn+zh4Hs4un//vB?= =?iso-8859-1?Q?zwCZcTkqxLXwIYumnU5NWtbt23ssGAehjgBHYWrlCWQFESKSsej85WCjO9?= =?iso-8859-1?Q?h/Ij2s05URNBdP/LjlfNALRIL/C5XXNIdjqNYFCPRRGTcAiDkOXpjZH7N6?= =?iso-8859-1?Q?PFVdrp5j4ljtr39Pgw2RHRC0uZe3qznsq2Z0FJ3W8F0+DCc7w0ZvWKUHwi?= =?iso-8859-1?Q?386BCOkukGyurJZUeUyUor+cxmO7a5Ku7VXVF784gdxT8UWqbo68KsuwJD?= =?iso-8859-1?Q?uMvS/OUjydqGAWX+ql+nBvyY6tiZU083K5alQze9ScbPMDpsKl0y1r7r6s?= =?iso-8859-1?Q?OolfPoU+tqxa2kTXKX6zxpocqaI7ou6bbCvQPYE54AdO1VKEUJUWAagbda?= =?iso-8859-1?Q?LLUCsvHrJr7R3oNvTnIL2xsmYH1bCnxG1CwjC6qfVxcHaJTizYgxzPacpg?= =?iso-8859-1?Q?r26Nk/BC2e0rjrQCwkenMaWNyw+9WjMCIetPrFTn5wIeRodUSvm7GKG+Va?= =?iso-8859-1?Q?7g79c41n0etbqr76lawhqfHaefLD4L7NoTQdkZPkmCbDCzuQ/n5KaJWVLb?= =?iso-8859-1?Q?BhOjeaI=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?rEIXsjU4lxFTJJOluDXyT5KYJCrJ0j31UE+h/l8VQNCAK2tF0RV2D31vrC?= =?iso-8859-1?Q?Apx4qT3yxNyI3iHwRBiM2u1M6lQIiz34mp/7kswGqWZODN9y8eYIrlcm2q?= =?iso-8859-1?Q?gZ44+mzJwWtvUY0daOlDBPBeEKQhuoZlAUr7IQztGb1ircPPYCYTrTwvFO?= =?iso-8859-1?Q?RBZx7X7zfkz6iu9hFk+lIjhqRTi4EnFFabc7hCn10N5BMf++yJkHkINQms?= =?iso-8859-1?Q?kf07rD36jiRlt0iZw0FaHoOQ5IZZnpjdiHvAd9XNdwPi33BVdBpomnEJFJ?= =?iso-8859-1?Q?gZWhj4n3pVE1YHN4RiWcyPyh0qu3aU5eYscwBczhA1vnNFBBMVqNlg6a7M?= =?iso-8859-1?Q?BaYvBeNT7zLOMIeGz1t1Q2uHzJuJyPQUFhD+1aBBUDXQvJbnl+yZPZHcIa?= =?iso-8859-1?Q?QIP/IwnYrB5tR4ypJREwO6Alw5bfuabgb4Chil/IcdQZaEVpYQos7V5H+U?= =?iso-8859-1?Q?OnVzNzA1r5pNMDYbG5jIHuYydWrgo881h3wOpV50SckxKzugcJ3UH/Bw/4?= =?iso-8859-1?Q?vSNBLxsMnEEf+SFTa52MNyeTL5hZRTZ8X2erWlzLWKgKDadIkbbBzmsTEg?= =?iso-8859-1?Q?6ygD/4poJTeSW4TduY/AU0S1rMfujsGh+3SNJ7Jew5mSGh7IJ3b026ocsd?= =?iso-8859-1?Q?GHjtbT/T+NqNwk+fGdAboh65KpeWddv9Ez15E4IMBPZHJpyiGwCjLxU4Q0?= =?iso-8859-1?Q?66RXccpG6QkchlvsjQ1/+8Fp/V8ZzgMj8ZhNYxqDxnNEgR73XgxJxwy8EO?= =?iso-8859-1?Q?uGinFvlsOyXKxQEpKBhJHkFjYBkxP3US5ndcKQNqhKfcuyGHAQWM0rbNMw?= =?iso-8859-1?Q?fklVoOhCY+U2SitU80EmVXjAZTA9lvO/Fo7wPKvRS0FXVGfRe2ic5jLI+c?= =?iso-8859-1?Q?mLB43mG0/ss00hEnc0048Xs8R6dCBH4orCTCSWVCVRLEv/w/FKNfl6S50U?= =?iso-8859-1?Q?l2wOcSc8UNNEGSgueIOS6odsxT7jvfeRc5zEv07UQIzDCiiQ7vXcHoFjz0?= =?iso-8859-1?Q?u5CzJfIoi1aFCpmy+wetGPFvsLUy3elAZErL+hn5M354NhSp+UFULHS60I?= =?iso-8859-1?Q?E4sV5GJx+FSNVYW4v4TwSfieZBisrG3zNwuqfjQ6bPUZeJV1fEJt3bYTIk?= =?iso-8859-1?Q?/v+w3hiERNG+0yLSWnASTzi/ZAtRQCs16wz6eH2Wf/6K9Lf2Oocji1c+sB?= =?iso-8859-1?Q?vmlCPnpq/aDabABn0r+KKULCR3NvW/JLJNQ74LlR45N8GN+3wQa0f39mEc?= =?iso-8859-1?Q?fJ4E7DUwDrPcY5YzNBWy8gguvAuZdQD508CnuySR4Fqu5hb4/4j+HQfcx4?= =?iso-8859-1?Q?6Ss8fffdNTB42mpFmH3Pb0htfDnpMeyqBz3NSU5b/SrW3NdOaJvt+F8zyR?= =?iso-8859-1?Q?jNhy8eU503BfYU9/3UVZ+S4lPWRD1ncnontGQ125+hp5303JBvVWeBEN06?= =?iso-8859-1?Q?Ym0lG+xSoQ3S6jTr2I0dHH/wP1Ofa3Yrbk74zV4Dq/PY8lFQoGrr4lZjjL?= =?iso-8859-1?Q?w9uG4zQrIHk/JFcXPp6cG8/ulmoc0kIvHz9LaUqwrCsVqCQru5VMz1tyuG?= =?iso-8859-1?Q?42siH64b80OdOYA6Q37dPyZTu++pXbEMt9fUAZBf4LyM/D760wPO8MnBji?= =?iso-8859-1?Q?/m1ejQ/LLbEgpLBjkl1Tn6pAxCUnW16CQXT6ba69jJu6mX4iH8RkOD23VU?= =?iso-8859-1?Q?zoTM3BEP0M+YHjmmQZg=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e96e856-4ffe-41e7-7110-08dd976e969a X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:58.5352 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: U7R54LogKjAGLZttseliIRL3niTmJdD/gjNL+bnqU+lW+Jj+vv4ZG21TrHIfXPexWlM9u3kSdNONtpi5Ndq2pbuwinKbJH1HTfCtkfUGXCtU2JFeU5BMK/zMK8Tv+KVn X-MS-Exchange-Transport-CrossTenantHeadersStamped: DUZPR07MB10037 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725655943116600 Content-Type: text/plain; charset="utf-8" The cached is_master value is necessary to know if a device is allowed to issue ATS/PRI requests or not as these operations do not go through the master_enable memory region. Signed-off-by: Clement Mathieu--Drif --- hw/pci/pci.c | 23 +++++++++++++---------- include/hw/pci/pci_device.h | 1 + 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index f5ab510697..1114ba8529 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -128,6 +128,12 @@ static GSequence *pci_acpi_index_list(void) return used_acpi_index_list; } =20 +static void pci_set_master(PCIDevice *d, bool enable) +{ + memory_region_set_enabled(&d->bus_master_enable_region, enable); + d->is_master =3D enable; /* cache the status */ +} + static void pci_init_bus_master(PCIDevice *pci_dev) { AddressSpace *dma_as =3D pci_device_iommu_address_space(pci_dev); @@ -135,7 +141,7 @@ static void pci_init_bus_master(PCIDevice *pci_dev) memory_region_init_alias(&pci_dev->bus_master_enable_region, OBJECT(pci_dev), "bus master", dma_as->root, 0, memory_region_size(dma_as->r= oot)); - memory_region_set_enabled(&pci_dev->bus_master_enable_region, false); + pci_set_master(pci_dev, false); memory_region_add_subregion(&pci_dev->bus_master_container_region, 0, &pci_dev->bus_master_enable_region); } @@ -804,9 +810,8 @@ static int get_pci_config_device(QEMUFile *f, void *pv,= size_t size, pci_bridge_update_mappings(PCI_BRIDGE(s)); } =20 - memory_region_set_enabled(&s->bus_master_enable_region, - pci_get_word(s->config + PCI_COMMAND) - & PCI_COMMAND_MASTER); + pci_set_master(s, pci_get_word(s->config + PCI_COMMAND) + & PCI_COMMAND_MASTER); =20 g_free(config); return 0; @@ -1787,9 +1792,8 @@ void pci_default_write_config(PCIDevice *d, uint32_t = addr, uint32_t val_in, int =20 if (ranges_overlap(addr, l, PCI_COMMAND, 2)) { pci_update_irq_disabled(d, was_irq_disabled); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->enabled); + pci_set_master(d, (pci_get_word(d->config + PCI_COMMAND) & + PCI_COMMAND_MASTER) && d->enabled); } =20 msi_write_config(d, addr, val_in, l); @@ -3100,9 +3104,8 @@ void pci_set_enabled(PCIDevice *d, bool state) =20 d->enabled =3D state; pci_update_mappings(d); - memory_region_set_enabled(&d->bus_master_enable_region, - (pci_get_word(d->config + PCI_COMMAND) - & PCI_COMMAND_MASTER) && d->enabled); + pci_set_master(d, (pci_get_word(d->config + PCI_COMMAND) + & PCI_COMMAND_MASTER) && d->enabled); if (qdev_is_realized(&d->qdev)) { pci_device_reset(d); } diff --git a/include/hw/pci/pci_device.h b/include/hw/pci/pci_device.h index e41d95b0b0..eee0338568 100644 --- a/include/hw/pci/pci_device.h +++ b/include/hw/pci/pci_device.h @@ -90,6 +90,7 @@ struct PCIDevice { char name[64]; PCIIORegion io_regions[PCI_NUM_REGIONS]; AddressSpace bus_master_as; + bool is_master; MemoryRegion bus_master_container_region; MemoryRegion bus_master_enable_region; =20 --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725636; cv=pass; d=zohomail.com; s=zohoarc; b=h0m/yKUDyfALl7vpJOiLcWMqlT62LV+FDv8cp4QMUaEWAkZNUYBeUw5hw32oVtmTURBllDMSqhGc09hfZc2CiEkkVXI1UyrfOG8lnypthAXbOHTpfOCAd6uc9ODjKupXQrIuxgACDH/IdVHSA3qVa12zTingS7Qsh2KihJKGUjI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725636; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3S3mREt7VjTv0tr9ghmZyu0emfmtqyPz+WGfLtKEs0o=; b=embYcEZ+zYWFvzsPupGczvesHiXZ/RYfV3B/Dyu/B20rRFxRjkBa507eHAB0synDgzXdFXEInkBORjGb7t0wS3v04bPEpYCTFO7aCwZjpTHPZdli/PMOyBxZhKXdvVZRX03yZTfOQyigr8LXtTAp2O76Ogp+pSk8vAdD7zF9RQ4= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725636193727.7587517500706; Tue, 20 May 2025 00:20:36 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFm-00018n-NS; Tue, 20 May 2025 03:19:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFk-00018V-8o for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:08 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFh-000277-Vc for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:07 -0400 Received: from mail-am6eur05on2078.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.78]) by smarthost3.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:03 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM0PR07MB6388.eurprd07.prod.outlook.com (2603:10a6:20b:157::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:19:00 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:18:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725546; x=1779261546; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qR1dUwKQlhaAn0UeETQeTyHpU+6YPZ7kw0Yoghllxxw=; b=DFS84JuRXXReCiXlxcFVqw9UZBhHOlQjQ8LBTxCpXP7nm6Z2Gpz/2+Rq eNoAHzsIfZ5/FnZy36UXnTP7JgneHNdO+azQYoD3nMUKD9zG3LUWwYZQU HuS/+MNTZdgWCfYJRTb2VIi3S/PPK7OMbJJOCTksv66rpUTJ++TVwyNWU 8Fuz+nllDVDrUJWMIQMEMcJZhZrwuEt4XBVL7gmyZFqnwlVeF+TSUXS6P 5GS1KGuf32KWJUX9Kq7LMo+to0uGj2yEF7t7/CKom5MOFpyT46ukXHkOu CGRiAUNkW9V6McobxMLrpJkYAe7DY/SRVuRYbZKjhhtwgYBlAbpa1Qg1p A==; X-CSE-ConnectionGUID: PPJ+kzInTU2vwg5v0u/C/g== X-CSE-MsgGUID: y4HwkivsQwOyQldRkJk7iw== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37190742" X-MGA-submission: =?us-ascii?q?MDGKzA8AWNq5kragAMQcITRWK0mPZ0MaOMLLm+?= =?us-ascii?q?T3/enSu1qjpVlEnZlHH5F7wsp98fKI3Y8YUsVZHsKrBNLEVsNB61xA5b?= =?us-ascii?q?WQUF+RGIz0zQkNMAXqldbsQj+9pXbcfdbzJZm7C4AAR2ALwQSSMzaeaJ?= =?us-ascii?q?cX4YI2DKoQwQFHfY3yhG/yqQ=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PIyc+lwJ4bWM+G9/S9gEA0o372QwrnaS1YZcfStVAF3rBh+KmuGtucnRi4rpIzIH0zKTWQjyRzGcjAV3HkyDKb1Lpv4CyJ7y3tXdYWuu7jR7r0SvSCROu0hMFnPR6RhyL/GQRwgYKqtr4xgwJ4Eu0bfqK94EXixzPT7J8fP7h0udbaQtprypUUAvOQ75xsnjTF9YxWITWoNXhhnzj7zQXyscrsJDNpAn9grkn8A08OKYGsQ1qH/furfogSStH7DZvQ0Sfl6ExnOSUdsuvcFuNgqatj7QyGFqrnxqEnlxjCTDXevGIH1JL1Q3zWylz/tYEcu3phFV2g6grbtAco4dwg== 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=3S3mREt7VjTv0tr9ghmZyu0emfmtqyPz+WGfLtKEs0o=; b=wAvopZfA93uZSFFXafBzqYu4n9c2CYlWvw7N6eMde274roowlVdeqxdTtB01J5SM0pdXaUqZgaGiAEKpseAoHmDZdJhS08rHuHxZ0ht4fqXrPzGoEINi5KemyXJ0N0FofGw8V/VMMbtQXTdW3PnCowES4M8OGHa0YmRM27PbOkSvfbaMmOfIrbCCjlWDKIrt9cPUsQES4HN/yvrLhASSPY3E68Mc+nzGuCEnaVHJsQNPD7Hd/KBMYT4IZR7zXcroXZqDk5N07vc4tqDNlpbJflMwl5VS4yZQjPQ7iTBP9mHSmkeRDZhQIFUO4o7xTmiExZDOJOPD74ELw3X5HBDryg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3S3mREt7VjTv0tr9ghmZyu0emfmtqyPz+WGfLtKEs0o=; b=UN/r0ERKssLSuXafKNVRsLENNZwZ+mOx/C2RleMOGT9NxsHL6vEf/h3zB1LWCfmlCK6/n12fgBhd8pqBz8Jpt8VksrVKOLuIueF9l1rmz/CSnjrcEOalbMkZ0THgYXNX5vy+Qt+s2D49nLTolrEwlkFqcXszwnbbDHUpEfZlRl+2V9UZX/l2Si81fI48u9fjii4qh3hY7MRbvbFNR1nNl/KDKLVaH93zoL6DUPoWoc+a6h+pftdSdiHXZch9/ZVu+kPbWxjkoKK2RmdNmlY6c/ShbTWQktS5EC85QRzwhSjQHdWU61j7msST3ovW3usOs9ZzcUJ9TL+r9kRbk6YKkA== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 07/11] pci: Add an API to get IOMMU's min page size and virtual address width Thread-Topic: [PATCH 07/11] pci: Add an API to get IOMMU's min page size and virtual address width Thread-Index: AQHbyVd0l0R2Nc6mpkiRSLg4u7mvcQ== Date: Tue, 20 May 2025 07:18:59 +0000 Message-ID: <20250520071823.764266-8-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM0PR07MB6388:EE_ x-ms-office365-filtering-correlation-id: 445b9aab-afc8-42ec-88cf-08dd976e9748 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?3q/IAIfnSeoi05GGEEeObrmgcSF6jmuvj2G3FFRupAcZMr8/2g1UA+oWBu?= =?iso-8859-1?Q?UNIwnYosxQ+lLRZP18E3kxdWTn+69tHq4I3RuQAU/J5lQfS5divGtcCZOK?= =?iso-8859-1?Q?3nNHCDdx8NGcXssR1lJehwzgGTtD9SMm8fw68q59M2vGK0HZBiqmzqCNCH?= =?iso-8859-1?Q?MOel7XBXFA//xEMSEXbCNZ0n9X6rc5P4/e40Q3XYXfXElBqAYmFdFzhXUt?= =?iso-8859-1?Q?nDYucafjR7TDmIaBkbKOGCLoJ3FPQ4jBkhOygE+ALzUDoGRH4VaYnNEzah?= =?iso-8859-1?Q?6lK4bdy4xCRHqulk0S92xqPCYspxIzkCojyYWu1F5PVKYbGVlUq+DGbNJa?= =?iso-8859-1?Q?vQyPijyQ0i9RFl4OMAmvsyhtIJ8t9FOnFFEbS+uiPbi9NApGzyF/gD4wcN?= =?iso-8859-1?Q?2KzrWd9RpnQDyepH4IsVrplhxg54UQyQ+gkUVTp+5DQXEciEG/W4t5Lejq?= =?iso-8859-1?Q?eSdjfU6FBsbrxaabolUAPzwApYfxuXr9pNWv0+QS/HsPNuD+i2wH67QFur?= =?iso-8859-1?Q?ZlbjFN7K9dZNbbZthc0JO7ktoy338VUcsNLuKgFnUG7NScgO5bWZVNByVP?= =?iso-8859-1?Q?6PUQDkB5KqaD0jpggO2nWUujAUq6rMJK0FMRzvZmyW/v1S3O/TX6Sc9h5m?= =?iso-8859-1?Q?ugnDHKnACO5XHaXsE9RJzWCer3HfngiCembMXBtvq++JA9K4Q39NOauqxE?= =?iso-8859-1?Q?iMd5aXWEVl3R1Ha/IEJdLTFoOFev3FhFSZ5rUlkj7/eyF2jt+ZBhii2vlQ?= =?iso-8859-1?Q?UxgtvBht/GS/O5TEVLHECE4e2b4oy0QoGbcJUHfGNSgIWYMZ3bmJYxPkKW?= =?iso-8859-1?Q?4YkRohRzgFsRcck8CEj0y73jfR9iBVklfl/Iwdbeg8X4CLI9GlGU2774jA?= =?iso-8859-1?Q?cI5CFPnCwNqrBM0cd3tVuXgEQjYUhNsPAZKG0EhYQcQIFnONjG4H+pZrrv?= =?iso-8859-1?Q?xfQFCWb3TjttObFtVKpUIPIy8n9idTIPPpl0kQ1FwM3ojZ99eBIhm/tipB?= =?iso-8859-1?Q?XCq1pGrU6/025Gz8nfYLe/WhDgJvgQC0ymRHtejsYFCR4gqyZduwOUJ4Px?= =?iso-8859-1?Q?PBc+EFZE3NXgqDvQ+5tb/pwMvZpwwsMuxfZ8iFND6ZYIEWnNdHkrrGECSc?= =?iso-8859-1?Q?ullABLm6h2RiMPD8KiUuGcXGSm6hYH2CCSE97Nm5W4ApVtPgAEzkOKYLvj?= =?iso-8859-1?Q?w7UIQvgCoezb3deVWlYKaKngrbVAn5354W2J+PDagqw+HLEJF4ziOz40dr?= =?iso-8859-1?Q?RxcagGFJHJyb5VzEyayuyiJxKgzxqv4vb85dhiQCoO5eSwKztilJ27V5Es?= =?iso-8859-1?Q?AcfppxNnDH1RElVqYJf26S6DMPlapCRTa329BA2Yi0WWDh4frDhS8CrS1O?= =?iso-8859-1?Q?nisOjz8ECJc61hbRfkVjoqMp9l4DcObWxSnCR+byNlEd+0AFtgECKXafao?= =?iso-8859-1?Q?Eprfq+L80wrUld/Cqz1zDddAXNcQQsuASbLoX38SJHh7d55cQwiDl3n3uY?= =?iso-8859-1?Q?+LCsZe3Vx1/dGssLed12uYdl6k+fIpR7cnFNAxUkAs5OMbmh/u1NHZq8uJ?= =?iso-8859-1?Q?BIa2epE=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?UqRnR3KYrA6cN6pR0fzoL7gTXF/9tqYwgFis47nYEyIEu+8Mwbzvlc6XzT?= =?iso-8859-1?Q?Dqf2I5O1BX8o5TOWwb6Lam2G33F0uaT381OxwS1F2m9nU2HKcnqhfP83zl?= =?iso-8859-1?Q?ngeyTe1QKL2fUV8nys66PaEwU8IiGLwQ+ZZiwolrw/pXPpBi937z7GuGi1?= =?iso-8859-1?Q?GeN78TCwC53sVbSGhckhhO7BTlCepf3jgeS1rhzExcZCny2gJENFEGisBv?= =?iso-8859-1?Q?ujZYKYaosJMeoBzrWj7zITFL2udbUWoYbORkyEtOcL74jFrBhcmF7hfzKe?= =?iso-8859-1?Q?WKIzqDjJ8skb0d4COJlGtSnYHny8yEhxxzXl/bS7lievth2dO3VPaUdWQZ?= =?iso-8859-1?Q?SS9ooULFR6zNjmY0AxYbXvFUWuWQGR8i38VMZ6XqwlkF2IkH11Mk8ZsHmb?= =?iso-8859-1?Q?mpA0mgVfYikP+zFpqPAKeft9HoqmMUCQ/pJ1ND/8rIyCuj6iW7PzPqLB72?= =?iso-8859-1?Q?tcZ9XqWyyHFqpdMhJ3Apbs73B0uSeNVa261ynEyPL2e+vcrPiO/vHLBfs9?= =?iso-8859-1?Q?F40QDwGBTCzg9M66JGkLHyon4rxgh2HLwWzaDlXCNVBCfKWZrbqgKDCHOx?= =?iso-8859-1?Q?5v99AY+uim799IXm5aS+6kNdHF4dW4mTevOhj0TqiAktl4xrmTHmTHH6gv?= =?iso-8859-1?Q?yorO1+qbpIFr0ZMwFo1qXEhNsNf04aOBBYd1CXMCYa6OVeq6Sg2l6iDzua?= =?iso-8859-1?Q?e1zz3VYHmR962sWPwHC5iR90zRe0/WbYbhFk1PwpKBUcjtHNim3XGd28st?= =?iso-8859-1?Q?udQUHoRaZavJtun1WNXVxKUUua1yWtSsTzPGl5Ihu8D/tboaYoevnySkEC?= =?iso-8859-1?Q?5liTKIAbClaF0wN0mxzabrfLT8oUNvTzAU3QKf0ZvBPifXZZbjthLiYvmY?= =?iso-8859-1?Q?TvaraP/lX147rEyNg98CzFQ8/nurEdOr+iK+mQO36TeVm9taYDuLbUu2mZ?= =?iso-8859-1?Q?fZHSZuOOEx6LkvQixIo0H27BU0Dj6BkhsWuNatR92OuHbNWtMnuKneyfC6?= =?iso-8859-1?Q?gOCZcY6fN/NeXb7uCK4AcIKWhvxet4AsrFXsu8rXxJqIeWFIhh3ehu7W/J?= =?iso-8859-1?Q?ZB5Vv+AIIQBj7NgUuhh6/btaADzRWjJRFrk/+NQDwgLkwgvkKQfcxN6wWV?= =?iso-8859-1?Q?JusozGU+ZHm6gRbx8vSlGmu02L0ho0kA9CvzswoUvuoDjGgzNL/vKAwAPl?= =?iso-8859-1?Q?9uzJSIBraJVXUh4WtwbxMBOHWYnMhx2ibCR7kBjj3K8sfH8FMZEdwWsueK?= =?iso-8859-1?Q?MDNeMKominLYgjldf46d2fobkJkjHKfs68I59h2UXPZbG0737s57ZMLWu8?= =?iso-8859-1?Q?3lD6FquYkVBaJS+IQVMJDC27M8JJf1YpBDxEOfnxa8MD1C/czLceIaBgj+?= =?iso-8859-1?Q?aXvBCfdwBMyeblEmWo46G4wO4LysSFlhBmG6lkeuyWCugmmFCyQSts1q74?= =?iso-8859-1?Q?mOSjO1iNoj5R+W3/WFk5M7pPypcA+cp+Mt3SMKQMnUOVR06wzrrj8Jt8ji?= =?iso-8859-1?Q?vE0kwQH84XVUesEq//k+4naMWx454B8t7BELJp+cJpell2ij18DMZcm38v?= =?iso-8859-1?Q?1eJv1lBoNKONYRZFBeXbV/thJVx92gSgpO2dEXvYVwms+c3A+mSanCX8dj?= =?iso-8859-1?Q?RuCVga9ax1RWDVM4Kqs1hOTchE1dnMo1Qrrhm3hN1qeOK9CrsTBUIKrX9b?= =?iso-8859-1?Q?GIKt1eZxXn2uDhL1zFA=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 445b9aab-afc8-42ec-88cf-08dd976e9748 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:18:59.6214 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OsGcWBW5DGnITqN6ff/bOixMtBRvY63iQvqz8Fr+j5dg9ORq6SSMj2LYcjTlYFRbxjRr3xZB7MVnMbX/LFbn6uf2pfqduZYfZiR7cPqxRFaebDUjlFG34t4raKwbo5Bm X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB6388 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725637634116600 Content-Type: text/plain; charset="utf-8" This kind of information is needed by devices implementing ATS in order to initialize their translation cache. Signed-off-by: Clement Mathieu--Drif --- hw/pci/pci.c | 17 +++++++++++++++++ include/hw/pci/pci.h | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 1114ba8529..fc4954ac81 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2970,6 +2970,23 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } =20 +int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *addr_width, + uint32_t *min_page_size) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->get_iotlb_info) { + iommu_bus->iommu_ops->get_iotlb_info(iommu_bus->iommu_opaque, + addr_width, min_page_size); + return 0; + } + + return -ENODEV; +} + void pci_setup_iommu(PCIBus *bus, const PCIIOMMUOps *ops, void *opaque) { /* diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index c2fe6caa2c..d67ffe12db 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -429,6 +429,19 @@ typedef struct PCIIOMMUOps { * @devfn: device and function number of the PCI device. */ void (*unset_iommu_device)(PCIBus *bus, void *opaque, int devfn); + /** + * @get_iotlb_info: get properties required to initialize a device IOT= LB. + * + * Callback required if devices are allowed to cache translations. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @addr_width: the address width of the IOMMU (output parameter). + * + * @min_page_size: the page size of the IOMMU (output parameter). + */ + void (*get_iotlb_info)(void *opaque, uint8_t *addr_width, + uint32_t *min_page_size); } PCIIOMMUOps; =20 AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); @@ -436,6 +449,19 @@ bool pci_device_set_iommu_device(PCIDevice *dev, HostI= OMMUDevice *hiod, Error **errp); void pci_device_unset_iommu_device(PCIDevice *dev); =20 +/** + * pci_iommu_get_iotlb_info: get properties required to initialize a + * device IOTLB. + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to get the information. + * @addr_width: the address width of the IOMMU (output parameter). + * @min_page_size: the page size of the IOMMU (output parameter). + */ +int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *addr_width, + uint32_t *min_page_size); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725631; cv=pass; d=zohomail.com; s=zohoarc; b=jPizN6wEBAMXkpsH8V5FMLyAvn76u/HRuw5XFE1+1NXrNEfbfvVgq1J1jvWOjn+PLbPJdiDtwS72iKpsziELwzJpnk1R6Zb7vrsT/QmKb7YoEliue5/H4UXC3ybWchONrk50G2bPfSoajoy3XErF73gM0n0JebU38xIsGDsFARU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725631; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=P1ltEV3icSh4NWhE4Ls3FmTVHBNbUBjWZTNKGBB1d/o=; b=GOmLm3MKk8mH3caftCkVQ6wpKUrXIsl2RxTZVeoFNCkonsqJC1t3bxqnsT8TSFJLHP9RTFAZm9KGWtHsBq+iYO/XdKEwTJqvX/1sU7E9d4L7h8lXutbE522SQjnbscYg5xAeKT5C6TE0K3WiMixS+cGDB3+JHhHIf0VgqFEAPHQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725631937843.4961772964729; Tue, 20 May 2025 00:20:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFj-00018I-U5; Tue, 20 May 2025 03:19:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFh-00017Z-W7 for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:06 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFg-00027W-Ak for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:05 -0400 Received: from mail-am6eur05on2078.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.78]) by smarthost3.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:03 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM0PR07MB6388.eurprd07.prod.outlook.com (2603:10a6:20b:157::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:19:01 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:19:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725544; x=1779261544; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=BFHl/TWNRbIvpJK5XA+uDm7thKhi8MptukB9vuywHMU=; b=SpuKWsZ/N9GnXbMKBrO6nuOL1znlHCTy6jEjs9L3XnScuwNAOmDKMRjJ wvZcFqZpZ11EUQxEAWi48JgnkRHUJ0MAMFC1gVv01ujFWbVC2I5gjKJj5 y/Lq+aA7zvh59KFUYxk+tHwy9MghHsDsE8VTVsrRX3JC71jYpgnaVUjnZ cxV2YvwtF4fBpe8FYccxHlwqAGX9MFdsXw1/Qdp1AjnBiGuZ1/Riy9iyd gk18pfmrJgLjs6Eh3XF0dzoukZsn+7BypaVlJQk16dXggi+qGtfKqhZYE FhrAIt7WEjXgi/OpEW+AlNmFyJh+aQ0+PN3cYm3Tq0asQ1R/puRpmRcF6 Q==; X-CSE-ConnectionGUID: HMaXqoz9S2ecFxVqw8kXFw== X-CSE-MsgGUID: NxTR02CqQhO1PHElojDq/g== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37190741" X-MGA-submission: =?us-ascii?q?MDFpL5f01lcG5mZAS7jnZIKbiv19iGmleMvBGx?= =?us-ascii?q?b6NxzZPJaiXH3w2TXs5KxtW+85q37qXP5i2KlJZP/yyHe4rppHhiDusd?= =?us-ascii?q?LEACX6gdoHu9G7Ze993oLP5XQ3LDogsvsymfVVfwxiTZ1/ZhzR2frxYk?= =?us-ascii?q?UKC+NZTYcuc08Z/ONkw9sWig=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d1iCayuUelyGqQZybP4FVwVvJ/m3QvoimOvkeBJ1HfLAGq9I+QntW4lId9A9MwLMm1fdNFSX5v0xx76eyPt4yIG0k5nVQxj+ONPsIImduYzaBxh+WNaRI5AiJh+gkK3a32/v45Arq0MAd2HpCajM0jLHrw8Fy9wBwke4YJF5OLtd0aeopg4eQt6WkVRu9rMIKM+Tj9VtuYJiyqgjKdWzVbEDJiCQUBN1BhjP1MBm3aPhW8sXzEQ0+6l50DGBECsKkZeaphiFmO4FUOebd/PAbk0H0ke2YimZFWuvuy5KvfnJgNLRSYTqUWQyXnKHfqk5lmnpaP3FNk7EFxSSwTNdsQ== 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=P1ltEV3icSh4NWhE4Ls3FmTVHBNbUBjWZTNKGBB1d/o=; b=hggVYtvegJ9AbLqwsUWmbkEx1LpRKr4f/4U1vbOrvtOLDMXiZ1dSnStdn0YPcP8SFuCL8Xqz7yOfnnpslURnTb6H2C7P6LWAg80NSJhmh11Gn1t4mHws4xzMb/AzvaJ7YtJ8S6Xc3BeUNe+wztPwz4Ah9qSD+6eCNz+LIsnTJiI2XpsdyZKmzY95Y1A+3vO961c7Q4UcaHtOB/pVA0PqmoKcKDZXCiKGa1DhMyUFT8qXpPBDRkdUdi8Sg64Dju9tlYXMlPz0DZLBk7hSz+pFRU7DxyriQKIu4ZVDvnL1NHlGfTmQJ3AhEJ3uWSiS1tWqj3DHUeFBDdmMPjzSqPGqDQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P1ltEV3icSh4NWhE4Ls3FmTVHBNbUBjWZTNKGBB1d/o=; b=WrmZHbWwlNLSs0vK1dwMgfNAvZpPEN8XbxMqvO6vtycnOii9YOX4FdE7eluw4+6h6sqp6XdpifoS0KpgJXuC9U22Uv2ZD6IMzSUGS+Y72lpJUXQjNO9n1rgX3+HHPc1F8rLpNZLFytFclt6VoGbX5I+k3cs7eSV6U3DVOkUY4hyhMoGzpq1PJ1+ECGIFSSvkng9aVjyxgtWFVpeeNQPewp+Hvt3uIa3xs6bdQZ4jFlS6Pe76ciL32pxKTzp1k9EcZduybh1u1ABdebznd3iaH9IQ6Cgf1Qd7hYNguP00PiR5foZ/Q4QWJ61t68dVJSPSszeBOGXfpENrm7p0X1k3Mw== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 08/11] memory: Store user data pointer in the IOMMU notifiers Thread-Topic: [PATCH 08/11] memory: Store user data pointer in the IOMMU notifiers Thread-Index: AQHbyVd1X+3CWMVr306pfCyMBsfN+A== Date: Tue, 20 May 2025 07:19:00 +0000 Message-ID: <20250520071823.764266-9-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM0PR07MB6388:EE_ x-ms-office365-filtering-correlation-id: 4cc1588c-7005-4db4-a6a9-08dd976e9809 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?t22ntsnt9V3lZQjO8rM4/JlCKPO7Ms+Fu3YNoAelXDVRvTILalVa2+NFXc?= =?iso-8859-1?Q?klVnVdkbg27JcAYw+4ki0lpIa310Go5OrZBawy6bbzEXOno867nq61tF8C?= =?iso-8859-1?Q?+Mwbo+2/4muqIz1DZTu9NOxUZ37PltmyfOuC0lEJvqOezivYmghSg74bRE?= =?iso-8859-1?Q?INJunPWImR1M6O0DXpl04mgvNsXoHtsq1vLLNk4sUu21C61S4qMEirew5i?= =?iso-8859-1?Q?j54uojCzxrpXtHiBfgTU/Gz0FBciNgFBdaDaML9Y0+ptzyStdLWyQ4Bkgc?= =?iso-8859-1?Q?O4nKNKCHtO2gP8tjeBjkorhwsortDeursTflYDwPuaD8MVo8nxtDhWvYS9?= =?iso-8859-1?Q?iPE+lfwNV8U3BX8Ct77jx45lxZooEFNHRh5pq4DDHU3SmeTYlewnOdvc3/?= =?iso-8859-1?Q?hSbmB17aMAt+317uGrbH/peUCXJrYxHOMLdrfVDE1On+wkjhSBjWw54Lqt?= =?iso-8859-1?Q?WIwGdL7Xv1gPv1avCxEcKRKxjY1xJZzJIweZNTuiuHnAkH5bnMeuB0TBsl?= =?iso-8859-1?Q?gwcepWxfPHHSV4tmQpsX6T6sQioS0DHoI0IE9+dlxN86Em0dx45Q5fJSPi?= =?iso-8859-1?Q?dEDQwMB9lqyHXngDt6ANyeHky8VlTJRMG3A0AL8dyrI68nycxA8fj39o4K?= =?iso-8859-1?Q?B/e5K0rvn6MZjMv7sHxEyxz4Fpyns6QnOK9QRGx7amxofrCAXVfCJ5aEWL?= =?iso-8859-1?Q?2WNy6MOzZA07UU4A3RMVmAJTJvOJKpGvgxeDHAHZF5myDYiKgex0GV5Mgl?= =?iso-8859-1?Q?IlhNTlNkYczLDw/1Zztb52uwb5JUCjOUyT0o3KsVg2gfdM4lXvdV2bNqd3?= =?iso-8859-1?Q?W+hEc9iK4/k4VBfrnKgJnT+2mPl8SGvepUYuVkOPVoaxbYsg7nOIchJc2x?= =?iso-8859-1?Q?PN4FhJ2NvPGch4ODo1gRokVPdSKqbuya4a8q1n7CLa7rFAbdDA0bataVG5?= =?iso-8859-1?Q?FJnx+cwBTcAa6Lwu7fukh2J/uSkbYNm2f5d/bwEsBk7qk4lw4/5Acr6HUZ?= =?iso-8859-1?Q?FSu9ME38xVTLBYfFtYXX8/ODNbIEvrlxeaBS0cPN7qHjTFT5JXoAsNOL0U?= =?iso-8859-1?Q?+bIQHzP5Eyhl2sr/FuW3WJ5y7+JgPz2759LBb3IiZRuEvwzwzyANXHuyqu?= =?iso-8859-1?Q?KMcYhbcFnf1WnL53de6K25UaVXUskPtE3mk+PdrIDmy6WWwUY33/yvlY7o?= =?iso-8859-1?Q?eV/pjEvKCqBqyBoNJrt1JT/p/m7dV81Ovnm63aLR9z3ruaCuL3zR+/IJue?= =?iso-8859-1?Q?fK3oZRDMJamLLEmu8/vffaN3DD8flJnq6Psu4Nw0An15P2ppSb1cgMdx/p?= =?iso-8859-1?Q?w2trvtIN3prvvecjKzEH+XFStbPN20tRFHPI8iP0s7D3Qs4joJsDwGPsK2?= =?iso-8859-1?Q?89+cSBg+850G6z09SLR3YmGr476vYvH5yz2QbybHefle2knySDhT4JRE5+?= =?iso-8859-1?Q?8dqviRP+bqn0AU5GyGgqW2xC/Bei5ySVTyuryYuQC4XhvpBxpFPPMB73It?= =?iso-8859-1?Q?kG0IiRpFGcYLF4R90bsJtRCwrQ0gJLdilgmku/eekQ0vfQiyhT6OI9+pgs?= =?iso-8859-1?Q?Roe9480=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?YfdPYYnaPKImA87Sk9vofi0DUqJ4pDqlSDNdxx+LBr5ZnOr22+yne4EckU?= =?iso-8859-1?Q?Y+YaOfCDUXgf8x2KoMiVNlRK7W6QBdZvs+7xgQ0Cfxvod98h2WauoKsnuW?= =?iso-8859-1?Q?2oXFbdukW6LxhQR/WBk+QSkXKVUslK1Rsj1eXL1pDCRdXfE7pO0tzE9eOU?= =?iso-8859-1?Q?gNCWFYFvLeSYJz5lOpbFV1j4FiFhMWRNLfftuUjShQg6otCLODzVdRItup?= =?iso-8859-1?Q?TfgupQyq+ycbz/22IVUdB7MGq1Va/Po1tV2KovudnsuuiRGMzVR3Ii1naN?= =?iso-8859-1?Q?NHGmcvXL77hnbdThz35K1LoPGrxRXyw3o8eJ+eOhefCQKEqS0LNyegDDBp?= =?iso-8859-1?Q?xnkgLtv0d2yGE6WEhVo/mWooiYqte7SzRdlUOpwD/CUmy2ZUqSzfUmn7gr?= =?iso-8859-1?Q?lbm/TyDD48tKfhQtaYSkYrcjqRUiqEyZIw5xl6OEVKsrM1ixC3PvQw3ZYH?= =?iso-8859-1?Q?8FBBynWtrz+wENh8CJ5Ggz0ngEv6Nfz1RYjhyLwxGlUMYELmb1+IF4qP7X?= =?iso-8859-1?Q?vBnsCJXR2LyQsFsH/CTMzBL+2IxqoDLt0jJM0hqSF5iG+fH5b0Sszyfrpq?= =?iso-8859-1?Q?NPArXnkbWqXzOwKd4BzMflG2aGxIIw5+oYKFy5aXkPBMGgxFWtVbLDZH65?= =?iso-8859-1?Q?v2KJyq94VQszgE/ai0wlSVYFKZhNqytwvAa5DRatejlTE1wsrm/qXhK+ue?= =?iso-8859-1?Q?EP9AkJcc7yfr9fl9hJpRe9jIJ53XA7sdZpxPiO5YjGjZgAd8JXIsth4joo?= =?iso-8859-1?Q?a9EZuWrfR0HE2goMn+RAigPE0s72msy+Pr6UAPBUPdt8J7mCt4MpHF3IHM?= =?iso-8859-1?Q?5ak5Ks5ad7Glbi6yt+Gz/MCOGAnF2m0L4r4CctC4Rf3PXlm9zqv+tRQvBj?= =?iso-8859-1?Q?+YJcDdyszvwXmpS5swobkOTLaayG657xjKME2lK/IniA0KzckcQDf14x81?= =?iso-8859-1?Q?TcUdjSCJ5UBOSU310DkdiosbVdRHbD5NFZW4Vya8jZ6I4KY5Fj9xc01Fre?= =?iso-8859-1?Q?YcD+raXsv15/9oJ6vnw3P0va5s5RcPZuT52cTuwQR/L49aOQDm30rIwCN8?= =?iso-8859-1?Q?322fstQSRIia1nY6fujpDgglDlJX/8bAnNCj2VF5C+zufAc5D/wbaH/6Rt?= =?iso-8859-1?Q?BzGF+0hH8PZq9wAHDCfoF7fWfxQ4nxNlqutDKYi9q2pG+QycNexXq/QTsU?= =?iso-8859-1?Q?lzY365CLoA2r9hcV3+vuBJG7XrxEHXQH2y0e2mKqEhtGU6Sg0U6tAXkiXX?= =?iso-8859-1?Q?smp5zStcFXupo88JoDECZt1RvCH9e7f+8cNCXSULpwsY37XXJifEUDDE8X?= =?iso-8859-1?Q?6wHBayKlKzqELOwZshdAn0VB9TT0f2pm1lGKG3K3Ub6BSiaFZKQPOMQyCa?= =?iso-8859-1?Q?sblmRT5o54UzPlagujWvMVnG30ncSEkwadDS6sE4DwC+VNk793S5Sl8Ijg?= =?iso-8859-1?Q?/zaClTllvIA49BXbYrEwhmNc4NLJivOSBFxxoRurik0bf6sQ7ivlE056z1?= =?iso-8859-1?Q?XMnuuKXeXTjENMGpNc+fKpC8oNM4LObwj5x5IQGlC5i3YGn29JvpSr7zzC?= =?iso-8859-1?Q?RKBUpLX9xFGYH1BtBv8MHBeLaIKDvGa2fVzsM6EacEh3F/Q54d5bj2GoWI?= =?iso-8859-1?Q?RWS0inxIQOEodaggVuzGFTrnDDzb73QBMPRysYTR1KgfoaGJG3rGwlNJGj?= =?iso-8859-1?Q?AjEtDwlZ9ibIH6jJ6Y8=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4cc1588c-7005-4db4-a6a9-08dd976e9809 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:19:00.8916 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tbDawwJgsWVDvSd3qBTsm3dykR+ahtF/4bR6dcaxd3QtQj53n9/6MM9sT8a94sODgwfvE3CsrULbMmB8mFAaUS1VyWCInWJmur5jpQAhgsvW8+mGvnJrul67UffePOOj X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB6388 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725635986116600 Content-Type: text/plain; charset="utf-8" This will help developers of ATS-capable devices to track a state. Signed-off-by: Clement Mathieu--Drif --- include/system/memory.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/system/memory.h b/include/system/memory.h index fbbf4cf911..fc35a0dcad 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -183,6 +183,7 @@ struct IOMMUNotifier { hwaddr start; hwaddr end; int iommu_idx; + void *opaque; QLIST_ENTRY(IOMMUNotifier) node; }; typedef struct IOMMUNotifier IOMMUNotifier; --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725652; cv=pass; d=zohomail.com; s=zohoarc; b=VZ+IkeF97+mrDnnfjMy5BfhPSAZHNlKLZupKqr/RGPDysaIvNx5OpPWQuoeznAa6pH1RQxDHicshr+i5wvhZx/LteqsFpBxyCVfi2Hmwdgl5dCz1AHW9W5ukz6AzeKuHGcrdmZoFw+YiM6ycGn72SD5gDx82BKqLqQM3o2AvAGQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725652; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ccd9WNN2RekrlLPOimMvN0jQBmypIiE9bh/93osorek=; b=eaHFgiPUoCvwdafHeE3orpshK8AOR7XuoyAgUA+kLx8LRK5f7+VaagfUogcVE6xUXgVseydrRgkD3SbK/3CbvpMnAGLhkByJWtG4G0gk7NEciMkbdzA2tuKOyVKFy/2cjOfYx+XEy6j2wQTZQzoqrDp2UGNNVgI4g6fQg7Yt3lM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725652626517.8106060394971; Tue, 20 May 2025 00:20:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFl-00018m-I9; Tue, 20 May 2025 03:19:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFk-00018d-Gw for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:08 -0400 Received: from smarthost3.eviden.com ([80.78.11.84]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFi-00027W-Gy for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:08 -0400 Received: from mail-am6eur05on2078.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.78]) by smarthost3.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:03 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM0PR07MB6388.eurprd07.prod.outlook.com (2603:10a6:20b:157::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:19:02 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:19:01 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725546; x=1779261546; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Czf/q5q5Ywv0gFlffuweTfPAr990Xvortqu4IEIiO2s=; b=hkoSSZzQCb6lgrQVi9IbO8yaf9le5eq2GxMUTlQWXseCRc3PQDcKQwz5 P5N3oJ2JrhzPucP3jFWfUldWpnKFJWxZKMlyLzATCpKRNmltI+Y2LW5rI AcugnR/pI+/DQeymBeZnfXwjJ7f7mMeZWY50ft4atkJQxp5iuy2zkwR/5 biWYr1N4vY9WJS/SNVQjEgovQgeKIvg9gLR8448YHjCloCH/lohW++7fi LULo30DfsYFJpUp2f1MAWiuy1ps44Kp6jxv5eaxucfvjIPxO3490MPp/m sWsAChAaojMTw7FcY4U01vg4zDc50uIvIbqiyrtTW1R6wQhXbKwSyXUec g==; X-CSE-ConnectionGUID: J93k6qNuS/m8TxW0oaKHlA== X-CSE-MsgGUID: 6CLShqEoTtODA1AvnxLCnw== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37190743" X-MGA-submission: =?us-ascii?q?MDGozPGirG3S6jvNb2dMsmWjcmxZ2JWBSqxk7n?= =?us-ascii?q?QqGZ7d8f5+CafcYwtF6J+32ZLBcwbY4nOYXNqmRTmqbOQOMypIIIdPFd?= =?us-ascii?q?yPvw1ysRSSYGuIjawPDMNrxnbkiGeDRjJ8ohEm9aOclPqcRXJkpDKn3I?= =?us-ascii?q?hv3I5HK3jUDUBKVnqhY3Mvbw=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=H4BuNzpueKu5n1RFctyr+v7Etw5ylMkA/R5F6FPWvfWtn6vHBxkox3Vff5Is+AWF5rQJdu99Y8/dSQCJm6KXTyEuLlrUZ7kmtCt5UFieOvFX5JtGh0//jq+ajHjcia5O8uk8gQPeY8mXfbT32shx/Acgpl7kevqQ/HYLQB6P2ClBIOOKa0OPmgPpuTbDg4qZN3ha9ffX0hcX1MaC/HTUUdD+cAsK8cNT4AaBZ52TF1PSx1z+jNfyoIx22sQ1XEKbnzBDrbma3lzLfTkxHuOPeARBH3h07Uz2qx70n9OH1dIXaOYcJwKjZ/h3LC6KmbriLqNT3D30+/n3gAPUplYvkQ== 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=ccd9WNN2RekrlLPOimMvN0jQBmypIiE9bh/93osorek=; b=R/RZhQteczfdGGY7ULHa/SaIYLRCGWStvqg0V1crxTRgG41UvyayHaZnI/LUMQlELXBGiJzvzSHu1dMV/U8LW/66CYAjh+VFFaESxM1qmKXgGt/xAyG0PXWI7m5hJemjvDkeMcf8s5fgty2fgggQ5bCrkT4gJhKux87ZSyNgVDwM0UV0hEjBUfXiqqbVkYLGzxLVJi3q0oh6bcx9JipIKvLIXvYS5RzUNe67vbC8zcXV3Gj8V+VaEMlsnu5TrthIVmNc8FRzsciUvTQqOI/xXqANVGxvQCvRkjHZFAS3R+8pmN4Kq13sCmJwX3epJIlvn0R0+xocp9nmbUX008igBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ccd9WNN2RekrlLPOimMvN0jQBmypIiE9bh/93osorek=; b=WQ8AlxOd1kibrYA0gsXY16NXqYlvBwl6yP33b5GsIZrw6ZeZISeKKbJufhFj82wWUEmntCJzwLih9qlGKxBHu3kXiQ6t+Xr0igmTbShlFzj+3jG2Dg7gUyo/aibmyVVPBrMEu4bL1VjpOfG8COE6vMQVQpDwgOuKaTaw0s6CyUqzU6IkyFeMPh/tIg7C1Gv0zaOODVMEr/d0w9g8s3fyZqzEp4wnStp1S4+t2nx7SEGMS4m8ncZsRjxBZ5ner6u+zXCzFv2xcSu5F/RPcf7JETcDX9hkr1V9DWkxz20n+TxU7Jb4I6KPtvFJazv90fMzk+J+cNCxce4aIJJi7RuL2g== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF Subject: [PATCH 09/11] pci: Add a pci-level initialization function for IOMMU notifiers Thread-Topic: [PATCH 09/11] pci: Add a pci-level initialization function for IOMMU notifiers Thread-Index: AQHbyVd2L9vUD5WrZkKPGjG6r0jKuA== Date: Tue, 20 May 2025 07:19:01 +0000 Message-ID: <20250520071823.764266-10-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM0PR07MB6388:EE_ x-ms-office365-filtering-correlation-id: 190636e7-b44e-420f-3d8b-08dd976e98a2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?XuPjnvONuvadLWGLGHMnu5sp+n+OVCXND90mc/cwMf8Li3XfCwZU/vl+zH?= =?iso-8859-1?Q?qeE/PmVFR0lDyZlZrME050wN7KAHS42m89IVo0orp5VAmCJG2DDXk2GP9P?= =?iso-8859-1?Q?qh4tGu8EcqnrEG84zy4jaIofE3s62cG4IVfA7Fve5Zc7HhzSijqmfHu29s?= =?iso-8859-1?Q?cPftdRRyMkAlcmCALxQ1xHSAruWLpGBl01jZfTuzPoTeeSI+1BSbrspPVP?= =?iso-8859-1?Q?IyFbScod2em7SDnbeI2k7oL4+JEc8ebclRjCBiJXG2Zl0wakfPAUiwNGlS?= =?iso-8859-1?Q?17anBRWYKwhBydeGbRvhmlkWKhlvIWusvpSD7VNn/EF0yP2Xv11QeAlSgD?= =?iso-8859-1?Q?j5IicNbsl8TUVvAR+X2/TPqRG81ywYH+gcw19ZHz/J4JbTCyblODvRSR2+?= =?iso-8859-1?Q?mCxOL0fBXa2rawcDQ33neN67m56i0olkPlAiTE/fAVgiaqOWyPQRblOAV+?= =?iso-8859-1?Q?b+QMvuCGSCwjOd3ZIsczJkCTl842Udlj6Axo63Vh+qlaxxy6lmxmzIO6J9?= =?iso-8859-1?Q?VJTrvpkaNWZmjkmFfGOqwfdE2iuN/VHREWqKeyOVMXuzGZtfV+taMuZ0N8?= =?iso-8859-1?Q?w+GVdgCvSiDKHGlF1AVM+oNcldqwRreBxbuqRAiNYpA2EZSPb7PR0MAoGy?= =?iso-8859-1?Q?/5oqfeloC9//GGWe5wT/s6cZrYdew35IA2ggX90KsE+tnhoMXpyHdD+Qfy?= =?iso-8859-1?Q?XeHurf3N2EzVG7Lyh7TeekiO3sSN6kWHUpNOa8mD6vNZ4J3DqRPqjgz295?= =?iso-8859-1?Q?vPprD3PINK3LF/o3Ii+y8wpd3sb42a0Q4YjYdUf/YzwBpTwBAHcb4wIoBi?= =?iso-8859-1?Q?OhqGvHB5b7XRglLhYlvDoh9zQzRSsMNnqaw2B42wyp1zzrsJI9lftAF0BE?= =?iso-8859-1?Q?1dyRK3JlXMQwhYPaj8IDLEPRALmGZdamvl6/ibmD4Bu+VAX6rDNCn6ydvW?= =?iso-8859-1?Q?CCbgVsEMaRL5aFipkThRV5k34CLbfOo357jU0LD+7BYqNBtlGsc7NVSN5Q?= =?iso-8859-1?Q?VOlrbxwCxsa3Yyq7pRgNlYESh8o/C2YttbjOJzWIzTH3meUfncK39M5DkK?= =?iso-8859-1?Q?c4N4pjxZoUQkH67G8DA+0SJi4XiamKBKQ8MFKUswHXjPe2lbveXOl1ElxH?= =?iso-8859-1?Q?IvOPRVgXhsvFmm3198kwBmWLfYV9sAlY+DTl1HV/xzAYaydn2Or8SLgBBE?= =?iso-8859-1?Q?wPs23tvjx4UrvNPK9z7rC8MR+2BQ4J/ENtI4HoOuRC3f7wNmYYptQA9I9f?= =?iso-8859-1?Q?ucyNW53vrOd6z7EbgzgLkheXH1Y8Kw8QM6UIyHsAsTqihl7Aqvbhg2+EJ5?= =?iso-8859-1?Q?410aq+nPymh8SRpvVqjp7w+sKM9W9oThyZ5A2/Nl+s1Ci/OPYEoNOfdSrt?= =?iso-8859-1?Q?2Pd4BVxhHR/bXQ5fFBSRyoKCEocvp6wyaqfTfp/Z5J69Rk2a41AfPtWuvl?= =?iso-8859-1?Q?UGvxcOP0zg8LGFr8V28avDXGDpIVala23dhA8XLEAkApx8w78VpEypzPel?= =?iso-8859-1?Q?SHpMyh6SoNgPWKgwbRUb0BnBZdGQg2HemZDBLJ/ABNP8A255LYazK1VE3U?= =?iso-8859-1?Q?GZpAKeU=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?kztIeEZNfK7Oerzm7JFu05MDvS0yh2ztPU/Skf3R9+qFKJ67QnXg/rcLsA?= =?iso-8859-1?Q?a/AQIThtVk8MyBU0mGGF1Wo9qVJXSOXUxilpxA2n7Skkc6nbGD8tBJfn3h?= =?iso-8859-1?Q?xyzB9OwQe+XY/sgqc6yr/JD9BsKQVm+F0ihAmMXHPlvtMOuVQJTWYb2GS3?= =?iso-8859-1?Q?hTOZegKx69SoebucPZ7A00tsbSqqwnFMMUea0RI2fwsUtmBxCSRz1rkFnY?= =?iso-8859-1?Q?fmkU6rVKua3hbRJ8KjXH9JTjmq8u2goERHQky6y/Tq1aKyya9s97E+0wfD?= =?iso-8859-1?Q?mtdYwVwXuaZT+LByw2EVxzfptNLyEDJRHjb+UrCuLjsfWpTUN3AJzJmW5f?= =?iso-8859-1?Q?azinNIw5uqO/+zVHAAlty1pLQKF5DHbPan6qu+hZbOXgPejJ2gTJN2sdX6?= =?iso-8859-1?Q?bytVWfV68QTOXRh/niK5J4ItB87hrNp/BXhyPphRcxcK4AvnXGmzwfvYrP?= =?iso-8859-1?Q?Ep6pOLIiA5DojnaTrcaMrBIf0XzD9DY65Py9EcmybjqqGXk6jgsXUHQ0Ho?= =?iso-8859-1?Q?xwGxzQDlJOdH5oIUEBsqo5RZ/mZenGeKKdve4MBFaH2w4Ukw6c6YyAAk26?= =?iso-8859-1?Q?uHEise9+OyWz0079be3ytiwHTDwnPi7a+CWXfD+lsELEf8Uskxvn1Wj4HQ?= =?iso-8859-1?Q?sFzZ9af4xpO4y4inZcSriJitjGbtPobt37FJNOm7WsAMWZ+qgfroEAZIpw?= =?iso-8859-1?Q?+eU9SrDdg0/USTH5veVSUFK2wLkOWjJoNiDmjzgWsbKsSqeBp/9w3gSeYF?= =?iso-8859-1?Q?xPLyWIykZL/sr3/f7qI96IPtJGa6ei1KxhVZ40r5hKvm7EzAHVu1+QWXut?= =?iso-8859-1?Q?ArxWsEzqXl+Bb3LQ//IgfEmj5Y23jBYt708VWv/qQ1c26zpnNhjr1zEoHK?= =?iso-8859-1?Q?pNni7jw9PIMQ8nvz7F4X5KKLCOtLiN+ZtUL/eH/DkkFf3QZkNsXDs4Cnw5?= =?iso-8859-1?Q?IYoPYxjr1MS0MoBZVTDvRsMdFRB4d1jK6LTrwfe6YejZ4UF2XnYT83oeWJ?= =?iso-8859-1?Q?wF7RMWAIejs0N1AUSP2/ezn+I0V8P4jhi+2jATyg2fpB9u/LEGWiutTBcX?= =?iso-8859-1?Q?ziXrZzoAXSbMJXs3eVAaS/QOCMycAOeXFuOVTnXLveUuVhPVabLoE6FB9j?= =?iso-8859-1?Q?0GoP0XSRsxFBLstbmmlxu1MOg8OxPLsF2auS7jVm6LC8frz0FIC2FoJfGs?= =?iso-8859-1?Q?8IFCYvo334XCSkfP6LgOvBSVegYPbi3LfZNV/q6bABQkiEL9uWYB2RiBBY?= =?iso-8859-1?Q?5s1w5yLzlNFkYRVgGGMniPCac2ClRQPiIET1kwaDlrPujlgyygAWOKdQpL?= =?iso-8859-1?Q?AxCq/uz0QPBGeLHDvnfdkolIiaSvabFe5Nr21Si1oa5F/koOUte5M/Zb3w?= =?iso-8859-1?Q?Am/MWqEiaLX+hc34uzmNbYyIh+8OG8KB1DsFJvLMTcPSxCZhVYmetR9s5E?= =?iso-8859-1?Q?bu8VqaRkgZflcGR+7RAzCqWssQY2c1mdEEQOE40aytxQg5rMPYFZZj0P2L?= =?iso-8859-1?Q?bo7LKCHLsraz6wfwC801QR2R3W2v3QFaPsUs2oJiFDR0TWqha7jRkV4toB?= =?iso-8859-1?Q?TwEl/rggLFqS9W6Js6hsVhbGiehED2w00PGCOrUJS9T57cIqJPWBTWYnRP?= =?iso-8859-1?Q?3JPR3JNLS6XTIiSEXxcRCuaPBumDb+E7/teTZzsoEwLuLSIw+KcL90USTV?= =?iso-8859-1?Q?OanblRYsHQouajMLYis=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 190636e7-b44e-420f-3d8b-08dd976e98a2 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:19:01.9242 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ssj0MMhzkQyUHwRAmxVaSkN20EN+9SG4Y+u6QnBxDxd9GS6GExol7oy5xcKvjWJiPVjdF/ex44lqG6r+7ApBSQeAjf+/Kggro8fUn2li7FOJXg1R3jTUpDGLHBrww8YU X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB6388 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.84; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost3.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725653920116600 Content-Type: text/plain; charset="utf-8" This is meant to be used by ATS-capable devices. Signed-off-by: Clement Mathieu--Drif --- hw/pci/pci.c | 17 +++++++++++++++++ include/hw/pci/pci.h | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index fc4954ac81..dfa5a0259e 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2939,6 +2939,23 @@ AddressSpace *pci_device_iommu_address_space(PCIDevi= ce *dev) return &address_space_memory; } =20 +int pci_iommu_init_iotlb_notifier(PCIDevice *dev, IOMMUNotifier *n, + IOMMUNotify fn, void *opaque) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->init_iotlb_notifier) { + iommu_bus->iommu_ops->init_iotlb_notifier(bus, iommu_bus->iommu_op= aque, + devfn, n, fn, opaque); + return 0; + } + + return -ENODEV; +} + bool pci_device_set_iommu_device(PCIDevice *dev, HostIOMMUDevice *hiod, Error **errp) { diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index d67ffe12db..f3016fd76f 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -442,6 +442,26 @@ typedef struct PCIIOMMUOps { */ void (*get_iotlb_info)(void *opaque, uint8_t *addr_width, uint32_t *min_page_size); + /** + * @init_iotlb_notifier: initialize an IOMMU notifier. + * + * Optional callback. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @n: the notifier to be initialized. + * + * @fn: the callback to be installed. + * + * @user_opaque: a user pointer that can be used to track a state. + */ + void (*init_iotlb_notifier)(PCIBus *bus, void *opaque, int devfn, + IOMMUNotifier *n, IOMMUNotify fn, + void *user_opaque); } PCIIOMMUOps; =20 AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); @@ -462,6 +482,19 @@ void pci_device_unset_iommu_device(PCIDevice *dev); int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *addr_width, uint32_t *min_page_size); =20 +/** + * pci_iommu_init_iotlb_notifier: initialize an IOMMU notifier. + * + * This function is used by devices before registering an IOTLB notifier. + * + * @dev: the device. + * @n: the notifier to be initialized. + * @fn: the callback to be installed. + * @opaque: a user pointer that can be used to track a state. + */ +int pci_iommu_init_iotlb_notifier(PCIDevice *dev, IOMMUNotifier *n, + IOMMUNotify fn, void *opaque); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725648; cv=pass; d=zohomail.com; s=zohoarc; b=WumT3nV0quMlBQd7jRtgi76UN2Ckvez+ZsvqCmxM8EwlfUjrRaXzyIEpUyNe1Z4qbjSqP/1KMRPw37C4aVkCgH1+skQsf2D/EntQeAN/c68jkCtfcmlY2QpRDuCecsxDMserq1X7/BTh0866qWrOQDcG96+oz99kUc/OTXkT8+I= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725648; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+iehUthu5ABCNfiNWwQFgmW9GoRKagJzJWP2GY4A+Fk=; b=n+HwpHN9arbsd5vXC98psC9tkdav6u1VSuqzaeyitjeWmJlR/eIucBIxgKmd0n0KbRLuMsMMyqKIOjBubOS0XsrgWhmN1E+zN9jbmNm7ciVRCQPLvm6+7yxe1OQSr2DK0OOrdT68nMSDbWqBgp7VBZJVfExjaztfe1TZSRuIJtQ= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725647988528.2861325779648; Tue, 20 May 2025 00:20:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFo-00019y-C0; Tue, 20 May 2025 03:19:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFm-000198-9u for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:10 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFi-00027n-Mt for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:09 -0400 Received: from mail-am6eur05on2060.outbound.protection.outlook.com (HELO EUR05-AM6-obe.outbound.protection.outlook.com) ([40.107.22.60]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:04 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AM0PR07MB6388.eurprd07.prod.outlook.com (2603:10a6:20b:157::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.31; Tue, 20 May 2025 07:19:03 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:19:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725547; x=1779261547; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=guVsT7eOG7yNmgi4x5fNqYuhhS1067AvzcSP7XFDAb4=; b=Yq44Jf2M6PJZKtlNu4TvdRwru14c7kKTSq+Yha0f5AY5joJpCPoIDXwu mjhnJd2wMR+G+Or8lOmLhZ7/XY7xj8FfCWHq1jhgGcQYLQbzftfESxRlv npt4HLFBnZW5A32jp86mrboR2y+8lga4Nf/tHNBw1ImacHLoUPS+M8jJi p4ZumS3A2obAUymPQszXP2qhrgGu28zkbp3cackICXaf2TBTIEsZ6BuVc R93bLRVgizEZObSxWmr9nb3BsZeQ325Ti7e3MFNo2Stg7jENnSntFc+a6 tGpgfAKPMo6Fb2uP0R0Mtlchrmou9NEQS+89AWV6kffVtkVjWOPECFpIF Q==; X-CSE-ConnectionGUID: eLtyC3XsTp+eoSuc/AlEGQ== X-CSE-MsgGUID: kIC7/IINTd+C1yP97w994g== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37191610" X-MGA-submission: =?us-ascii?q?MDF35LrAw1eDkExWspk5Cpir0tSNgMwtaFY6Jv?= =?us-ascii?q?SJ+yulkCyip+CxbTE8smPpq1WqyXvKT1KMsD9mZjGSA9DPkgKPP68JOD?= =?us-ascii?q?W/oAM7g7akoMaDadbZNzsA/ZMA/SXHrvw19CS0V+gl6wtU+IXswwuSo+?= =?us-ascii?q?VR6twlg7Wo834p5Rg4JnFcGg=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gwG8AMn7gI51F9BW1E4XenrXK7btZZ7Nt+sF7DwqRhscFYBtWK4QkTuqy9CSbjj3IWCwpo5ZdDwWfC82JtQDgm0MSjU5W1AfyryCDMlw0tWhQmfAz0JCTVmU69uD3aIc46r3g+gqUdur1u1JG/udXp2oNv7ie0I0VBVsqWMaxresjT1vaTJM981DUP+cDWz9VU6XBSKNrHpyGVGT4/Mf5Ha3RM+bW5vugX1rgxr1rA4LyYxiGHdjTyGZpiY2zdY+/t193Z1eFiHv4FQJG+CuSE6y8Hfrq+3/2TERsGvn+ETFWF5sA7xzuHGVMXbBIP2pAt+R63GsOz/vJwDadsxFxw== 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=+iehUthu5ABCNfiNWwQFgmW9GoRKagJzJWP2GY4A+Fk=; b=o/b1FHDlT53gzfP4YovjWmrcFJmvTmL6eRs6eHtc8q2aIcPxEuB4SQDToascoZbr1y1+tXl/Mky+LPzFYnjalAJtcOiIjQ18jxIMlDrD9Lh+mG3DI/Mf/D24xEpuSEK0tczh+cMiRfW21g06PD5JtsmIArZJrvt8Gdsc75tdMm6/7grQ4JXK29bwaZdjRpPS4Q6uTGycupd7+Bne8lx2Hb2Kh1r/8Bddj8cRSfje9rBo6FnI1dfxvdXxMQBcKVdfEkVYHro47vgM6PKO9U9Hgo2nJoMtJonAX8Eg5tLjAFWsXiJrvPIp58972Lq3VLrfNLtrtXV5twsRYyo1MBAGWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+iehUthu5ABCNfiNWwQFgmW9GoRKagJzJWP2GY4A+Fk=; b=aDKi8Ur9VctTH9YI0iHtVM2VP+NPgGEdf6MUjZfuT3g5OVGtdRtD9So5Xapd6ToMJ/cH4L2laj3i+yQvilEGyrdRLOa4tFofzS/GWGm3G0h1O3Fn2x4fwNNo4Ho4NNGpQO6nFF1ifhrgKjOTe12b1d5FzlZQLfETYqOL/VlzSupC0f6Xq5f+REm8klQrRGCxBnh6sxtDhWvZ3gt9KR/N4U61HspQPLkavMHT7qQRNRinJR71KgLw+Q8vaDobQS2dedtc3YJW0qvdlJLfcgXZgLwPnP+wPHIo4flSh/oX3wpCe0fKoqqN9Nudgo3FrmKS+qEOiuWFEmOq2sF/XDEJQA== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF , Ethan MILON Subject: [PATCH 10/11] pci: Add a pci-level API for ATS Thread-Topic: [PATCH 10/11] pci: Add a pci-level API for ATS Thread-Index: AQHbyVd2fPtPmqDEU0a8DUSn0WW9+Q== Date: Tue, 20 May 2025 07:19:03 +0000 Message-ID: <20250520071823.764266-11-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AM0PR07MB6388:EE_ x-ms-office365-filtering-correlation-id: 24f62858-18b3-430c-80b1-08dd976e9957 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?rYYhknFzr4VvBPU9EO3mia5WOtNW31+WwyAbZH82l2ycXDB6HDM4N/afPB?= =?iso-8859-1?Q?zGfy5DKv7nH9pj7+/wFUCJG+oLlfj5lAHNtDOXuG+49jMGSin5dl5a6xNm?= =?iso-8859-1?Q?Htsyk1OA4ci6Nxysmk5wbRtMEliHupM4BFOmNzhBnYY7n929s2uOp+WayH?= =?iso-8859-1?Q?qZFXDmWneSgnm3M0zvDy2ktq8f1cIjE1T1otX6ErD3z48xmef19cOF8+mU?= =?iso-8859-1?Q?J64ZP0XZNijxGiVx8aQaVjgpJJOaHS1BbXUPzzSvQqwrG7CkRcJUwIIfwH?= =?iso-8859-1?Q?sh6/DWekmqwIuNJ236NoC48o00BSSVD/uXn3uCkYlrn3rcQfUyT5zbxt6g?= =?iso-8859-1?Q?ffDr+Tn/GPADDtUvq0hsPEEPPLNy36OVRSc+NNj0+xINXLNoRiFV14X0Vd?= =?iso-8859-1?Q?F32+IP5a1z4GEW+ZPoalKxDnZyJshhIobnl9Rz72ugxA2c0QkcD5Dv9Rv9?= =?iso-8859-1?Q?NqeZBgdaRZOmUKEVZI6ri4PmEAjZDmzWw+zM7980nqn+Fvl3mZby+iZQXh?= =?iso-8859-1?Q?HO5kMl7aIfQyVMQ+YShr/MwaoABz9o+WsFHQjJxKVUG+Faeg/fClOkQPkU?= =?iso-8859-1?Q?V17hXmFXxPZyTXDMnVyo1FGUixzDRQOue9dfWD4MjKWhxeVPKa+0KY++cM?= =?iso-8859-1?Q?U0NLciwhjByJekdGhlpI7y2wNTJL+XNEDL5+hWL36pZhMZ1FZPWEJQvRV8?= =?iso-8859-1?Q?o/h4W26Grfprpk+DE/yAVkv58vwSYy0Ny1ZADfD2HUK4qwEQuUlrLczgF2?= =?iso-8859-1?Q?z9NU+kdnKTf2JkrwX6eUsz3tU0dMendCyzBOfsdewuLEMAd4j0+vmPgR7K?= =?iso-8859-1?Q?BNUnJDxDMJde0QgWahhB271gsNJrCC569ucfNjy45gghaE7oSTtJtOJn7x?= =?iso-8859-1?Q?EwTUSgMv2OGeOdGLbzb4FCjmjlUXfx8pkjLNmYo747X1vvQAFnxJ+xj1Jo?= =?iso-8859-1?Q?6Jm+ik/g8aYS6duuh1R2LNxKiUoFCLqyBH24IW+GYWtyCk7a4cDoOkawNx?= =?iso-8859-1?Q?+XSYVrghScdRNHlC3TF0xfgzcwa2x15nY9Mb74mO/yLwP4zh/QMFryIavF?= =?iso-8859-1?Q?oZo5lcQfFf0jlbiJGd2reEt0DP5gXqUO8SJa18MOe+FOyJYQ0bkXNWntgq?= =?iso-8859-1?Q?tux4f8W4zOVHTe09y8PhbSSvBEg/lSjtXBBzTpBgOLZ46ouUOe84riV96N?= =?iso-8859-1?Q?cNU6fU6XFPJm3fRkJYOXztZOzSX8AAyPmz2CmYPWYKPTpM1pjfmGucCh/O?= =?iso-8859-1?Q?+Sm3dUbtR0BuZky5kG//x9EM7ENM+kA4/M09LO6u60Sv/JqIi08bhlYF8W?= =?iso-8859-1?Q?gy+AWFmgcag+bstc2iL2iktIaGgfRudXh564p0BmAhuqSFsiXDNAUQwX5c?= =?iso-8859-1?Q?fB+9rNHNRQwPXYLOBwUiVXSDSLh7vTuo9/VUSGsW/7hQ5fS7kp9IJF4P5S?= =?iso-8859-1?Q?JUfMkh6RTdlTmzF5EW1z2G8lI1SIRWuRM4epvVASq/UDUBcWuaY47Z/7u3?= =?iso-8859-1?Q?D0zDQGfehA8YnO0Tm1mqMybeehOIcx0BaCkF8ZgwMSjOIkl8IIgvLuiN3w?= =?iso-8859-1?Q?f40sMqc=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?3wNKdRSshZCIfTB+PPZ/CRYBSYR4VWYh34xUvpqQp2acMaByfMRGvJhEe1?= =?iso-8859-1?Q?ltyKLzMiFeGN2H9T6lJwd6yFFL/unECdgZzQqUGB3QFhr21x2a9TZyfRHa?= =?iso-8859-1?Q?xigCt8b2vw9wGnBVTQE8ciiHNmhJC85+DQ6YjkR18EyRkqN7suwlMtAd/s?= =?iso-8859-1?Q?aoyt9GmbQDYsRIFgXL/XL1P4EhcUKbUWldD3L5ilLXLYV/085u1CZ+QKav?= =?iso-8859-1?Q?l4v2KLRxPjdkQEny4rdWs8m9VFcu3nOUd93qBuLL7ONGxIi9JLiK0mh1W5?= =?iso-8859-1?Q?UhVDm2VvmnTFBlAc7VsV+7zqJEryKgPU2yqyzUJoJTY2aeG0OIqv6TdNXT?= =?iso-8859-1?Q?E5HYrWioNm6+VVho0kdWOeD+79tGRYVEzCy55p8N0npV+hRpuoqtIWpkiD?= =?iso-8859-1?Q?8/o+yCZvzGH3CrXE8RWyvlmWOy/NpXNog1t/4zKeqK/mjxmqXtIHOXDjCl?= =?iso-8859-1?Q?LL0qINHDKUv6PPbH8gHvdIP/cUkJAeX5g2px8eWsLW+Z7dTnnh1tzm7kAG?= =?iso-8859-1?Q?HDda7CAJsrn1do9RJHh2asA+JrFo88NvToL7Whj7qKjsi6Pm6d/gIf/TS5?= =?iso-8859-1?Q?deJe0akKysspJll6iE+NDPyEaff069rJZwmGANMC3PYqhk480dE6tBOOyJ?= =?iso-8859-1?Q?5/P5anRtoNUj7GXumrKEtGYY0oD7mLMhL1QdKYeRt2RUE2ZGhs52QDwGJe?= =?iso-8859-1?Q?dK2Pad7YGYNKPkb7cLS1M28lWdwNruK93JCyulOQ3a5t8LJPlJ6ppYbHN/?= =?iso-8859-1?Q?z8kW/smWPS6CD9sLV1O3mMVYJ7FjZDlXG2KoU2lLnw8uuBgCI/1F0bZlAR?= =?iso-8859-1?Q?3tOkjlAJ5LwuVbc3ypyljiGqcuclOctfeK0GXbiyLQ40dz9ka/s64pVA68?= =?iso-8859-1?Q?1/zMQZesK6yXwraA4wPAvK6d5hhuZ1WYIGjrjqUSxHbeF4FTnuO9QexXGe?= =?iso-8859-1?Q?HWHvVSrFhp2pykRoRU/jOXq6tV9mfVItY8VrT6YyTh1raVkZjW5evf2VuT?= =?iso-8859-1?Q?kCsSauhQ7ChX4G7pX007qur2wNGs4zFiJMzX+0G9zpDkZvYDdBhjLlSnEb?= =?iso-8859-1?Q?Z5Mx2JSXuVpvxcdc8VxJpY9IcXLCum6VzRNWSs4RB5PbS9smj6h80K+JwF?= =?iso-8859-1?Q?GyottULwpfgNv1PbX1uRnsV221wgNLhIDkBeqNMkwsKivQG+PPI84Izst5?= =?iso-8859-1?Q?LnK6deoyfqzB/xDVNuugkhN/BAZtNgwQXrsTvBCJOYOG52C4AqDok9zrnV?= =?iso-8859-1?Q?WNFd8emOqjGk1NZcv6X5I9Y6df0N/wtzl8upe8ueBMhp65IM3fLbQ/NVZd?= =?iso-8859-1?Q?MId/BnW9coxl1bly8rxeZOuEP4MlHuPZLDmbj1CAd+1PlmrsySNpVhhhBG?= =?iso-8859-1?Q?S0H1is8x/4j8It7tjqBmJRr7Mhpf4BxWXiHMCNSjEdOAF1nCmX/l5TpIHK?= =?iso-8859-1?Q?YBrZcuNyenbD2cg7PjvtkNKMmqF8mCi4AWxa3FgP1Iaudhu5JgTrWMRdYK?= =?iso-8859-1?Q?pb/RL8/1h2UtMv8C3igj9FO5n+L1tSf7GJRsApqu0plOlKt8c8nspnBKFs?= =?iso-8859-1?Q?KJfGfnBfd06JvT3sPoLmM9pR9BkQrqg71uL2PwkY1oZlA8TEbT2Ek7x+i7?= =?iso-8859-1?Q?ht5oZb/6ce4+YRatYqAP6zojOskjScrwERstmOCU37aiMial5BbwQwEajr?= =?iso-8859-1?Q?56hrz8OENznJYpKAlSs=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24f62858-18b3-430c-80b1-08dd976e9957 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:19:03.0693 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ef7IYVLDReaXxDIgLPGdMux6njBA9FUkSxamHJqCu9rqcJz22PGOvaACeMJ3ElyVfvj0q1k6ioTEIv4vaZ5DZRyf3v3HJcTOQycxQmZ5h6McFzfz/zikOFiL/u7HvTsB X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB6388 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725649903116600 Content-Type: text/plain; charset="utf-8" Devices implementing ATS can send translation requests using pci_ats_request_translation. The invalidation events are sent back to the device using the iommu notifier managed with pci_iommu_register_iotlb_notifier / pci_iommu_unregister_iotlb_notifier. Signed-off-by: Clement Mathieu--Drif Co-authored-by: Ethan Milon --- hw/pci/pci.c | 81 ++++++++++++++++++++++++++++ include/hw/pci/pci.h | 126 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 207 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index dfa5a0259e..0c63cb4bbe 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2987,6 +2987,87 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } =20 +ssize_t pci_ats_request_translation(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if (!dev->is_master || + ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev))) { + return -EPERM; + } + + if (result_length =3D=3D 0) { + return -ENOSPC; + } + + if (!pcie_ats_enabled(dev)) { + return -EPERM; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->ats_request_translation) { + return iommu_bus->iommu_ops->ats_request_translation(bus, + iommu_bus->iommu_opaq= ue, + devfn, pasid, priv_re= q, + exec_req, addr, lengt= h, + no_write, result, + result_length, err_co= unt); + } + + return -ENODEV; +} + +int pci_iommu_register_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev)) { + return -EPERM; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->register_iotlb_notifier) { + iommu_bus->iommu_ops->register_iotlb_notifier(bus, + iommu_bus->iommu_opaque, devfn, + pasid, n); + return 0; + } + + return -ENODEV; +} + +int pci_iommu_unregister_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev)) { + return -EPERM; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->unregister_iotlb_notifier) { + iommu_bus->iommu_ops->unregister_iotlb_notifier(bus, + iommu_bus->iommu_o= paque, + devfn, pasid, n); + return 0; + } + + return -ENODEV; +} + int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *addr_width, uint32_t *min_page_size) { diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index f3016fd76f..5d72607ed5 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -462,6 +462,80 @@ typedef struct PCIIOMMUOps { void (*init_iotlb_notifier)(PCIBus *bus, void *opaque, int devfn, IOMMUNotifier *n, IOMMUNotify fn, void *user_opaque); + /** + * @register_iotlb_notifier: setup an IOTLB invalidation notifier. + * + * Callback required if devices are allowed to cache translations. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to watch. + * + * @n: the notifier to register. + */ + void (*register_iotlb_notifier)(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, IOMMUNotifier *n); + /** + * @unregister_iotlb_notifier: remove an IOTLB invalidation notifier. + * + * Callback required if devices are allowed to cache translations. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to stop watching. + * + * @n: the notifier to unregister. + */ + void (*unregister_iotlb_notifier)(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, IOMMUNotifier *n); + /** + * @ats_request_translation: issue an ATS request. + * + * Callback required if devices are allowed to use the address + * translation service. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to use for the request. + * + * @priv_req: privileged mode bit (PASID TLP). + * + * @exec_req: execute request bit (PASID TLP). + * + * @addr: start address of the memory range to be translated. + * + * @length: length of the memory range in bytes. + * + * @no_write: request a read-only translation (if supported). + * + * @result: buffer in which the TLB entries will be stored. + * + * @result_length: result buffer length. + * + * @err_count: number of untranslated subregions. + * + * Returns: the number of translations stored in the result buffer, or + * -ENOMEM if the buffer is not large enough. + */ + ssize_t (*ats_request_translation)(PCIBus *bus, void *opaque, int devf= n, + uint32_t pasid, bool priv_req, + bool exec_req, hwaddr addr, + size_t length, bool no_write, + IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); } PCIIOMMUOps; =20 AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); @@ -495,6 +569,58 @@ int pci_iommu_get_iotlb_info(PCIDevice *dev, uint8_t *= addr_width, int pci_iommu_init_iotlb_notifier(PCIDevice *dev, IOMMUNotifier *n, IOMMUNotify fn, void *opaque); =20 +/** + * pci_ats_request_translation: perform an ATS request. + * + * Returns the number of translations stored in @result in case of success, + * a negative error code otherwise. + * -ENOMEM is returned when the result buffer is not large enough to store + * all the translations. + * + * @dev: the ATS-capable PCI device. + * @pasid: the pasid of the address space in which the translation will be= done. + * @priv_req: privileged mode bit (PASID TLP). + * @exec_req: execute request bit (PASID TLP). + * @addr: start address of the memory range to be translated. + * @length: length of the memory range in bytes. + * @no_write: request a read-only translation (if supported). + * @result: buffer in which the TLB entries will be stored. + * @result_length: result buffer length. + * @err_count: number of untranslated subregions. + */ +ssize_t pci_ats_request_translation(PCIDevice *dev, uint32_t pasid, + bool priv_req, bool exec_req, + hwaddr addr, size_t length, + bool no_write, IOMMUTLBEntry *result, + size_t result_length, + uint32_t *err_count); + +/** + * pci_iommu_register_iotlb_notifier: register a notifier for changes to + * IOMMU translation entries in a specific address space. + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to get notified. + * @pasid: the pasid of the address space to track. + * @n: the notifier to register. + */ +int pci_iommu_register_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + +/** + * pci_iommu_unregister_iotlb_notifier: unregister a notifier that has been + * registerd with pci_iommu_register_iotlb_notifier. + * + * Returns 0 on success, or a negative errno otherwise. + * + * @dev: the device that wants to stop notifications. + * @pasid: the pasid of the address space to stop tracking. + * @n: the notifier to unregister. + */ +int pci_iommu_unregister_iotlb_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUNotifier *n); + /** * pci_setup_iommu: Initialize specific IOMMU handlers for a PCIBus * --=20 2.49.0 From nobody Sat Nov 15 20:52:52 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass(p=reject dis=none) header.from=eviden.com ARC-Seal: i=2; a=rsa-sha256; t=1747725569; cv=pass; d=zohomail.com; s=zohoarc; b=NFe0XkmzQvOtu52Z4YYwYtuzsGK4QBt/feJDGcPwgGCdKncZibdYUKQzQd+z/B3seHtf4cS+UH1bzJaMJJ9wVZLAOFyT+ffg/Y7yT/NKqFm9x8dKSenNCfVTM8hAKuUL6T7/P3BkEkHFtRou2VUQpTsdazJ/MkVyejpgOTB1XhY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1747725569; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=etlIBLlGhKnGpYVwNbiRhrNY/m0YqqcE16zSPEghsTA=; b=K2CdOnrjy9fGEDF7jTgRTCN48CHz5aQ/wFGIrDofWjk+t6AbZ5DPp/VDgKuT/UmdK4lF8jAC/Kkqgdo+7JOOD+wzDzM2H176KGSOgaM8xykQgW+V4F+jX9/Uhm8MVT0SOC5ox1BlyUxh3SJXTcbIu1hN2lMD5o0nW23HYS2BM2s= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass header.i=@eviden.com; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=eviden.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1747725568750418.14133606074677; Tue, 20 May 2025 00:19:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uHHFo-0001A9-Gx; Tue, 20 May 2025 03:19:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFm-000199-AM for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:10 -0400 Received: from smarthost1.eviden.com ([80.78.11.82]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uHHFj-00028B-Ml for qemu-devel@nongnu.org; Tue, 20 May 2025 03:19:09 -0400 Received: from mail-northeuropeazon11013057.outbound.protection.outlook.com (HELO DUZPR83CU001.outbound.protection.outlook.com) ([52.101.67.57]) by smarthost1.eviden.com with ESMTP/TLS/TLS_AES_256_GCM_SHA384; 20 May 2025 09:19:06 +0200 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com (2603:10a6:20b:24b::7) by AS8PR07MB8102.eurprd07.prod.outlook.com (2603:10a6:20b:371::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8746.30; Tue, 20 May 2025 07:19:04 +0000 Received: from AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d]) by AM8PR07MB7602.eurprd07.prod.outlook.com ([fe80::fbd7:ca71:b636:6f9d%4]) with mapi id 15.20.8746.030; Tue, 20 May 2025 07:19:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=eviden.com; i=@eviden.com; q=dns/txt; s=mail; t=1747725548; x=1779261548; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ShJISvjMrZqtI4j33FDslHorDGP6GHL2m3QaVL6SxKg=; b=g+uzQbLflGpZSSL5Z7cdj7uS5fNgzkYWJxT3pWEBLhfQn2+bOvFNExGI M6w1yJn4RcxbLXDzdbeAmrE+W8vK0N+UF7yd9Za1gxI9/GInKZklbzR43 QTZPSGDYpTJzxAymbPFb2jT+owg+MSmHH3mLa5q7Y7XQxlrxbp8LNublu fwBwfJLY0K4mggs1wiJO/ofLyzJfze0LJpI491Rqs3UOH83p1kPqyiOTT 0E+BCIbvSJk+ZGYhUpQ9nnXEtse9cNKR5gVrb4F+dvxLkhPJ5YXFlqTA2 gnZKX7RfSFO5jX1mFC5uqb2Azpf77GhpF1clUi94suVqDxajIH8W/m1v4 A==; X-CSE-ConnectionGUID: u3Vd1TXXRZKcCOs5S9vCIQ== X-CSE-MsgGUID: yaNmwBsnStGESkPwBPoZAw== X-IronPort-AV: E=Sophos;i="6.15,302,1739833200"; d="scan'208";a="37191613" X-MGA-submission: =?us-ascii?q?MDFIDjux/Zky0NOFzihKsl390V4ARTHrQROBbm?= =?us-ascii?q?3v77S2C2QXb/yzthjWIaBPn7Kc3jd030AJuMnoJ59++ga6Bcapi9QyH5?= =?us-ascii?q?qAYk/dnWo6dMofbidbQRJZTVbUtF8o23LGkeg+4eFCk2ioElRgB4wANC?= =?us-ascii?q?+WcwLjgvWjmwVtupVCLGNU3w=3D=3D?= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UDHOEbIKzjW20wtqgJ2vmP4HGXCXmBEC2xs5lR0YYd8sZLyijotE/6e8bahlrj71ZJuUNXhZE/C+9RDNyK0czQ1u4/QZ6sDq6K84dVrE7de6JQuZxN9rF+UsB0X82DLTDmRAn/hOSOyd6w/Ubfp0ELvD4K+DpVsF8bt1++4cn52gNQP964aol90+QUJfLTXkGUGtL01EfCW0vMrYY0C1ISPV3aBea2zOhXEWEHFGoA8d2FOcMsvVq8ummyOHL91kiGOGi4yUMDFFGOibjGr0E/khHy7qnafqMr17SmnHhIRNnaHv2yz+Y+aWH3kfC9T/tUSmAzIJBZ8dstAwpxS1hQ== 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=etlIBLlGhKnGpYVwNbiRhrNY/m0YqqcE16zSPEghsTA=; b=Jp28FxWLDQHJ0/WYhaycRyOHGI5l69dMPVT3NdNLN68iIs1cOSaRxYGopME8Zr4ItgaqR8eyTU23ihIyD00X5dOU/BRrGXIhuuvUFgUSFdsbUSOLu2DFrgMR4XmTaaA5cUwZ9Hvk7j49wPN4TXW4MlpwR3jx1t6PPd8wFI2oisMsLgAcXI/3zg5q/wYwaXeB3xSxjMGX/D3kfvLISgcUkcwExkd7sKinF29OEOo/fJ7G9rGbikBEDjxNCHoiwb6a6cd6aI1RUo8Rn1ELBrSb68X5g3/NtRUSXtbX4XChqtHo3/2tTzL8g6kbGwkEr1rNkN+G/J/KtvaYiGBhisDm/w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=eviden.com; dmarc=pass action=none header.from=eviden.com; dkim=pass header.d=eviden.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Eviden.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=etlIBLlGhKnGpYVwNbiRhrNY/m0YqqcE16zSPEghsTA=; b=oC4zX8EwZsmyNVD8YbAJdKEMguC3XwBBBc8grv83H0yYoG7+/ppDO83jCmw5i7Af0ZFZAETo/Wp21AEWXKRW2LDrzGv661vSDwPeM9NiS38NOts9SsXv15d2OzEycoMM/PBZUTqeHovcLhQPFTTrgAoWW2JFxEbUjPs0HruncjHE3HiEeI3ld5DvlS8Y8YgkO43k1XhLhTxWvZ09HAMEZtqlaxfxyZB3oXrWFXKDh2zERnmkPLjuXW4AK3WdHxGdfzy5l+Msvx+DW7HwLjDNeQP1sl5gWO9Ghk5C46C5w6BOF9F2fT+L9Yys49ZaWodCyS6CntFOQ1IQjlTiM5cuPA== From: CLEMENT MATHIEU--DRIF To: "qemu-devel@nongnu.org" CC: "pbonzini@redhat.com" , "peterx@redhat.com" , "david@redhat.com" , "philmd@linaro.org" , "mst@redhat.com" , "marcel.apfelbaum@gmail.com" , CLEMENT MATHIEU--DRIF , Ethan MILON Subject: [PATCH 11/11] pci: Add a PCI-level API for PRI Thread-Topic: [PATCH 11/11] pci: Add a PCI-level API for PRI Thread-Index: AQHbyVd3LHi5228jY06ftVz+GKmvWA== Date: Tue, 20 May 2025 07:19:04 +0000 Message-ID: <20250520071823.764266-12-clement.mathieu--drif@eviden.com> References: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> In-Reply-To: <20250520071823.764266-1-clement.mathieu--drif@eviden.com> Accept-Language: en-GB, fr-FR, 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=eviden.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: AM8PR07MB7602:EE_|AS8PR07MB8102:EE_ x-ms-office365-filtering-correlation-id: 0a6b983a-0f6d-4396-a045-08dd976e99f9 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?Goy4ZW1AJTbJ2s4FxdTxvwX964uKXgZ+8z2lXh6WBvyvwzber4FC5xElSF?= =?iso-8859-1?Q?6CfjyHX4PBbJ6kT3Y46bzJbpcABUM+oKEb5o89WFsboxVLvriLGwPcKHff?= =?iso-8859-1?Q?VLm9dJooCG4ATA+bqdgxKu+ur1hMtbHR8qcXV5sQ60JQWipb0fbY/NgLQm?= =?iso-8859-1?Q?+vtz8lK5F1ryReKUi0hZWSSbGnXPhGuTJaidCxGRaIrxczWtGxaHoPAUKu?= =?iso-8859-1?Q?0Obc1JunmOGZ2Unty2bdqK1G9JvbZ6zAwgVWQ9XmAlWAZwtIa6ywLUCrED?= =?iso-8859-1?Q?NGZJH/HjJbP8DV9/Q+VP6bJQzFsy3OkDLmA4G+l5lX93Wb+6Gqyn/1ew/X?= =?iso-8859-1?Q?FiUjHFurKlCU4LAW4uoa9lWd5GuwXi0k0Fkha3yODhTJQfSYQk/phXnb8l?= =?iso-8859-1?Q?E6J7ex5X3lPYDNoVq2O6NfLGUgYNZ14BJbKm3cGxS5s/+Z6dBTjNkP0dkO?= =?iso-8859-1?Q?rNejeIwejMJNJUnQojgUvqsgn5qG3bVFGrNcGQ+6Q1TU/FbMCpdng06HOh?= =?iso-8859-1?Q?nIBAhROCkEpVMqiUwBSvGlzKPxn7Rmae+ig03u8PtbO1OuIE839xIAcDRl?= =?iso-8859-1?Q?Zlj83Nvf5tsjXU+poEy4OkoW4eLmCF+Bx3yuHZq1gSUJbGsKNsqc8+2/Bn?= =?iso-8859-1?Q?upCiNBgZx+5kAHudkDHwx8lU7raVHuI1iR4z0C/0PekzE1V+DNSWU2MZNF?= =?iso-8859-1?Q?hx55kCi2Zx0cKiFp7eCUsRqzLSdZ9+lT8ccl/Tpiy11Fafdx93Pk1F999I?= =?iso-8859-1?Q?R2mBXhuDSfUBbWvWdjG5QMfDuB1Wp1fxq7q5LL9tCFaTtbGV0U3CdRLkbN?= =?iso-8859-1?Q?MvLabc3HiLbck7BDBHYB6mpPt9kJGjbEL5gECgQi/LsvAbHS5Knn6dSVP7?= =?iso-8859-1?Q?Xh0SQ6VBrqlMAa1H7c75MZrALjqOoNbKJVMx4ZCxJEsAGXQK6B1hiZroz8?= =?iso-8859-1?Q?qliXTulswrBprws1/8MbU9/MY4mj0Ctf1j9eYm+EQ3li0K/Oku73cXYm5S?= =?iso-8859-1?Q?vFx79Ii7KnxJE/tA5qRVpsofGkvn2U2z3dmqYkl4MT7G0/OU6aESeHFFnx?= =?iso-8859-1?Q?0EbaN7DjAguNlqjSplJwsgXDY3pYO8u/Or0eewtDV4z0Lrc6sRknbgl2IX?= =?iso-8859-1?Q?gfcHbIkkTwEcZk+lV/5FrrbOXJp+aFuJhJEHljlgH7UeNsvtW2ud34+8gY?= =?iso-8859-1?Q?VEGLUL28+EO8ByYRmkPedlhmrKqCzaVVWl/2VH+j4L1hBL7Xx9JR7mb/9S?= =?iso-8859-1?Q?zEJtBgd9Y2JI1nJI5gJm16eW0ei3IbogUwsY7P43OQx4gXkB7bk/oXzkSc?= =?iso-8859-1?Q?NKTqJnUnS3hw7TjtC2BXIp7g4ognkpJaEUA21LUcYNo010xV9/zp192hLX?= =?iso-8859-1?Q?3FjoYHA2AynWZmw7CfusPlo+4SZUmkwW53yXiR2CHNoFVTFQs70W/nv5Bj?= =?iso-8859-1?Q?COVbb9T20yrDlGzBlGiDgpqwcI87qRod56eNJS5Z2vqf3a2uHKMnWHja7Y?= =?iso-8859-1?Q?3Gh4KeBd4P5HjuQnA0xDD1/yUCHD1Ip+wctzMyjxTyyA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR07MB7602.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?LulAWOwP8FjCzA9SiHQz5sUpFZmyzhEA40vpxE7uPSD+vJYXkOvRl6EaN/?= =?iso-8859-1?Q?zJWZx8ThTg1Icx92vFLy8RIShqExpiOX2artleM6HAMoAGbqv+zUo3n9er?= =?iso-8859-1?Q?LbZNV8k74gDlCRK8xaUxSnZF24Nq7zUPef4WVALqBuxakfaPQKoD3ztude?= =?iso-8859-1?Q?irwZKabJg5Zdf2w1sAu+NDYOjUc15uuV/Q9BUIkYZxJ7UL0IAcqGua6jUL?= =?iso-8859-1?Q?UXDySxGZVPyvRhxARlZ6+WhaIlmXCZheB7cT+9Kp4PcwHAx84bhiWJqN1w?= =?iso-8859-1?Q?HXr1bjqQL8FBjCBBvf15cC9uoa8lbSamfPIsbxmPAvd36zxdZcZUDakc8L?= =?iso-8859-1?Q?zhEQbKPbjdn6p5uRrQ9dN6CuAEzWZl128vIUa+QHKo711Xzy0j8sdAxy0i?= =?iso-8859-1?Q?K11YWX7LtO8cH41w8z6YhVyTm/tlWnfUD0mY9CUStx2gy9/4lb/PG13LrT?= =?iso-8859-1?Q?XEiC3M5zft9pB69t4uj5rzeOaoO2vdcxxCj7ZgYmFw826SaKCpVghiQ6hr?= =?iso-8859-1?Q?CqZO/N7pmYRjuhOSFB2+/R+dQ+OkOnS3wGIaZqrMYlHTfvAau4iW+dArKa?= =?iso-8859-1?Q?eC3U5Dbdi1lTOjIdWw9xTMHXoYmlv4DGNhl/P52SBoYM0lCgesZRgDheWf?= =?iso-8859-1?Q?dJ+gTVxwgGyuLsDhE4XJZalx8PVsNZBq4UCJgBc/QxBPQ0Poie+nLM1UWQ?= =?iso-8859-1?Q?5HkIqLZ4y5TQRQE+S5uM+5q7f8ENPOTP6mDX5kWySmUu6/NbIfI0jdSsXf?= =?iso-8859-1?Q?u4BlmZ31A3Yl8qfoIJsMnCZHdhvGOG7hTA/aFOaVcvOwmRBXuSQmuVLrpF?= =?iso-8859-1?Q?nT3y2XNkBtppmaJwh0OJUD66Lz1wJSFZ8bMnPnWpOwS70uAPi6KVWsuBKN?= =?iso-8859-1?Q?eoOGzQ5AH8gC8PHYQi907L2z/waMS4IG3ie/LUPuitqDl61GOJd45DZJJs?= =?iso-8859-1?Q?8N0GbHvz95ljkq4KiYX8gfnyWaQJU9+gc7KWCiU1cJkICP2bWFwwxpTit1?= =?iso-8859-1?Q?iGz4nWSTJQIOaXTXLUx5eU8Rj+ZZIK3gBs4hyKypKXfe3sQ14J0reX+osa?= =?iso-8859-1?Q?91pX4llIg47KeTFh0GZF4mX3StTJDCCOowEsr4SFB5K1UfvuoWh3XiVCRh?= =?iso-8859-1?Q?bIRenTeDMcAXB8HhIhcbJXjg/MReKRkIkXTT7LfN6kryDjT+ufYdD1dilz?= =?iso-8859-1?Q?A+vGXWFjQJd6hscGCP0wgPHHziuSpnKDPkUAaHu9gIio91m92xym7IA1DI?= =?iso-8859-1?Q?/8hsKWtsMp90TvDCMDhFVwkfNPfpWbumccRQgKvGRtuSg+ON5Y9OYum4cl?= =?iso-8859-1?Q?1TIJUCagjIq+ODFWlw7e8upP84fSK3jTGbHtqcWJ2bGZaKvuzyH7MbRbZ7?= =?iso-8859-1?Q?gpE4D0JpWGt7boC6p7EsuzJDHeFad6cEa8iq6pS74sGQ5TxxbkCorj91hv?= =?iso-8859-1?Q?UgcD4EVuG7RXhZoVMa73N8sxvSkbSe3AZRwFCg6NZ/24i0IOZ0FhgwC3/L?= =?iso-8859-1?Q?vSp6EYYCkGGesdleF0CV/SqkCS2SKZNEAKxksOwE4xKpv/V+qSVBqUAr0n?= =?iso-8859-1?Q?grNWmn9PVcwEZMYu9savrwlsB/Uf+gzQA3e94MjRWOx8+ZS+Fqjdb1yw8J?= =?iso-8859-1?Q?wh3yRGRpLL/OklFAjssqhCVH8IkXXK4pDzndqtylVMf+122XSOBYqaDyRS?= =?iso-8859-1?Q?T7ojFXewMdMkaK7na3o=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: eviden.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: AM8PR07MB7602.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a6b983a-0f6d-4396-a045-08dd976e99f9 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 May 2025 07:19:04.1889 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 7d1c7785-2d8a-437d-b842-1ed5d8fbe00a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: dyqtwGT3yhCzbNykiv6g7HP96uEyFC3tNCutmzCezvFRtUWITy+zoCT1pz/QLG4B3TsUsTSIlOkLHMLO7OoiYaVez+yJOPV/zLB7Hm/G51IWKjucOyEj5ln3+40XXlw7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB8102 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=80.78.11.82; envelope-from=clement.mathieu--drif@eviden.com; helo=smarthost1.eviden.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @eviden.com) X-ZM-MESSAGEID: 1747725571976116600 Content-Type: text/plain; charset="utf-8" A device can send a PRI request to the IOMMU using pci_pri_request_page. The PRI response is sent back using the notifier managed with pci_pri_register_notifier and pci_pri_unregister_notifier. Signed-off-by: Clement Mathieu--Drif Co-authored-by: Ethan Milon --- hw/pci/pci.c | 66 ++++++++++++++++++++++ include/hw/pci/pci.h | 130 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 196 insertions(+) diff --git a/hw/pci/pci.c b/hw/pci/pci.c index 0c63cb4bbe..c6b5768f3a 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -2987,6 +2987,72 @@ void pci_device_unset_iommu_device(PCIDevice *dev) } } =20 +int pci_pri_request_page(PCIDevice *dev, uint32_t pasid, bool priv_req, + bool exec_req, hwaddr addr, bool lpig, + uint16_t prgi, bool is_read, bool is_write) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if (!dev->is_master || + ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev))) { + return -EPERM; + } + + if (!pcie_pri_enabled(dev)) { + return -EPERM; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->pri_request_page) { + return iommu_bus->iommu_ops->pri_request_page(bus, + iommu_bus->iommu_opaq= ue, + devfn, pasid, priv_re= q, + exec_req, addr, lpig,= prgi, + is_read, is_write); + } + + return -ENODEV; +} + +int pci_pri_register_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUPRINotifier *notifier) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + if (!dev->is_master || + ((pasid !=3D PCI_NO_PASID) && !pcie_pasid_enabled(dev))) { + return -EPERM; + } + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->pri_register_notifier) { + iommu_bus->iommu_ops->pri_register_notifier(bus, + iommu_bus->iommu_opaqu= e, + devfn, pasid, notifier= ); + return 0; + } + + return -ENODEV; +} + +void pci_pri_unregister_notifier(PCIDevice *dev, uint32_t pasid) +{ + PCIBus *bus; + PCIBus *iommu_bus; + int devfn; + + pci_device_get_iommu_bus_devfn(dev, &bus, &iommu_bus, &devfn); + if (iommu_bus && iommu_bus->iommu_ops->pri_unregister_notifier) { + iommu_bus->iommu_ops->pri_unregister_notifier(bus, + iommu_bus->iommu_opa= que, + devfn, pasid); + } +} + ssize_t pci_ats_request_translation(PCIDevice *dev, uint32_t pasid, bool priv_req, bool exec_req, hwaddr addr, size_t length, diff --git a/include/hw/pci/pci.h b/include/hw/pci/pci.h index 5d72607ed5..a6854dad2b 100644 --- a/include/hw/pci/pci.h +++ b/include/hw/pci/pci.h @@ -375,6 +375,28 @@ void pci_bus_get_w64_range(PCIBus *bus, Range *range); =20 void pci_device_deassert_intx(PCIDevice *dev); =20 +/* Page Request Interface */ +typedef enum { + IOMMU_PRI_RESP_SUCCESS, + IOMMU_PRI_RESP_INVALID_REQUEST, + IOMMU_PRI_RESP_FAILURE, +} IOMMUPRIResponseCode; + +typedef struct IOMMUPRIResponse { + IOMMUPRIResponseCode response_code; + uint16_t prgi; +} IOMMUPRIResponse; + +struct IOMMUPRINotifier; + +typedef void (*IOMMUPRINotify)(struct IOMMUPRINotifier *notifier, + IOMMUPRIResponse *response); + +typedef struct IOMMUPRINotifier { + IOMMUPRINotify notify; +} IOMMUPRINotifier; + +#define PCI_PRI_PRGI_MASK 0x1ffU =20 /** * struct PCIIOMMUOps: callbacks structure for specific IOMMU handlers @@ -536,6 +558,72 @@ typedef struct PCIIOMMUOps { IOMMUTLBEntry *result, size_t result_length, uint32_t *err_count); + /** + * @pri_register_notifier: setup the PRI completion callback. + * + * Callback required if devices are allowed to use the page request + * interface. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to track. + * + * @notifier: the notifier to register. + */ + void (*pri_register_notifier)(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, IOMMUPRINotifier *notifi= er); + /** + * @pri_unregister_notifier: remove the PRI completion callback. + * + * Callback required if devices are allowed to use the page request + * interface. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to stop tracking. + */ + void (*pri_unregister_notifier)(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid); + /** + * @pri_request_page: issue a PRI request. + * + * Callback required if devices are allowed to use the page request + * interface. + * + * @bus: the #PCIBus of the PCI device. + * + * @opaque: the data passed to pci_setup_iommu(). + * + * @devfn: device and function number of the PCI device. + * + * @pasid: the pasid of the address space to use for the request. + * + * @priv_req: privileged mode bit (PASID TLP). + * + * @exec_req: execute request bit (PASID TLP). + * + * @addr: untranslated address of the requested page. + * + * @lpig: last page in group. + * + * @prgi: page request group index. + * + * @is_read: request read access. + * + * @is_write: request write access. + */ + int (*pri_request_page)(PCIBus *bus, void *opaque, int devfn, + uint32_t pasid, bool priv_req, bool exec_req, + hwaddr addr, bool lpig, uint16_t prgi, bool is= _read, + bool is_write); } PCIIOMMUOps; =20 AddressSpace *pci_device_iommu_address_space(PCIDevice *dev); @@ -595,6 +683,48 @@ ssize_t pci_ats_request_translation(PCIDevice *dev, ui= nt32_t pasid, size_t result_length, uint32_t *err_count); =20 +/** + * pci_pri_request_page: perform a PRI request. + * + * Returns 0 if the PRI request has been sent to the guest OS, + * an error code otherwise. + * + * @dev: the PRI-capable PCI device. + * @pasid: the pasid of the address space in which the translation will be= done. + * @priv_req: privileged mode bit (PASID TLP). + * @exec_req: execute request bit (PASID TLP). + * @addr: untranslated address of the requested page. + * @lpig: last page in group. + * @prgi: page request group index. + * @is_read: request read access. + * @is_write: request write access. + */ +int pci_pri_request_page(PCIDevice *dev, uint32_t pasid, bool priv_req, + bool exec_req, hwaddr addr, bool lpig, + uint16_t prgi, bool is_read, bool is_write); + +/** + * pci_pri_register_notifier: register the PRI callback for a given address + * space. + * + * Returns 0 on success, an error code otherwise. + * + * @dev: the PRI-capable PCI device. + * @pasid: the pasid of the address space to track. + * @notifier: the notifier to register. + */ +int pci_pri_register_notifier(PCIDevice *dev, uint32_t pasid, + IOMMUPRINotifier *notifier); + +/** + * pci_pri_unregister_notifier: remove the PRI callback from a given addre= ss + * space. + * + * @dev: the PRI-capable PCI device. + * @pasid: the pasid of the address space to stop tracking. + */ +void pci_pri_unregister_notifier(PCIDevice *dev, uint32_t pasid); + /** * pci_iommu_register_iotlb_notifier: register a notifier for changes to * IOMMU translation entries in a specific address space. --=20 2.49.0