From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id AFA8E740034 for ; Wed, 31 Jan 2024 02:48:24 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=rIhLZG9V8JzbrbxIIi8UMiM++oie5vu6VkV/eKsOaH8=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1706669303; v=1; b=wyc9hqZn49R+3QtX7DBFq7fe28TQjCch/VjdB++tNJZ6TM8TYr/MqUmqoEcPROC0pfADL7/+ 8rwkJ7Le3c/NveVum71PeYas2LqoIrnIVrmYx9V9PsKx8KPGbEGtqVv5LXjRzZ6DFxzMzO3oJzQ TwJxzCS6ECTSe638B7u0+TJg= X-Received: by 127.0.0.2 with SMTP id IZNjYY7687511x3nyrbgnsrc; Tue, 30 Jan 2024 18:48:23 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by mx.groups.io with SMTP id smtpd.web10.5997.1706669302917044638 for ; Tue, 30 Jan 2024 18:48:22 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="2408258" X-IronPort-AV: E=Sophos;i="6.05,231,1701158400"; d="scan'208";a="2408258" X-Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jan 2024 18:48:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10969"; a="858661758" X-IronPort-AV: E=Sophos;i="6.05,231,1701158400"; d="scan'208";a="858661758" X-Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 30 Jan 2024 18:48:21 -0800 X-Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 18:48:18 -0800 X-Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Jan 2024 18:48:18 -0800 X-Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 30 Jan 2024 18:48:18 -0800 X-Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 30 Jan 2024 18:48:18 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f2IWm3Xwf0PXI0oQlyJbHzdL6a/ctCCINrJ6XxqY/R6k8CaOJfPUEivNDnixjLKdTMnPesHURDqlDvsRjJQ+eBnD9M/WCJ/BBH/KhcTuKLJJZL8AMf2RQs8TQhVgUg/+KNqzvXYegtjtorcFUHqkc+oMItnvx6rY6Ihvu/YEaspz8GzfxaRwTaaDdG3pDXTQkkbNlPF9WyNwEZ3R8Vr/58WByizIQrzTd6mZEvJhkYaQJnD9imn4lJ+mqJwGvcLAKZpl9Mmf7EeIb+yfRNMS5iUyjqrf2UziGZ9zt5Pg3ncZhelY7w2DCUldRHae+lYrAOOmm2IQ3CvD5H8PJBq4mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=dJIdURTfYXzhBWmk7ABYpr70JlTanTZgjNWgX6GwuzI=; b=ATHsdr+eaBLLyczO0caqQEwvLpc6gOcSde5/z7Ii/roSsnTBOYoCsgTa/3aORNXE+UyExW1m6vLzKGrpw57ja8gkx4BahlsvR6Il7X6wgDJQCQ02iDW1ZqsBOvrOSuDyFqUibRDiLu54P8kXLY403DikwszVypX7Tyqz2Qw/UIuSmgYxSgPEC2yRzLsybsF2T8eMN4jr2aFd6iMDmkYtgDIN6MWDEkyYTnt7mrYQgyOyfRIOAKqUGUDzZmcoo32+W2JrV+vgl17DtKZK+Lp3Kn4o5NqN540GnLfR0i+0ttoBAmB2O9w+g9pC5dQDmCBorScNy2cwOoNoIBZiOQw+iQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by DM4PR11MB7208.namprd11.prod.outlook.com (2603:10b6:8:110::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 02:48:16 +0000 X-Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::e526:b83e:9ee1:c862]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::e526:b83e:9ee1:c862%4]) with mapi id 15.20.7228.029; Wed, 31 Jan 2024 02:48:16 +0000 From: "Min Xu" To: Tom Lendacky , "devel@edk2.groups.io" CC: Ard Biesheuvel , "Aktas, Erdem" , Gerd Hoffmann , "Yao, Jiewen" , Laszlo Ersek , Michael Roth Subject: Re: [edk2-devel] [PATCH] OvmfPkg/IoMmuDxe: Provide an implementation for SetAttribute Thread-Topic: [PATCH] OvmfPkg/IoMmuDxe: Provide an implementation for SetAttribute Thread-Index: AQHaU6ACECE+J0tjR0Ob2qHcBep0QLDzOE7w Date: Wed, 31 Jan 2024 02:48:16 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5064:EE_|DM4PR11MB7208:EE_ x-ms-office365-filtering-correlation-id: d5aa604a-c0db-4cde-21d6-08dc2207132a x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: 9spocZ+IQzY2nupm/Ph7Uc5yGPQ9nquLs9CkXwSqvfh9zWA3V6Up4HPPEjYYhroN/MDgowsPlca16VOMEa1HyUMD6yTN2w3xc28gy71qSNH5oC2hIszgY2IrqEvP1AhApp1Nm5+dN3WSseDCiZsdjN4Rh0hP6jBWgZg1pB82JUv3/3ZyCHw6hA8klWdZrSTAuwhDHuDJhIKifm7Xox6rllcIZPbCsaVEDiAtbhJ53WV5IAykQUFR9Wi64USxBS4Nxb76YXq3/XDrjPHvXDxyjl2vRcqU8HkcMfR9ZMu83iqDwhVPf+VtJ3TpjrQl7k7c56aPFtZ/wHPjic0qIe4HfumX5reqg5XC6MkWdR8ROUVA5Wm4vJZGNdRbpfqVEcRghNhpbx/4UDw6hDCpdpwsALXE+nTU6qan/HkmhuqcOi536ICqv1kvr93zGJc3ZVKqKO1eCP8JcImbx2vVPTwG3AG+3cvkDzAyQz48Mjj4RDEa9hApxfBoj5QAMlHKXgXxceDKhX2miOxStZsl1w5MSZL9uhMVXXVPWhfp1+gtKcsnhKAYVaXGayBvPbwFp0pTtBKlSTGHr6F0yVNmQXdLxhFpLj4ELsPb4w0jo9IUYY9YH3ecmNKB8I74Vmg+tSmM x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?3KV9eJEZUiEC/wQeuKaukhG5kqgbQyN7s4P7JFfAAU6uSeQxIs4dzx/c+gtT?= =?us-ascii?Q?tZiY+Pb3wG2xPYjMWQ+XS2t4UteJXUiQwbs9gUPttgX7bivXA0EFeJq013m2?= =?us-ascii?Q?4H8AeZsDx87dC0vEsDYeYnwK5ot1bxqLkdCqvtmC1QCWHfEfY2ScGi5Nz4f/?= =?us-ascii?Q?GI/Hc/yf1+Xdpo/ZYwAj8qsnVaAlreL8Ep2jSXecQSwsYxp7i1VUYCan3AGM?= =?us-ascii?Q?r7WA8z3WDArWeuzwl0RySVQVGgCCdLZblvULfNOgARzfhWxli+FI/x7WEhYa?= =?us-ascii?Q?eRnrJWP0BJ7GHJO8h0zf2lqEcG6SCJoD+Ij15v4x+Pz4csci6vrvAZVhlUxX?= =?us-ascii?Q?JJtadYmQU4du46ZBJmznt3bkRqrkV2b3dQ37m6VUZEEmmo0MnyApJxoiervh?= =?us-ascii?Q?lM7HpTjxZIInPYjLbHqO5OqwwBUZ84glt77gq0XCuThPKWn7UHQLqgK33Hi5?= =?us-ascii?Q?TXNVQA7yPDs3pPGTy6NIzzK3A9KSiRWEHvAr3nl+/ZvugUNxyDGkXeu0A2Nj?= =?us-ascii?Q?wvEOYcT0wMAOBp2c5MGqscxRJb6FfFLd0sa6MbYUY0MgKdvHjKL58xSTTZEm?= =?us-ascii?Q?m1U+gE/SDdTefjT5NnDOwlucD29yD0SKoxvQDITJUFVw/33SMSgZm6UD2Lz6?= =?us-ascii?Q?Tz5R/FQe44IhRTI04BvTEp5ZPe+m7kq7f6GfmZUtAHRziazO4yL82bqm38/N?= =?us-ascii?Q?VfMvCVjNQpX2BTmDet8lPys1PBdRj42+yxXTz/19DTgl1W1rP2ENs11e8A8X?= =?us-ascii?Q?k2xRsCxnFkFHl6izp/huQg96IVtHq8TjsqDclSyq8ROjUk1qL2CP2L9XjxNE?= =?us-ascii?Q?wtKuP0MlHGyJX7aYE3LR+S+5LzbkfAUuMeYXYQNMDCnFXeIcQ5kpL/AcrDHD?= =?us-ascii?Q?NDczRHulYvuC3VJR5A/Sq4fPhMV3iLer4epLHNDto2FJBBmSb9J7yMJswOEa?= =?us-ascii?Q?MumtPK6Pj0MeeACrPaMUKHrossBGx2GDP8xmQngpipwNHL6c/tjfJXSOaAau?= =?us-ascii?Q?gE+0aPwsncQv2QO6rkYoJf+ItrIO6BwacCaAo+QabchouM4W/b9lDxBTekLt?= =?us-ascii?Q?CBsoygAchEOE3qLJu4LjCoZk7kiHmt5I13Grkk0MFh9qNSfbA/K0Aik2TW4R?= =?us-ascii?Q?lBXhDpVL2ZZ3IkOZgsQ24SCPmaM/e4w7XhESQiaQwVOm5Vr7qWyKUDJhim/+?= =?us-ascii?Q?8yy4EYXUvjAbRPSu7bAesw0cGjjlh0TU4PVZxJ7jBxPMZM5bQBoULOgPDdoh?= =?us-ascii?Q?jREbeZUBQgG33CGcPI5S3c+7Y91FDcNFx4aN+5DgXDxip4hWvd9ZyIh8LxUz?= =?us-ascii?Q?bj0O4wuGDbvhRSYxadC0/PMDrZi2YHMQAKdPV4tmPMxe5FDDwHedzjFvpoh0?= =?us-ascii?Q?P9Cygkdt4hRhPDi/KwcEm6QPut1XoE/lTsP9ZYx4YTHbFilB5JCPnN9bp2SJ?= =?us-ascii?Q?wMOZLVSiXyp7nT4BtHretj9FtLxp5ewfhUwpYv+fFuGUQk5QNcdx75TmhSQd?= =?us-ascii?Q?JgSjN/QiTCTBfUESnOTMbPi7R5DmsKS2nCz4wSpygrhglCbT1T3DHlhWX/lz?= =?us-ascii?Q?uC1aSx/ETMJtnxnUT+QX9gHvL2Cs0PRBAn7wDheM?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5aa604a-c0db-4cde-21d6-08dc2207132a X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2024 02:48:16.0966 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OWJJ56uRqG25TDgWxdPpDUyb3AI1JiqcLdeiOVioUU1ucKiJSsDteBFyCpZIJK2vMT91V1kY2H4croikkMQqYQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7208 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,min.m.xu@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: ZHhE2EowpJTsYLfnDJFSe3tFx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=wyc9hqZn; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}") It works in TDX. Tested-by: Min Xu Reviewed-by: Min Xu > -----Original Message----- > From: Tom Lendacky > Sent: Wednesday, January 31, 2024 1:16 AM > To: devel@edk2.groups.io > Cc: Ard Biesheuvel ; Aktas, Erdem > ; Gerd Hoffmann ; Yao, > Jiewen ; Laszlo Ersek ; Xu, Min > M ; Michael Roth > Subject: [PATCH] OvmfPkg/IoMmuDxe: Provide an implementation for > SetAttribute >=20 > A recent change to the PciIoMap() function now propagates the return code > from the IoMmu protocol SetAttribute() operation. The implementation of > this operation in OvmfPkg/IoMmuDxe/CcIoMmu.c returns > EFI_UNSUPPORTED, resulting in a failure to boot the guest. >=20 > Provide an implementation for SetAttribute() that validates the IoMmu acc= ess > method being requested against the IoMmu mapping operation. >=20 > Suggested-by: Laszlo Ersek > Reviewed-by: Laszlo Ersek > Signed-off-by: Tom Lendacky > --- > OvmfPkg/IoMmuDxe/CcIoMmu.c | 55 +++++++++++++++++++- > 1 file changed, 53 insertions(+), 2 deletions(-) >=20 > diff --git a/OvmfPkg/IoMmuDxe/CcIoMmu.c > b/OvmfPkg/IoMmuDxe/CcIoMmu.c index b83a9690062b..795b945dacb0 > 100644 > --- a/OvmfPkg/IoMmuDxe/CcIoMmu.c > +++ b/OvmfPkg/IoMmuDxe/CcIoMmu.c > @@ -5,7 +5,7 @@ > operations must be performed on unencrypted buffer hence we use a > bounce > buffer to map the guest buffer into an unencrypted DMA buffer. >=20 > - Copyright (c) 2017, AMD Inc. All rights reserved.
> + Copyright (c) 2017 - 2024, AMD Inc. All rights reserved.
> Copyright (c) 2017, Intel Corporation. All rights reserved.
>=20 > SPDX-License-Identifier: BSD-2-Clause-Patent @@ -751,7 +751,58 @@ > IoMmuSetAttribute ( > IN UINT64 IoMmuAccess > ) > { > - return EFI_UNSUPPORTED; > + MAP_INFO *MapInfo; > + EFI_STATUS Status; > + > + DEBUG ((DEBUG_VERBOSE, "%a: Mapping=3D0x%p Access=3D%lu\n", __func__, > + Mapping, IoMmuAccess)); > + > + if (Mapping =3D=3D NULL) { > + return EFI_INVALID_PARAMETER; > + } > + > + Status =3D EFI_SUCCESS; > + > + // > + // An IoMmuAccess value of 0 is always accepted, validate any non-zero > value. > + // > + if (IoMmuAccess !=3D 0) { > + MapInfo =3D (MAP_INFO *)Mapping; > + > + // > + // The mapping operation already implied the access mode. Validate t= hat > + // the supplied access mode matches operation access mode. > + // > + switch (MapInfo->Operation) { > + case EdkiiIoMmuOperationBusMasterRead: > + case EdkiiIoMmuOperationBusMasterRead64: > + if (IoMmuAccess !=3D EDKII_IOMMU_ACCESS_READ) { > + Status =3D EFI_INVALID_PARAMETER; > + } > + > + break; > + > + case EdkiiIoMmuOperationBusMasterWrite: > + case EdkiiIoMmuOperationBusMasterWrite64: > + if (IoMmuAccess !=3D EDKII_IOMMU_ACCESS_WRITE) { > + Status =3D EFI_INVALID_PARAMETER; > + } > + > + break; > + > + case EdkiiIoMmuOperationBusMasterCommonBuffer: > + case EdkiiIoMmuOperationBusMasterCommonBuffer64: > + if (IoMmuAccess !=3D (EDKII_IOMMU_ACCESS_READ | > EDKII_IOMMU_ACCESS_WRITE)) { > + Status =3D EFI_INVALID_PARAMETER; > + } > + > + break; > + > + default: > + Status =3D EFI_UNSUPPORTED; > + } > + } > + > + return Status; > } >=20 > EDKII_IOMMU_PROTOCOL mIoMmu =3D { > -- > 2.42.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#114847): https://edk2.groups.io/g/devel/message/114847 Mute This Topic: https://groups.io/mt/104058148/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-