From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66328+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66328+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864586981227.91524493955956; Fri, 16 Oct 2020 09:09:46 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 4unJYY1788612xNjineUAB0J; Fri, 16 Oct 2020 09:09:46 -0700 X-Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.52]) by mx.groups.io with SMTP id smtpd.web11.19474.1602864579211732725 for ; Fri, 16 Oct 2020 09:09:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cyxfTJybBO8otysv1umHgdIvksg4W2ke2MQXVT+sVp0hZaQcwhp8cxAcN8prOCVudyxUQzkNewY3W2NGNxF68exmgXltleBKwLW6SLEXpb6mjWG6FdtWKmEffgPUzz0fFD9wN9QGT4u0OERoG10rfRcVwKDcqoIB9lJAawJDuxO/ORh4ORI0SWx8+YDTrsjz03QhMZ85OojIs3myexoEq9ERC+VDdKW6ylxAJGFuH9m05ydTbO02qkVoe7UNO0T7cKMOPJtAKXJcaZGW6okMTQlXHoUEV+qLcjGZPybo6gppZigrOoeNCIwXZucCX2GydCt2FvwBwOmmOPtVstKNKA== 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-SenderADCheck; bh=sPBu2j/UkldiGs8kh+Ynl4l3J/PuGDvdzsB7ukshROs=; b=ixFKqspSvq1PYtNbWAj+BDBUSi2AAUsm4yZvZ8FwpsnyicY16dp8SJgabgborxlJwmqjoDUQkd8HrUKhj6wd8Mu7vs8ZkCTqW6eFElCKrhMfbAKb9E3Ds9HF6QhywrbqxpSRV28EBSepQPx+4Lm4QKZrVb91xm+fnWiUTjiqlvWguzAdpNba40PBg5lCjjJMHlSmZ4d2wi4m2Jw5F6dyLs0gNDCsb+u5repU2l7GEU6XSKzHCAm7l1bDDqEespMiAG4enlXZxjAlqVlwnYHThyl2YDDPIYAH29EDs8JxLTidd+ejrg1IhlbMU7d2xxSg+Nx28W3hZ6c/otbZD9C8rA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:09:37 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:09:37 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Michael D Kinney , Liming Gao , Zhiguang Liu , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 01/11] MdePkg, OvmfPkg: Clean up GHCB field offsets and save area Date: Fri, 16 Oct 2020 11:09:07 -0500 Message-ID: <523f270e4e6f7a62cdbebc541b442bd766e7ab3a.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM6PR21CA0016.namprd21.prod.outlook.com (2603:10b6:5:174::26) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM6PR21CA0016.namprd21.prod.outlook.com (2603:10b6:5:174::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.3 via Frontend Transport; Fri, 16 Oct 2020 16:09:37 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9350dbe1-9016-46a1-da03-08d871ede161 X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4502; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 4XJYUF615uZcIjpqDWmKodT2ftnWd6ALGjT8jYdFOszKIu5FYyuTCGJV5IDCgUZECW5DbCMPQe3U0K/7o7B99bGjtm8P7xuWjrh/qJmiYxuCbwcuKYQBBFnDFOl/ylA7qYmua13io/sWBphWTTKs3lRQ1utQ+eNh8HDnIjA6UVgWPGw5OKeEzegfuESlNFAGO7jZ/KQN94kSNfnhtgi3uEjuA3Ur2i6EqfaCt3UthYF1hDibYT898vj1+Uh+J8H8J6I6qt52MBW3ZGN5O1jVAJWUjXbg+WUiioHxVYZkfUaHjBu4QQ4vFor5nnWhGfLdc/WzMACyurIeDTHbeQwNbmLcP2Mno6r2jXn6ZpcTfuyEdfJgrpsDDaZXY2JjvdWBNNmM5+xUx165iTM1Q7GhES9rI+64oqmbqrED3QnNNjed9fVP39l9zFh3Zgok2+rx0CbMO+pywsS+t5dD6CfR0Q== X-MS-Exchange-AntiSpam-MessageData: mVRT7x2xb8Mt92CIxoz4YPMgZw15o4dn5KWixGQ2W6fovolfUbLlLkKQpTc1JL/w0Oh4uygCEPfwelT/4TxAYkLpjtrzodwxBPpPmXhcEWhOH9O1YJh5Oa5SPPWBYqrCqZjEKVHsgdLTbrGongwI+E22w3F6oCLtlmuo8uQdBPD0M16n9YlTWu6jb35wiaTts+n6suA0e/ICln86Np04BvG+tZV0bEbRvSrhc7CMN1Iv4Zy1uqHHo7pgCy6X2ygDvIoAMbuhapOIhzCFpoW7e1ZIZsZASU83gUeGR+EidNaxeLBzxViuSaLtUMIcbwBABYYRZ05ry1F86d2OhE/kmtJFLNy0x1cR26W0sBex7FTVIFt3iGARIfEJ8l0k1ngz3iiETeWzouyq7KGbSulnYczL5TAKJnpzwQ9qf8shsVCnWGs7oIC3D7Vyp9nIBRV21Crq3o34mzCM4lX1+sBLp7JktTOS3tanVlekkbjENsG85r/bA27oClt6VZGBySmUrcgQky9gbTXoR/iOS/12pHG42OTgLL5IcLxvjZrryj5ZlDcQ/f16pJfa7uptNx2p/PYv8GNxWD2xOmsOZPxt8poObLPkYhBoLpbVGjt5gEMxZTw9fkUbXJFmserEFnT6ovMqFfU4QsKQ/XkGu5PpPg== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9350dbe1-9016-46a1-da03-08d871ede161 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:09:37.7748 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3MYKJouyzIgI//B06R5MExYIH/vFNPMpAE2uLLjdj7xYDXwUIqE7sp9s5gbJfcY1XQHnRoHHWRFGPdx+61p0Aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: g36T8CT17uE5WBWjpgkBaaHXx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864586; bh=5ES0rVD4H8bza5Y+lyZhEB5crHo4ug80Zi8GoKd67do=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=afp7B34Xl4Y+s4EXdj8yHWHUnUJKJvfI1c4UIzSm7+6eTAU4VA1AjVscFZmrQyAO+8N yVZGlWXFoybsCCyXVaXgwjR7/d4tvbtjsehbMUbc9jbQDV+wmDWFHjAnDuJ7vuL4OBSkb fVTkVketQ8N0y719di2uWZ/2fVxmoro6XZY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 Use OFFSET_OF () and sizeof () to calculate the GHCB register field offsets instead of hardcoding the values in the GHCB_REGISTER enum. Rename GHCB_REGISTER to GHCB_QWORD_OFFSET to more appropriately describe the enum. While redefining the values, only include (and add) fields that are used per the GHCB specification. Also, remove the DR7 field from the GHCB_SAVE_AREA structure since it is not used/defined in the GHCB specification and then rename the reserved fields as appropriate. Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Signed-off-by: Tom Lendacky --- MdePkg/Include/Register/Amd/Ghcb.h | 40 +++++++------------- OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 4 +- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/MdePkg/Include/Register/Amd/Ghcb.h b/MdePkg/Include/Register/A= md/Ghcb.h index 54a80da0f6d7..93fb6e3cb0fc 100644 --- a/MdePkg/Include/Register/Amd/Ghcb.h +++ b/MdePkg/Include/Register/Amd/Ghcb.h @@ -82,35 +82,10 @@ #define IOIO_SEG_DS (BIT11 | BIT10) =20 =20 -typedef enum { - GhcbCpl =3D 25, - GhcbRflags =3D 46, - GhcbRip, - GhcbRsp =3D 59, - GhcbRax =3D 63, - GhcbRcx =3D 97, - GhcbRdx, - GhcbRbx, - GhcbRbp =3D 101, - GhcbRsi, - GhcbRdi, - GhcbR8, - GhcbR9, - GhcbR10, - GhcbR11, - GhcbR12, - GhcbR13, - GhcbR14, - GhcbR15, - GhcbXCr0 =3D 125, -} GHCB_REGISTER; - typedef PACKED struct { UINT8 Reserved1[203]; UINT8 Cpl; - UINT8 Reserved2[148]; - UINT64 Dr7; - UINT8 Reserved3[144]; + UINT8 Reserved8[300]; UINT64 Rax; UINT8 Reserved4[264]; UINT64 Rcx; @@ -136,6 +111,19 @@ typedef PACKED struct { UINT32 GhcbUsage; } GHCB; =20 +typedef enum { + GhcbCpl =3D OFFSET_OF (GHCB, SaveArea.Cpl) / sizeof (UINT64), + GhcbRax =3D OFFSET_OF (GHCB, SaveArea.Rax) / sizeof (UINT64), + GhcbRbx =3D OFFSET_OF (GHCB, SaveArea.Rbx) / sizeof (UINT64), + GhcbRcx =3D OFFSET_OF (GHCB, SaveArea.Rcx) / sizeof (UINT64), + GhcbRdx =3D OFFSET_OF (GHCB, SaveArea.Rdx) / sizeof (UINT64), + GhcbXCr0 =3D OFFSET_OF (GHCB, SaveArea.XCr0) / sizeof (UINT64), + GhcbSwExitCode =3D OFFSET_OF (GHCB, SaveArea.SwExitCode) / sizeof (UIN= T64), + GhcbSwExitInfo1 =3D OFFSET_OF (GHCB, SaveArea.SwExitInfo1) / sizeof (UI= NT64), + GhcbSwExitInfo2 =3D OFFSET_OF (GHCB, SaveArea.SwExitInfo2) / sizeof (UI= NT64), + GhcbSwScratch =3D OFFSET_OF (GHCB, SaveArea.SwScratch) / sizeof (UINT= 64), +} GHCB_QWORD_OFFSET; + typedef union { struct { UINT32 Lower32Bits; diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index 8e42b305e83c..c5484a3f478c 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -153,7 +153,7 @@ STATIC BOOLEAN GhcbIsRegValid ( IN GHCB *Ghcb, - IN GHCB_REGISTER Reg + IN GHCB_QWORD_OFFSET Reg ) { UINT32 RegIndex; @@ -179,7 +179,7 @@ STATIC VOID GhcbSetRegValid ( IN OUT GHCB *Ghcb, - IN GHCB_REGISTER Reg + IN GHCB_QWORD_OFFSET Reg ) { UINT32 RegIndex; --=20 2.28.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 (#66328): https://edk2.groups.io/g/devel/message/66328 Mute This Topic: https://groups.io/mt/77553957/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66329+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66329+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864592499632.0553691343174; Fri, 16 Oct 2020 09:09:52 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id EQw2YY1788612xfKLPof9OFr; Fri, 16 Oct 2020 09:09:52 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.43]) by mx.groups.io with SMTP id smtpd.web12.19842.1602864586509193855 for ; Fri, 16 Oct 2020 09:09:46 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EED3AVW3pU+TrDkaMeSORot7bZzFD0X28caEuD6SH6KPlFebxgkKhoMJ536WkN002U812Y1rojOLbKJ31OYQSzYts62/HeVbCHRCPyhwqzqHTCXHLWLSBE1TPkp7+qP3gNqSNPd0yYqHuUju1g0n2H5TqfnidmRd3el611QplGSNnrWpnwJAd+lXDY8OjEaeCxXbbyY3T08A+t6e3Kg+ryOz1ByCl1k5NfBP+bsNDz05dbdISWlK4q62zNZ6kjbs/HyGXUukbYWjZYphhYT5zkK3kGHWycAjqTXwafsrjgC5hu+zzVZaKngUNZ8A+u4gmU9OR77iUIB9ZMsZ7/45aA== 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-SenderADCheck; bh=OMtKKF/5m7m7orLLIxLAlWfqpPgXOiq6LFtA2KYdmyA=; b=OgFYFH44Uf2z7TVYIUe1GnvlmL8blJRPizuTSp9KO141SH0gBZbBNMkJboIgdWcnBK3ZRjyqvfYWpZDb36+eF6fhZrPRO4Q3H55ZfaE1v/HO78GsK+H3fjm31pv6a//ZJr0Kb2pRJ/hGWqMYUKtKmSH69dsF16aTEyoTQ/DADpH978aDc6Miog1SMDc5oN1qPfJA72qHxHNkb/4CwlSBCYdfSN/LIbtWgO8jOCf0YBGsrPBMEtWinO2qCyfAcox7feD6TdCzQCx7U60fNG9dnH5Qn8UlB5OMu8N5keDSNLpM3LcKkyr3mTXzx4qKuAMbhScgZ2hIdG1RE5yEQ7DBbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:09:45 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:09:45 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar Subject: [edk2-devel] [PATCH v2 02/11] UefiCpuPkg/VmgExitLib: Add interfaces to set/read GHCB ValidBitmap bits Date: Fri, 16 Oct 2020 11:09:08 -0500 Message-ID: In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM6PR02CA0085.namprd02.prod.outlook.com (2603:10b6:5:1f4::26) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM6PR02CA0085.namprd02.prod.outlook.com (2603:10b6:5:1f4::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 16:09:44 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e3642e7c-5e31-40e5-cbe9-08d871ede5ca X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: U6nL5p+mCK9/L6ze6aewcbjkRLFKqC2vnEZd180tKZYQkXQp0AYhLhRhvDwwH4F48xnloftYm9T3PHZyhvoGzvni226RNxKsFgEtEsovN3s8SE0kO9yXb2M1w2MDwPyqU1/mOpUW0bd1MWBeu7ekPJXWjTlJlfYbAOpAtnDgqIb4JhMs3J1swjDCGSX99dX39GuTWe31hXQFLpUvA0aa812ehXpgAQtLnKd3V3e6FdgUGOCKJkTVgRQLJz+jB0vUc+iWLhZCN4HnaIkXfsC7o9IZUi8e3LJBi2wJeNYidiumcTL7X8Pk7gt3Jx3O2NCvOIf9USm+HfKwJoIC+jNAoEtCPme49cjZ2swfVtAJLq8T68bmjwIOqyPJkGzjuPFjUQZYxjLKCOqyJGhen7G+5FZJRJlTUI04G0HPAjZdCssT9ITgIfTqHRwZ4W3GZPBkUdT2Y46xdUnqeArLAm5rIA== X-MS-Exchange-AntiSpam-MessageData: s9PY1fGjfApGHX/z5dQyFyYbuOWqD9eG9CiXPJZDKIWv9HuTrdixu5QNjDaW/v0p3FAQU1/BPCXKNaZ9eqvbhbMROP6Q0cbecHQtTTFu0LfzRyL7gOTbCidRxvVd1pvHAT2jpo2rR0ESXo49bJtwdvDLlrenFiiq4Amw+gH6Ew/rVbHZKPCsL1if/ZPRRjK2T4aC3vG5yHtTlAHghYcHPz7yoZROyZZWP50sIQc19B9TcrB+R8xfpa444rQmvzdK6mIZYosib+NKVzvJTJcqH+K3k2rpaJabbokGAP3cAhKP9t7cLnrcA1U3ds7VCPsJ9/Boeczqs8rOThca2ZAsQ1Ie8YUu94uDKaeygDBV+kzttUeBQlOsc6krTnS4+ZI37TXBD1Tm2MW5vf6AUwgaXpIKZ/IJ2OEGzOfbzlzfmjLohuuKmSxaHsDd/pI0Zx7NAIQl8ggNQLCymH/cYav2ar/tFxoIF8bIf0nea485o3e7unH79JYjslogSUH3aWxIFDC5iaQ//erTZbbECKkDx5Wa5TMKsdg2ansb8CIv/0fwbAsp3ACnuk8NgS4fAD/lEiVLQJPyZBCmvnoVd7KR2iA3UWf78EfR4k3KEPMOnCxplTkNzzGEA0WG6UE4E8XwENf1PDsxKOhx1SQG/4lDqA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3642e7c-5e31-40e5-cbe9-08d871ede5ca X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:09:45.1504 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: y2GvXnlkMXJUy5YewFTPCJpORle7OJ/ZM/owUTK3lY9b5ly9fQCxhuO3QlB437J8+pVqD58sSe3uZYyoyAbGCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: FNSoFKRH3NWGuMIxLvtAttsTx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864592; bh=mY1eLVx8tx3xBa3q8fD5TVOKNonsKgfoZ+qoz8ZUwfs=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=WThFCmLrvnAa/06E4a2BeUmjFqqY5pANTlc2Urh0i8AtnqiktN33pzHMZrrsFI+Irxv zCY+vY+IC5DEqur+lywbpLJZLEDLBUOqU3f9x82lkCskv6l1QdlCp36104dmtpT3kPeob 4QtiRuNAbs9a0D1IRo3ZjzURKECg6UAYDD8= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 In upcoming patches, the setting of the bits in the GHCB ValidBitmap will be performed in multiple places. In order to reduce code duplication, add an interface, VmgSetOffsetValid(), to VmgExitLib library to perform this function. Also, to keep management of the ValidBitmap within the library, add an inteface, VmgIsOffsetValid(), to return whether the bit in the ValidBitmap is set for a specified offset. The new VmgSetOffsetValid() function is a VOID function and will be an empty function in the VmgExitLibNull implementation of the VmgExitLib library. The new VmgIsOffsetValid() function returns a BOOLEAN to indicate if the offset is valid. This will always return FALSE in the VmgExitLibNull implementation of the VmgExitLib library. Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- UefiCpuPkg/Include/Library/VmgExitLib.h | 37 +++++++++++++++++ UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c | 42 ++++++++++++++++++= ++ 2 files changed, 79 insertions(+) diff --git a/UefiCpuPkg/Include/Library/VmgExitLib.h b/UefiCpuPkg/Include/L= ibrary/VmgExitLib.h index 45fc27d35e29..ba5ea024839e 100644 --- a/UefiCpuPkg/Include/Library/VmgExitLib.h +++ b/UefiCpuPkg/Include/Library/VmgExitLib.h @@ -74,6 +74,43 @@ VmgDone ( IN OUT GHCB *Ghcb ); =20 +/** + Marks a specified offset as valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Set the bit in ValidBitmap for the input offset. + + @param[in, out] Ghcb A pointer to the GHCB + @param[in] Offset Qword offset in the GHCB to mark valid + +**/ +VOID +EFIAPI +VmgSetOffsetValid ( + IN OUT GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ); + +/** + Checks if a specified offset is valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Return whether the bit in the ValidBitmap is set for the input of= fset. + + @param[in] Ghcb A pointer to the GHCB + @param[in] Offset Qword offset in the GHCB to mark valid + + @retval TRUE Offset is marked vald in the GHCB + @retval FALSE Offset is not marked valid in the GHCB + +**/ +BOOLEAN +EFIAPI +VmgIsOffsetValid ( + IN GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ); + /** Handle a #VC exception. =20 diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c b/UefiCpuPk= g/Library/VmgExitLibNull/VmgExitLibNull.c index bb265e1700d2..b000232c472e 100644 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c @@ -89,6 +89,48 @@ VmgDone ( { } =20 +/** + Marks a field at the specified offset as valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Set the bit in ValidBitmap for the input offset. + + @param[in, out] Ghcb Pointer to the Guest-Hypervisor Communication Bl= ock + @param[in] Offset Qword offset in the GHCB to mark valid + +**/ +VOID +EFIAPI +VmgSetOffsetValid ( + IN OUT GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ) +{ +} + +/** + Checks if a specified offset is valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Return whether the bit in the ValidBitmap is set for the input of= fset. + + @param[in] Ghcb A pointer to the GHCB + @param[in] Offset Qword offset in the GHCB to mark valid + + @retval TRUE Offset is marked vald in the GHCB + @retval FALSE Offset is not marked valid in the GHCB + +**/ +BOOLEAN +EFIAPI +VmgIsOffsetValid ( + IN GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ) +{ + return FALSE; +} + /** Handle a #VC exception. =20 --=20 2.28.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 (#66329): https://edk2.groups.io/g/devel/message/66329 Mute This Topic: https://groups.io/mt/77553958/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66330+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66330+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864594768489.4408339692553; Fri, 16 Oct 2020 09:09:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id RO1IYY1788612xGAH0Wd9oDE; Fri, 16 Oct 2020 09:09:54 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.45]) by mx.groups.io with SMTP id smtpd.web10.19638.1602864593784276945 for ; Fri, 16 Oct 2020 09:09:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Yp3lsWjjvm5SF/SHhYT6NoZjv6JT7xvR6YDjMTCUijZj/aDkF8mAv0yXh4MtE4ntkVKdMlpmkjgpru/KqmirMSQIPZvTepTgldWihlN+26tagMS1Hlyzgl7MpsjkotrVLYkCYkLhd73Mhi/l7PJeR/Rboh04n54m6/FhLrDua+vN8N+5cMPjLasb1Zx6uO0ymaWf7Zg2OpZTtseWn+F9/xS5FQh3Iv368OmN0Ymc0XmsorJxAlnsi0v/YT7Mom9oumOyj9BCquXPmXvI7A6tm1sXADyefYBXSMRZs3XrxuxkGURYgaqQu+Si5KjHRlcpfJzcJcAlPh6uLCk2lbNkHQ== 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-SenderADCheck; bh=EFlm3bsDZqQ4unLOHMjuIO/ajyvreukvT43fuTzlmYc=; b=Q0lKIICYfzGiFKPsQmiOeYs1qFYiFkc3x5O2jLJfLnpP7SzQYHT9o+lxRXzAfW89VHjCmDdq2hvBKaqhILFnuWVuL6kY0dnACie4ph5Bzo8v5zyj5YUW9mIL1MOn/n/qwfxMALYyLl7il7wKNB019VeYpapbsbtvxKt63uOd/A/IijwS4UJFx6ibuLdVCcVYQw/TenImac/nh33fQuJ7tubDo9zb+WT7GBzGKF93Ys60Zj4EN81SwnjfwjxkYNNOJcgfG2Ok4JL5Q222+XiMt4DSsQKRWOBP4/hIDfr7DS24LV74yf0+7hnZiiM/13SEpnU2/+evboMdj4YZdF8mtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:09:52 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:09:52 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 03/11] OvmfPkg/VmgExitLib: Implement new VmgExitLib interfaces Date: Fri, 16 Oct 2020 11:09:09 -0500 Message-ID: <495003dd5667796b7e79ac30b8d72308e46bd91a.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM3PR12CA0076.namprd12.prod.outlook.com (2603:10b6:0:57::20) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM3PR12CA0076.namprd12.prod.outlook.com (2603:10b6:0:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.22 via Frontend Transport; Fri, 16 Oct 2020 16:09:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: db32df70-fc6c-43ad-8227-08d871edea19 X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: 5Wl5IpsSeHYZXUE4pjBfCmhbl/H/P7kzo2soCrHrs+7xLuu5jPfVj+3nb8ktUTUZM+leUBzL7C/ihLAXMrE99nW9SIe9EOU/ndT5jLYu05L888OoExWpGM9s5dDP1hUL0ApkaqnM4TTvDuDCfxLPLQ2xsmiKs2KK9VP6oYVJXpk29t5hljDW4zffV1xnAsITHhLvKVxF6WQFgcQp6b4+noQpU9kHb973Cs8IFf10+i5ZZglO7aDhuB89yJyGFfaMVCk5/PORbTKhgaFNkxc3DWBYIrcx6cAjo/gFheJvPcgovLMyjrRJaXo0DSzeFYeziGPf0txETgOwC023p7F+pffYnpOhzCVMmgEcG9cYSvbJBhAtqQAFGPGv8sUsA2s3mi80dLpmttCJuizqc5m7kpolXLm4j7/1ctJtoYSgGS6C8VtKZUJiujgIDbhQB2cRv2Nw60djW3j5K4nCl0EB4A== X-MS-Exchange-AntiSpam-MessageData: zTejRGCaSRL7sjw75Wcy8nBW+n+esGnCJjiN4m5L+4IFqAdzOGsTD1TjBw0mcwrs0m1h6nKbe0p3zFgGHxGJ6RXjua/upSAS+k+Vcq2Z7vc5/lZ7faTIw93Pjplkkmv2pKn+ycaoFM+FT21Y8Szcrg5oVc2lYiBbUaZHOhc1aDjet7ZfLH23vultrkpigqgiR/elmZ3x7YX60mGf4KY5n0a+M9RfP28sPw0YIrrbo139RlRS2gdkQWX3+Z4MCN7hGBoclUo5CLrEzysc1u2udy0F92Ka7pMgWT/V3//rC6b5cErArN+VTAtND989TOC0UFD61+6PkzhmklhCtFllsx9JWXKsv5Xs83XAhcdth3IB1ALmuhPHF9JQkioC2CGIyJVC1oaYcj+vDY0oQ4zZfifaGmicGHJ04A4uQqxpMBGXTdoHpJCDe35qpCcBCMLEng1xYasPhN0w8KQ1FHpR+wuw/Tiz2voOorVNIxhOGjscbfHGLC8M8FySrVtyWsTf5dJP1oxk2/k55BkbCfv3Buzs8yt1cplYWP62Rot4rdPsU8c+rqUtqfqjuJfnM09QajGfQqmxWE2QQvRKzkdPmFOsmbxxhTv1n4kVIVK1pFMABzoJourlal8SMIQIi/vuW5Pf/0EV7VXFt8svTLudJA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: db32df70-fc6c-43ad-8227-08d871edea19 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:09:52.3862 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +Pbcz59JGS+SYajKORZVSl8ghmTnrxGr8BoOHWRa3M+/076xreI87noLBPq1XnSwMS59uKPEJGIsF0rNUtqpYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: 9lmH2PZiM9mZfjLOfrY7G2ycx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864594; bh=dXrMvWJgLgbaF31rlgsPBKnYG7WfdNh8lvhkDAt/KAE=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=tKpCKN39icbApnrjizql159ihAB8HsdFf48b/F2otGqthLMvXO3DX2oapvpeNVS+zqo finEXWQvvodkn3hAod6/nrGxs5ZTbHwUyVA2pEICNvhpn0k9df/cj4G8lFM3sEv5tgL/Z O1wd455RwmWE9zS/55A6r32OnJeJCByThJA= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 The VmgExitLib library added two new interfaces, VmgSetOffsetValid() and VmgIsOffsetValid(), that must now be implemented in the OvmfPkg version of the library. Implement VmgSetOffsetValid() and VmgIsOffsetValid() and update existing code, that is directly accessing ValidBitmap, to use the new interfaces. Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 54 +++++++++ OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 118 +++++--------------- 2 files changed, 85 insertions(+), 87 deletions(-) diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c b/OvmfPkg/Library/VmgE= xitLib/VmgExitLib.c index 53040cc6f649..3072c2265df7 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitLib.c @@ -157,3 +157,57 @@ VmgDone ( { } =20 +/** + Marks a field at the specified offset as valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Set the bit in ValidBitmap for the input offset. + + @param[in, out] Ghcb Pointer to the Guest-Hypervisor Communication Bl= ock + @param[in] Offset Qword offset in the GHCB to mark valid + +**/ +VOID +EFIAPI +VmgSetOffsetValid ( + IN OUT GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ) +{ + UINT32 OffsetIndex; + UINT32 OffsetBit; + + OffsetIndex =3D Offset / 8; + OffsetBit =3D Offset % 8; + + Ghcb->SaveArea.ValidBitmap[OffsetIndex] |=3D (1 << OffsetBit); +} + +/** + Checks if a specified offset is valid in the GHCB. + + The ValidBitmap area represents the areas of the GHCB that have been mar= ked + valid. Return whether the bit in the ValidBitmap is set for the input of= fset. + + @param[in] Ghcb A pointer to the GHCB + @param[in] Offset Qword offset in the GHCB to mark valid + + @retval TRUE Offset is marked vald in the GHCB + @retval FALSE Offset is not marked valid in the GHCB + +**/ +BOOLEAN +EFIAPI +VmgIsOffsetValid ( + IN GHCB *Ghcb, + IN GHCB_QWORD_OFFSET Offset + ) +{ + UINT32 OffsetIndex; + UINT32 OffsetBit; + + OffsetIndex =3D Offset / 8; + OffsetBit =3D Offset % 8; + + return ((Ghcb->SaveArea.ValidBitmap[OffsetIndex] & (1 << OffsetBit)) != =3D 0); +} diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index c5484a3f478c..7d14341d592b 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -135,62 +135,6 @@ typedef struct { } SEV_ES_PER_CPU_DATA; =20 =20 -/** - Checks the GHCB to determine if the specified register has been marked v= alid. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Return an indication of whether the area of the GHCB that holds t= he - specified register has been marked valid. - - @param[in] Ghcb Pointer to the Guest-Hypervisor Communication Block - @param[in] Reg Offset in the GHCB of the register to check - - @retval TRUE Register has been marked vald in the GHCB - @retval FALSE Register has not been marked valid in the GHCB - -**/ -STATIC -BOOLEAN -GhcbIsRegValid ( - IN GHCB *Ghcb, - IN GHCB_QWORD_OFFSET Reg - ) -{ - UINT32 RegIndex; - UINT32 RegBit; - - RegIndex =3D Reg / 8; - RegBit =3D Reg & 0x07; - - return ((Ghcb->SaveArea.ValidBitmap[RegIndex] & (1 << RegBit)) !=3D 0); -} - -/** - Marks a register as valid in the GHCB. - - The ValidBitmap area represents the areas of the GHCB that have been mar= ked - valid. Set the area of the GHCB that holds the specified register as val= id. - - @param[in, out] Ghcb Pointer to the Guest-Hypervisor Communication Bl= ock - @param[in] Reg Offset in the GHCB of the register to mark valid - -**/ -STATIC -VOID -GhcbSetRegValid ( - IN OUT GHCB *Ghcb, - IN GHCB_QWORD_OFFSET Reg - ) -{ - UINT32 RegIndex; - UINT32 RegBit; - - RegIndex =3D Reg / 8; - RegBit =3D Reg & 0x07; - - Ghcb->SaveArea.ValidBitmap[RegIndex] |=3D (1 << RegBit); -} - /** Return a pointer to the contents of the specified register. =20 @@ -891,9 +835,9 @@ MwaitExit ( DecodeModRm (Regs, InstructionData); =20 Ghcb->SaveArea.Rax =3D Regs->Rax; - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); Ghcb->SaveArea.Rcx =3D Regs->Rcx; - GhcbSetRegValid (Ghcb, GhcbRcx); + VmgSetOffsetValid (Ghcb, GhcbRcx); =20 return VmgExit (Ghcb, SVM_EXIT_MWAIT, 0, 0); } @@ -923,11 +867,11 @@ MonitorExit ( DecodeModRm (Regs, InstructionData); =20 Ghcb->SaveArea.Rax =3D Regs->Rax; // Identity mapped, so VA =3D PA - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); Ghcb->SaveArea.Rcx =3D Regs->Rcx; - GhcbSetRegValid (Ghcb, GhcbRcx); + VmgSetOffsetValid (Ghcb, GhcbRcx); Ghcb->SaveArea.Rdx =3D Regs->Rdx; - GhcbSetRegValid (Ghcb, GhcbRdx); + VmgSetOffsetValid (Ghcb, GhcbRdx); =20 return VmgExit (Ghcb, SVM_EXIT_MONITOR, 0, 0); } @@ -988,9 +932,9 @@ RdtscpExit ( return Status; } =20 - if (!GhcbIsRegValid (Ghcb, GhcbRax) || - !GhcbIsRegValid (Ghcb, GhcbRcx) || - !GhcbIsRegValid (Ghcb, GhcbRdx)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax) || + !VmgIsOffsetValid (Ghcb, GhcbRcx) || + !VmgIsOffsetValid (Ghcb, GhcbRdx)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1027,16 +971,16 @@ VmmCallExit ( DecodeModRm (Regs, InstructionData); =20 Ghcb->SaveArea.Rax =3D Regs->Rax; - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); Ghcb->SaveArea.Cpl =3D (UINT8) (Regs->Cs & 0x3); - GhcbSetRegValid (Ghcb, GhcbCpl); + VmgSetOffsetValid (Ghcb, GhcbCpl); =20 Status =3D VmgExit (Ghcb, SVM_EXIT_VMMCALL, 0, 0); if (Status !=3D 0) { return Status; } =20 - if (!GhcbIsRegValid (Ghcb, GhcbRax)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1074,15 +1018,15 @@ MsrExit ( case 0x30: // WRMSR ExitInfo1 =3D 1; Ghcb->SaveArea.Rax =3D Regs->Rax; - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); Ghcb->SaveArea.Rdx =3D Regs->Rdx; - GhcbSetRegValid (Ghcb, GhcbRdx); + VmgSetOffsetValid (Ghcb, GhcbRdx); // // fall through // case 0x32: // RDMSR Ghcb->SaveArea.Rcx =3D Regs->Rcx; - GhcbSetRegValid (Ghcb, GhcbRcx); + VmgSetOffsetValid (Ghcb, GhcbRcx); break; default: return UnsupportedExit (Ghcb, Regs, InstructionData); @@ -1094,8 +1038,8 @@ MsrExit ( } =20 if (ExitInfo1 =3D=3D 0) { - if (!GhcbIsRegValid (Ghcb, GhcbRax) || - !GhcbIsRegValid (Ghcb, GhcbRdx)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax) || + !VmgIsOffsetValid (Ghcb, GhcbRdx)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1311,7 +1255,7 @@ IoioExit ( } else { CopyMem (&Ghcb->SaveArea.Rax, &Regs->Rax, IOIO_DATA_BYTES (ExitInfo1= )); } - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); =20 Status =3D VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, 0); if (Status !=3D 0) { @@ -1319,7 +1263,7 @@ IoioExit ( } =20 if ((ExitInfo1 & IOIO_TYPE_IN) !=3D 0) { - if (!GhcbIsRegValid (Ghcb, GhcbRax)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } CopyMem (&Regs->Rax, &Ghcb->SaveArea.Rax, IOIO_DATA_BYTES (ExitInfo1= )); @@ -1379,15 +1323,15 @@ CpuidExit ( UINT64 Status; =20 Ghcb->SaveArea.Rax =3D Regs->Rax; - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); Ghcb->SaveArea.Rcx =3D Regs->Rcx; - GhcbSetRegValid (Ghcb, GhcbRcx); + VmgSetOffsetValid (Ghcb, GhcbRcx); if (Regs->Rax =3D=3D CPUID_EXTENDED_STATE) { IA32_CR4 Cr4; =20 Cr4.UintN =3D AsmReadCr4 (); Ghcb->SaveArea.XCr0 =3D (Cr4.Bits.OSXSAVE =3D=3D 1) ? AsmXGetBv (0) : = 1; - GhcbSetRegValid (Ghcb, GhcbXCr0); + VmgSetOffsetValid (Ghcb, GhcbXCr0); } =20 Status =3D VmgExit (Ghcb, SVM_EXIT_CPUID, 0, 0); @@ -1395,10 +1339,10 @@ CpuidExit ( return Status; } =20 - if (!GhcbIsRegValid (Ghcb, GhcbRax) || - !GhcbIsRegValid (Ghcb, GhcbRbx) || - !GhcbIsRegValid (Ghcb, GhcbRcx) || - !GhcbIsRegValid (Ghcb, GhcbRdx)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax) || + !VmgIsOffsetValid (Ghcb, GhcbRbx) || + !VmgIsOffsetValid (Ghcb, GhcbRcx) || + !VmgIsOffsetValid (Ghcb, GhcbRdx)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1434,15 +1378,15 @@ RdpmcExit ( UINT64 Status; =20 Ghcb->SaveArea.Rcx =3D Regs->Rcx; - GhcbSetRegValid (Ghcb, GhcbRcx); + VmgSetOffsetValid (Ghcb, GhcbRcx); =20 Status =3D VmgExit (Ghcb, SVM_EXIT_RDPMC, 0, 0); if (Status !=3D 0) { return Status; } =20 - if (!GhcbIsRegValid (Ghcb, GhcbRax) || - !GhcbIsRegValid (Ghcb, GhcbRdx)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax) || + !VmgIsOffsetValid (Ghcb, GhcbRdx)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1480,8 +1424,8 @@ RdtscExit ( return Status; } =20 - if (!GhcbIsRegValid (Ghcb, GhcbRax) || - !GhcbIsRegValid (Ghcb, GhcbRdx)) { + if (!VmgIsOffsetValid (Ghcb, GhcbRax) || + !VmgIsOffsetValid (Ghcb, GhcbRdx)) { return UnsupportedExit (Ghcb, Regs, InstructionData); } Regs->Rax =3D Ghcb->SaveArea.Rax; @@ -1531,7 +1475,7 @@ Dr7WriteExit ( // Using a value of 0 for ExitInfo1 means RAX holds the value // Ghcb->SaveArea.Rax =3D *Register; - GhcbSetRegValid (Ghcb, GhcbRax); + VmgSetOffsetValid (Ghcb, GhcbRax); =20 Status =3D VmgExit (Ghcb, SVM_EXIT_DR7_WRITE, 0, 0); if (Status !=3D 0) { --=20 2.28.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 (#66330): https://edk2.groups.io/g/devel/message/66330 Mute This Topic: https://groups.io/mt/77553960/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66331+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66331+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864603635997.6625251494609; Fri, 16 Oct 2020 09:10:03 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id A7q0YY1788612xOHBGCWGJFJ; Fri, 16 Oct 2020 09:10:03 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.68]) by mx.groups.io with SMTP id smtpd.web10.19641.1602864601009924176 for ; Fri, 16 Oct 2020 09:10:01 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jiHd8XNslOaC/UM4jZzERlylL2YxK8arDRRISEaFyAFQKR4iwVv0ROU9Fr/EemAAD7IsCB93BcXGC/nAFtyXlnvAI1MhlltQzRt8wv4nn4Ld86wJArm1WcL4/xvHTjReMP3pb0pngfNZLm7zYJ1iXVYpkOhA0oG+bKaxtoAOn1l9kJiPDmh68DYk7NXtspWev6EqDsxScL8r0UHlgF1nOnypQYelv/iyFhe6GZ1lA8jqH0uPSVkIOcIMjTIW2QpmQhtBI8xBHPCLGtsLfwDxkNbjPmaOmjaHdhY7tgZ3Vry0zUoOdrD5pPfE0opst5LkLjtQxo8owIeab7JqUg/R0g== 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-SenderADCheck; bh=qrM5yJMp6y8UIwKkGOcX9OeX8qEoYNyQih32Yl2iKPo=; b=VC++NVaZCU/JGV9Iz4taDZcNuJUEav32NS6Jb9uePWlLotPzlsWs3TDyMvDSMDUr1j5ZKyp1OPqTAA3NnlVSYxdIfd4cCbaSwA3+eTwD3QvDCA3Pk9w2knWZFkxY/jAd5ptK06fU6ogwJe+8of1/PUPBh6WGOCrUGHRLgNeilxleK8grOJDoEkuVKvj+liKKwDy00jwYX4NIMbJr0TXVLshYY0KsQGPxoXtO+rYNwQ3bmw7YDmaptXjQvyHQ4KYHe+iumzpecsvI1dawCkgYkDxdco18LO25IAIlDyn1FA3Hcb+GmPF40tCbKK6wDRDnfy7xkzxaClnf0iOBhJG6FQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:09:59 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:09:59 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 04/11] OvmfPkg/VmgExitLib: Set the SW exit fields when performing VMGEXIT Date: Fri, 16 Oct 2020 11:09:10 -0500 Message-ID: <8ae03140ceadd7c2f16ca7a15baa07da59642b18.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR10CA0024.namprd10.prod.outlook.com (2603:10b6:4:2::34) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM5PR10CA0024.namprd10.prod.outlook.com (2603:10b6:4:2::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.24 via Frontend Transport; Fri, 16 Oct 2020 16:09:59 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 33f11e27-de1b-4cce-7082-08d871edee72 X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: ycM10bQS/YObvGYHQCjPrwPRalwq/oYG/mWOnivONLq9bqWj+dsJjF6kaWIxKfIOd+lOyiCaYXV3xtF8aB5t4XFUf9Z+oATi+5DKuaAyJo/1pAhiffUA4sABGuWDDSA5DpO77VPlTBHQzJqhUkY+byYlFTJhwOX6HRNsJz4As1fMYLhOlodwU830kiCW6DV8sxKcdxiGx7G8PmHsLiF1W+qnC5f4TJlZvMDGvjdCxQwoCaSSVCffrQSt4cbjRtN8auLtHwpQUnMLHOp1GAtg97HAntmsU66si/0SPqxqLgNxUZ4LlHdIwli7PnkrzJXEnDrdjnKYwWMlMd0omggGZOkqSPQXpNbi4AVaRllbmjB6hExmoJrmYs2YMKghhrYwLR5JzRQsxmJhnrP+55PxgU+MqoA0WRdcBvHs3JIL7SYS8wfViKdT/y1mtTiBHJVfMzyvS+jJNwJN0vx208soaw== X-MS-Exchange-AntiSpam-MessageData: OdJzHQaKhcu4OFW999COXMOhvyz95sQzbcHrqBdJvVr9fjHXaKrOc6Pev46A92Gdd0KbHaejdpgTvEXoIEOUGk63Ey1ZPDAcI4jUcYkxli+tgo5bMgx9qv2w2Bjm2BpBe7j+z/HKa/9qDzR2L4pAYO4VqTVJl1t0fQsNNMY56rxVEXCTbnlDZX3JlE/DPMo6Sk4t02EffTv5qOTB9Yqf9tn4BBNDdeQUCC9v28ECjcSQOUjNky3xVYhY4R1C/gYbNfNx4Lh1PgSf5EjjeCzSBZu+ICvlWSx7PlQqBRvBAXqWKr7yZVfoH/Q1boOQOADBkatxyDPzFZopjG32ZHFdmOff25bz4lZCPvw5zSk1/HdQGcixUBBQsubHPjOwlpXhYVDc2WuFm3DstTgkYh7v9fHByfspvMeVr+hWEl5DQIybnFVPYpSzDtndfNpvRgjyXkoSPSVbU08B2Ba+0B8RH6KpMIxHCP17RDCjdkXXWLRJ5lI/AEIAd+xUYle0T97itVajRISMJxZ4WQWqKWd1dItP+6uqi25t1U78FvT6XZlecC4cz33iS6R068ftvp0Ni7UzX2u6IAtvKeOYfiBNxOmrZDGtNh9s/qTWFJD+OlnYyQ1moUSPBLw8jqg508OYMcAFN0mtF8bUG/WoqDyPGA== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33f11e27-de1b-4cce-7082-08d871edee72 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:09:59.6689 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DnF6pOoixWiWlheC1y33IcCh1qbM28tBeQ7DLEMBVMdd+D48fAywyP8BSIGnMLPiP12tAJGWtIFQWiqTOfr7zA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: upYBLzeJpm4xfpGDTnd4OlXDx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864603; bh=Nj0oDC5ebOXj4Wh6fZzq2durfFEvdPI0CVHRLTf4o10=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=gJZj2kmdDwEIVJbrxoBva7nKUnB7Q0H5xAuLa3N2scvlLSMDnLpsD4s+D9ZFctZhYy7 eNTJ5gmZwRelqq8tM2E24p6ywWMn3tExwFJqSyHaOYz/AkEG/R05ES6lkIkLvRYFkw1ZZ xDzJelepWk4sV6Z8eOqmcQhszmm950+Fr5o= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 All fields that are set in the GHCB should have their associated bit in the GHCB ValidBitmap field set. Add support to set the bits for the software exit information fields when performing a VMGEXIT (SwExitCode, SwExitInfo1, SwExitInfo2). Fixes: 61bacc0fa16fd6f595a2c4222425cb6286e19977 Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c b/OvmfPkg/Library/VmgE= xitLib/VmgExitLib.c index 3072c2265df7..ae86d850ba61 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitLib.c @@ -110,6 +110,10 @@ VmgExit ( Ghcb->SaveArea.SwExitInfo1 =3D ExitInfo1; Ghcb->SaveArea.SwExitInfo2 =3D ExitInfo2; =20 + VmgSetOffsetValid (Ghcb, GhcbSwExitCode); + VmgSetOffsetValid (Ghcb, GhcbSwExitInfo1); + VmgSetOffsetValid (Ghcb, GhcbSwExitInfo2); + // // Guest memory is used for the guest-hypervisor communication, so fence // the invocation of the VMGEXIT instruction to ensure GHCB accesses are --=20 2.28.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 (#66331): https://edk2.groups.io/g/devel/message/66331 Mute This Topic: https://groups.io/mt/77553965/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66332+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66332+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864614564301.8364430789478; Fri, 16 Oct 2020 09:10:14 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id kFKmYY1788612xKpRkZr3np7; Fri, 16 Oct 2020 09:10:14 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.54]) by mx.groups.io with SMTP id smtpd.web11.19485.1602864608059118209 for ; Fri, 16 Oct 2020 09:10:08 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K2I8/RZiSFUdlHEM47f7SC+U/809UARqz7cXmeyeOL4xeirAfpbgh5zp0Ak3dZta81yF6Q+0fXlae7i/G7sG8D0B4BMEEcMT+gQ9UWyplf96wyNRPCmDw+JX9rkJNDttiNL+K9O469oUKsjK4fYyRlmrI+/b5ef/QO+sI2IcqbQcRdlvPnGcrJxkFxmcqZKIDsm44rWVSTI4VcIsUzJDsF/gPpgxla1gf/ccs0qdIXZektu1CxO5njMTxQWNDWkbjZ6OvLzxX5L0metoQyncmywsroPAMBEPIh2OcHc9Rb+iANrevOEeOg4EZQ6aDBTcck8J+5bShnsc8/sfKaTo9g== 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-SenderADCheck; bh=OQjUCedu5tIfgyByRZFWWwAwp3XN99r0COQs+hL0fx4=; b=ayG1iFlx7U8oEBWdyT+GXDfuBTBsvrMlIf88GIzw6At9oo8O/ZfPzMKPTbFtjqGog8LqacZle0n79u+gDkgF2+uM/Sx3xjcNeA7eCwhOL4enJhUsjYEWRwr+Lqe1ZFDuhPvpjMfFc2MTby8bNhb3dyXDEkoOvl/Q2Y/SSFi3pXOgMTZdRmxldolzqMNN7ZbNiKrj1p7dB16qZQcqiWHk6lVmkPHksHJ7vDllmbo7QFdMNEKmJ89ZFa4MGIaOI7txDEpteAFAkpBod3jTghXpsVk6humXM2Fl6Qk5M4R+r4uRdrnzCYGjLf0tepEY1xUNbixC/rjFD2VeRl8kZN4Xjg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:10:07 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:07 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 05/11] OvmfPkg/VmgExitLib: Set the SwScratch valid bit for IOIO events Date: Fri, 16 Oct 2020 11:09:11 -0500 Message-ID: <431562a3f8f57207a757b0c706fd77813f3e949f.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR11CA0009.namprd11.prod.outlook.com (2603:10b6:3:115::19) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM5PR11CA0009.namprd11.prod.outlook.com (2603:10b6:3:115::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 16:10:06 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 4dc1b04e-45b5-445f-7868-08d871edf2da X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: TWT+BP50vx3CF2KnVx7flMAb/Oz2eDsJq4EWxVDe/BtQtSWwVhjiK0MHsJC0luJwga1cMbDzkWwlKf958bokTuUsvoB8JWYVpjax0j1IuYuA1HYoYVqFbzyZ6pXBWTdenGx7qPycMTY1euDvQcKIPZO5n1PkEw+7hhhMT4OXc2NuGx3XX/dqwUNiEJKgf0y9cgsUCKt5D7x3s2iw/k6kH1KqmsF5JT9p8JRkms+M/Rtwu7tEVcZcan5NZysAeqyGq0xB78hvngjpHV7SdwAdTDWf7Fkw2/9OlsBVITki3uWeKOuAQz8yMrMKpNk3McYkPw2BIlWR4r0r5SCelSwQ5r2BH5XS8Sp227ISpU19PLaGER6F8jGgHZN4pzNcfk/Z+FFUv2/lqsu8r7KY1FLmHXZu0USncjqS9dmS+jKoFdLlFU67Ln/UIeZD9yoCQLpkvkS3GP4N3h4PWB4zZIL1Bg== X-MS-Exchange-AntiSpam-MessageData: 9sHbh6uEoOCWf43DxEGN7XmNvmQClylHjRPlw7dIqRmTQVt4Bwpj3c86dQqmVw+sH5NUlsdN39SmVxkGjsnzYH0gCSAuTau899GzrOy8PAv/Dcv/BEaQu06dMvc9sSUIrsiIs8TomGhV4mTHkP5LImz9GIi+pCBVYHLcLMpQpM+Djks0UlFLL9kyQekbpEm5+RUI8MXYvmVWlvOBnzXzKufXQ5RtjC02rvGoD6uER47bP5VzInCX3qLvD7SRY7v34tgeUv+j8Ct/8DfDN+I3xAmodRR8V9ciigCjZM9B/kgA5YPe/YzaBlhi47BY0bgSVTHF+R03Lw6uoTTn7X5rFu8wEUJCNbLxkPSpmHg9sjM8soalMBOkCuokYu8r+zOkNcMKrhaFNIbMA1Bza28q7emdSfLaAZip6xMkuceJ8uv7VlqpkxC6bBQw+OHK9Kjiafjgbg70nsvX6xxvkbT46l2YvynJJ17Gm5c4R380T1JUmtZAQEsyAFzv75fBsEqZfgJXsAiNux+o82RIyxts8SL0nxN6Z/IpAZejHNkUpCz2/Ceow0RrM5CtWjtmqDXTajbLNB6qMpIi9zZJbyj1+QD6bW5HGt8Di/cMre4eS+dDfN2AgK0vnSRsUaInZjCK7H1v621lPuK4XUKW2pkjoQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4dc1b04e-45b5-445f-7868-08d871edf2da X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:07.0526 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /55QShNIjMf6AI2XruQu0Vdaj8injdzht2phuE27DerJiJFLzRoIFXu0rhH/Q+QK3xq7e4lVZ+kn+m15S4n0/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: uK3CtuTtw2vbjwbEtuP6XLPxx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864614; bh=a7Rz9oVxc1U2lRHGdLxaAfc/euU4pWii4WS8ZoPg8S4=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=G4bP8DAZ3XeamFkfGP2IgNTUGTwaBg0RDJhS2mVKhmz8DPJzCj7Jpb0T89er6YAiBoC tD2kccoE++4hEwOkW8pxjC0OxSNFH50DTmA7IZn2sq5rV7O3Pe+rStQbhRc0MRIgxPCoY 30ulLc5as414YMyzD9M6LX/Gn//Lh09dvKU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 All fields that are set in the GHCB should have their associated bit in the GHCB ValidBitmap field set. Add support to set the bit for the scratch area field (SwScratch). Fixes: 0020157a9825e5f5784ff014044f11c0558c92fe Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Acked-by: Laszlo Ersek Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 1 + 1 file changed, 1 insertion(+) diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index 7d14341d592b..e5f14035b06f 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -1233,6 +1233,7 @@ IoioExit ( } =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_IOIO_PROT, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; --=20 2.28.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 (#66332): https://edk2.groups.io/g/devel/message/66332 Mute This Topic: https://groups.io/mt/77553966/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66333+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66333+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864618027770.4421206579212; Fri, 16 Oct 2020 09:10:18 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 9T1kYY1788612xJEq5aaYcOO; Fri, 16 Oct 2020 09:10:17 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.70]) by mx.groups.io with SMTP id smtpd.web11.19489.1602864617064053713 for ; Fri, 16 Oct 2020 09:10:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J4DvF5w5q/Oj0prlrVHXUp8j3ZcgegbFzvy/DaBVVfGD/yJjEa5BuLbD/OqBlu3Jb4kUh1W2bX1/l+P3WFs/rsJwOLIBs8MEyR0725Th1vl6bAnVgnMLD6+kZl9iZNDx/iPO7wpY6+MGkLksjNGDXXNZxq34Oz/QDqf8S9dHB/s5WR/oj7z/Mge97WgB2Yrtv5ZHxAMdyu+nm8Xej8cThvVkbzSdAjJ7e5lMYwhEIzSPt9H56YtKG0W/bf7yylcD723dC1mLZ961u5c7rxf9F1tFPjFDeRy157+u+c5GPm3pM0rI+xmUAS6suatRwrbKbuKEgkhbTRDKrz8+e9fFAw== 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-SenderADCheck; bh=SgZCc6wxVnz/Nrtf4qAOaxmDIT+GUm4Z4PAifjXDTCA=; b=eEyup8R7OG9+U4gmagS0TrwsuelFJxsjLN4fkJA2n3aE88jmB7ZkkZlcW8D5s2XxvVwIFIot8s6eYudZYyngPEIQXWz1F8sQBwbHKSG8uYeUOEBc4HbROMA19Tib2bqzVgqT2gxf1s8n1eRpguBzB60wttyph/pgu/wwshx56CfrPSivs17RdYEGRQbvkJC88NSUNcXd4KpS4FrVxpfLGOdkatOQuQGfnMAQ/TX44aVx514DrFTRxMN+ryzwqFD5uA5x9m2c3KAQhcn+61/3bnqlm+4ikG1HvK/AYBJGbbt2JO3wCBcdOCSXAllNI93y+l1CS5Kwxms2UJUXq0hfcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:10:14 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:14 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 06/11] OvmfPkg/VmgExitLib: Set the SwScratch valid bit for MMIO events Date: Fri, 16 Oct 2020 11:09:12 -0500 Message-ID: <8291caf025ca2b8ac4c32b51d8288544001d9144.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR11CA0004.namprd11.prod.outlook.com (2603:10b6:3:115::14) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by DM5PR11CA0004.namprd11.prod.outlook.com (2603:10b6:3:115::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20 via Frontend Transport; Fri, 16 Oct 2020 16:10:13 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0cc54b46-d900-4ab5-10af-08d871edf725 X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: xQzLGJN2wr/AvHTnK9ysktpZ5J3Pn6lVwBgQ0pb6Xs6dwqoVGwkTAgkO3au+9IojZRWGTZ443/ukZ4iqIiB9JKmgVYxu8B+wOdFwrhKyIFTecLC95lPm0Dq6KAAdbRaLOarCZol2I6OXEZTK81CQk9NoilXGWIqMEdqtEQqomHarwGW+S2YagTzjIURnsoMvDK+Yz7t3XiDg5/RXcb/hciv53OMVNu3xM/z4XA976/I3OjiGMNKnTs73BMO1D0oCQBSB9CdW0piyBGQ0S506iPBOOSj/CEJXxxaMnj8JNb0UJk06DXraYK1x9oqcY5W9lJ+wcKwNZqGreMxAzWFGcHPWcq3lkUysuFRfvp+wy/5GyomiIJnH5z5ewJnDtMRFQXRQK/uE9JGnKd3Hs9LY23FyUojJjqeU0tPbRV2lJ0PLDXpaOEFju+SJeABZmgWdxFfRBuoanjTGq9ivdPjsOA== X-MS-Exchange-AntiSpam-MessageData: m2Zxwf6MWmVvMHJf9jgPid6nVHVvOjnGWCLlBrbToMrYEdf0AaAcmlsGgQnWuEoTW5tBHAbqO/Is2rilUtvtH37wFQl7JG73QZYsB0F+fz0AGghzFhsD+yOPD7Tu9FMcmlwBEYKfbjyxx1b7SpggVGueKuH5jUJ1d5hw7dTEqdlbLoWgHf/kCPyWpa2F/8mXuujQENT0zhU1WbXWrWaWotk3/ZZNsdr6H3VyVPtUdTVexv7sc8VEK7yAiL/aMfGXr4j+djNOW8JPyMpylI9d51Z2EAzS/puMeiDSOah5qHIiqz5SkoQBZafUJ0BIEZVS7r9otFHQ1u9OhtrHGxMuxAl93j2as3nWY8PrpNIVVF41KVLqsgAjKINJ4CtABDHxB93L+wtJinPkseHbwYPcPC4NzA9T0lQosc69CGM9rtsu2Xabmh5Fqxk56h2wD92sviVuHBP9C84sif1ZYgtEcRLKeDttJQZOxu75AZJ3Z4z+fX/YBDAKXAsHZsc2cZSVg2/VzJa/c7hSxgmsn0wLXnumSuzyuvbOEUx8FB4gbZ/xW/FBnQCxv+j3BgGJPx2DmkzolC6DEViqNZtsrYNwLKmTCzNisJPMZegosluQyvaql2tsIOXc7I13VdUCR7T1oOSM1uCW8brv7iWtFOX6nQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cc54b46-d900-4ab5-10af-08d871edf725 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:14.3393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 030o+Z8uyQN4//Q2d6EYKuXhasTDqdaPQNePjnU9yirFU3p07Q2QQOv0yfsxh4xyOA4RLFV1LYXPlL7u9trwkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: HxDlPcgoARTR5RA4Z2IRfmQLx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864617; bh=9ZsR6ZI4sNAISBjl44b6CjCXR6RdwVqQIiAQxQT6W8Q=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=MhffEk2Xc7rJwC96fsQFeljgNYW4PtFZonKnZDepPHzv6AXeXQsqQDI704as5QxhKvZ 6TKwGOexG5bIuyNBFpseC0BCihrkn5xN0fHnipPcBtdZLTRxIJp4ArH/jUvznUX5h93Ai vJOgskVcbIn952eEsn4Dcfx83umuJHADq3E= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 All fields that are set in the GHCB should have their associated bit in the GHCB ValidBitmap field set. Add support to set the bit for the scratch area field (SwScratch). Fixes: c45f678a1ea2080344e125dc55b14e4b9f98483d Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Reviewed-by: Laszlo Ersek Signed-off-by: Tom Lendacky --- OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index e5f14035b06f..9bf9d160179c 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -664,6 +664,7 @@ MmioExit ( CopyMem (Ghcb->SharedBuffer, &InstructionData->Ext.RegData, Bytes); =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; @@ -693,6 +694,7 @@ MmioExit ( CopyMem (Ghcb->SharedBuffer, InstructionData->Immediate, Bytes); =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; @@ -725,6 +727,7 @@ MmioExit ( ExitInfo2 =3D Bytes; =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; @@ -755,6 +758,7 @@ MmioExit ( ExitInfo2 =3D Bytes; =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; @@ -780,6 +784,7 @@ MmioExit ( ExitInfo2 =3D Bytes; =20 Ghcb->SaveArea.SwScratch =3D (UINT64) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); Status =3D VmgExit (Ghcb, SVM_EXIT_MMIO_READ, ExitInfo1, ExitInfo2); if (Status !=3D 0) { return Status; --=20 2.28.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 (#66333): https://edk2.groups.io/g/devel/message/66333 Mute This Topic: https://groups.io/mt/77553969/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66334+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66334+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864629674347.8705972769326; Fri, 16 Oct 2020 09:10:29 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id MqPQYY1788612xGj11I4PCxO; Fri, 16 Oct 2020 09:10:29 -0700 X-Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.85]) by mx.groups.io with SMTP id smtpd.web10.19651.1602864623659621643 for ; Fri, 16 Oct 2020 09:10:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BwPefVXLuw4V7DkMsoKZ3NmNj3kBFL3EiJkKafWugEGRIxrUzCaJZbiemZt45sD7M0CgdYMfsJLVWQIR5twpPgEWrV4I5EWLEFaCGX8EWd/cRXp/kp8t4ICH48105P5qqgaxlfsmT/skC0SbvKoBTdhvvLeu9d9EGcg5hnZVCthkGWVpQ9BbgDFtmCEp7pOhfktk9AbtBRg8KDynhzCi7I7TBCF/nz07xduUVi1M+wEfhgBByyfcqYlfOZMLiJWGbI+p8haSXP38q4Wwi4QUkf3CcHdJlr4ptb6GG/pCBFTfoLMhZYh4VPSlvQncRHppGgGRgq4pFXx943oG6/q6mQ== 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-SenderADCheck; bh=VbDrtzeDnb9bg6l8LG2kTd3VlkNmpNPXsk2R3WV/nIQ=; b=hF7BgMS8ZCkOmV+ehUYXvRwKJxYg6blqt7/zzesw2/E/TQmmOfrprbvQHoBVXIwzKoj4T1WFhC35UYM44IHklB3iwr3dnEumnJ18yYNhFV38ioBmBQG0ia+3BvP6uSbISZMDVDin4Y2KDsOTzI/ii9TOtAGq3ugr97P4DDiRholDTGuVkxHOZqn+w8dqduiwIF1XPc3IbGfMyTCSjJuMoLymBkgPnWx4CGIbL2dW3mBZD6R3HzuTF5dK9v17MUCa9H5pr4r0By27sChPk7NXouhG6UoaD8ZhwOUSc0T5qCDm/JXB7Za3nFLfNgYfcPOrTzKMhSQvRBgJPXvBAC+sOw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB4926.namprd12.prod.outlook.com (2603:10b6:5:1bb::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.20; Fri, 16 Oct 2020 16:10:22 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:22 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar Subject: [edk2-devel] [PATCH v2 07/11] UefiCpuPkg/MpInitLib: Set the SW exit fields when performing VMGEXIT Date: Fri, 16 Oct 2020 11:09:13 -0500 Message-ID: <36142178c353628121fa188d53d3792bcebc9e8b.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0601CA0016.namprd06.prod.outlook.com (2603:10b6:803:2f::26) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by SN4PR0601CA0016.namprd06.prod.outlook.com (2603:10b6:803:2f::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.22 via Frontend Transport; Fri, 16 Oct 2020 16:10:21 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e912d2dd-5b06-4413-555d-08d871edfbff X-MS-TrafficTypeDiagnostic: DM6PR12MB4926: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: NIM7y2g8ctsFdW377JQ8sOD2SwcDXILI6+tQ5Lvd4CcfjOd8+PR15j2fJhX91Zr7jbMGTpcmdLhABuPM8nhQJYEaSxbqx4ncy7IqBTLXf0GZM6+sBarACudq4do5/4Km2G/h6YuUV9HIZ97IFcvepGbtJQmW8/voeTz2zid0lwV084kERIHtplv/snPufIFu9diy/dnanHpXdz1yfWfc92NZJx2bHzGm5DGVoH4a+lvOZ6l3EBCC+DaWVgWuUrxMXrYQC8ulr8otriGCzfZt3U7MSbnflAI3qMpLhQy9qgMJyoTOQ+K2bbuqkSEVhFNS3FE3eOL4fFOKU37VQRWTyzX2zwcJ3bhlra36dbuhAj/S5XsUr3dy65fASjoo5EnqPcbJHWkkVYb4/8xGuLMF59AcvuFhaHK1c+Y6yeO5eWD9i6Gqtzfm+JU3+IESmXxlERAlckisa2RLyS/UjWzLjA== X-MS-Exchange-AntiSpam-MessageData: +qFh2TT+ZJVqbAucbBw7A9lbs/KEIPGPBP5R6HQWPe4a0r1fTRJjn7WKnJzjLOMT4S2b2KwzopyIrCdE/iU3D/AcvdkTjT8AWsSKlys/TpbAzTAfFBPbfP1hvfeyseKXHP2UrRfhRNWRhp941aIOJUedFKnYwR8JZ7Oeave6lDVv3tpM6whdJx3Dg/s6QLKRltKN9TndSpa/oLfAQcGm2jfDgYQPGvOGqFIW351PUz00IkIme7hIZtLK7supq8eeGoVtce7GHFtldGOMxHDWVTG7YmK9vx0ziGbORzn5AmDAiTH/Hqfi/DojeIFMs2LSwRPf7T5GcUpgXKHI+iNDxi0pqPZPtQxrm4g0ksbPAHaW+cdQMm37n2ZDFHqLHTvNoa8Jh+YHHJxcEBAwcEhkNzIIseXW8wRqLeC4xhiDSKvAmSc8lDFP3/ewmqcTNHVSSA763ZVgOXc+ZqGkPSHIs/D5w/B9Eq5050m9n6tUkZoMoau5EVIrbxpQ4V4eR9HoI98xFnwU/7X4/tYMPmtTnzjs16sfqmx12Gxo2gIzEPrQHoKEkcAw2PRylQ7HIeEHNTP9TCL0x13M8J+cV8EKKEKPe37ohzVjuAMDthCYDDCxQHt1EodiErZ/lgfoETxWJj+ApzyarNKtx3FFbQutqQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: e912d2dd-5b06-4413-555d-08d871edfbff X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:22.5955 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jg5Ajr/r89uuBSddYRT09JUY3LLNmSKOwYcS08tISE9j+CCMafCuUnFt8O3c1SelNJZGPQ5/CR+0kE/BRiCieg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4926 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: HiSCowQkC6OxQOvKHOebPtP1x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864629; bh=HAgclNkiuiqtNDL9uYFkcySSpTzLkQuAHSPzID0AjdU=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=RIHcp/aw8wpBdxVshyUvzJnj43f1lqIV5kUkJ2aS5kMbtbQmkFGAA6Xlu4SHZ9yfOa0 suKXiP2V5Btj6pS6FCVUVB015Hs1xK8HLcPto6aj9XMg15mRVh8DTi1vdjSv/PZ1JJ+1h Qq6we1bmAbWEqn+DwgpQfCe/s7mwI7BN0pI= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 All fields that are set in the GHCB should have their associated bit in the GHCB ValidBitmap field set. Add support to set the bits for the software exit information fields when performing a VMGEXIT (SwExitCode, SwExitInfo1, SwExitInfo2). Fixes: 20da7ca42a33d3ef767ce4129f11496af7f67c9f Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Acked-by: Ray Ni Signed-off-by: Tom Lendacky --- UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm b/UefiCpuPkg/Lib= rary/MpInitLib/X64/MpFuncs.nasm index 5d30f35b201c..5532a1d391bc 100644 --- a/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm +++ b/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm @@ -533,6 +533,12 @@ BITS 64 =20 mov rax, 0x80000004 ; VMGEXIT AP_RESET_HOLD mov [rdx + 0x390], rax + mov rax, 114 ; Set SwExitCode valid bit + bts [rdx + 0x3f0], rax + inc rax ; Set SwExitInfo1 valid bit + bts [rdx + 0x3f0], rax + inc rax ; Set SwExitInfo2 valid bit + bts [rdx + 0x3f0], rax =20 pop rdx pop rcx --=20 2.28.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 (#66334): https://edk2.groups.io/g/devel/message/66334 Mute This Topic: https://groups.io/mt/77553973/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66335+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66335+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864634767151.22509490698417; Fri, 16 Oct 2020 09:10:34 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id J4DSYY1788612xZiRxCrlToP; Fri, 16 Oct 2020 09:10:34 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.41]) by mx.groups.io with SMTP id smtpd.web12.19862.1602864633829833868 for ; Fri, 16 Oct 2020 09:10:33 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iNUIutmwDCo3WRL6Ob1jL4GiXNZhL92lGbpb5voeU2N1PC0L+VNC2Fl8mZpAZVGArQXLYKkFWZyMN/5w38H8BDV6dMafcxg2jaKcneYn2zerAsZn2DBmWEopevqNZJjsKu6K4A91/v5x4p0YymToCyhl97zHu5TG+Hq2FFEl1CVziK0OJhTdBc054MfvRomd0zjt8pEC67Cfn8KRGDmH0ZNWwv0mH3HfJDfqClccspnO/zUYcs11vn+q20XyC/ROaUsQVqIGk0PAlSiUWTXBnIjMsZtp4Pxn1iNJ4mYogk/Dl7t8Q1KOzGyAK4wU2du1uva9O57wt8hAC1YNe8pC9g== 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-SenderADCheck; bh=ytwHZppBWxRUUaggJ6uLqVZnEH+LYUmUtddADSYc6AE=; b=Smw33cDOlcC0kNO6QT0jg7CFm+siVP8YPhVasIenI/6wsi4618VTsoEQ2JPDnH0Qk1IEeia3ImPZCEgz67o7ASbl2wuDAZbnKz5bGBaXq9z412w80CubWrZineK0ocBJHyJ3u9lbE9KpGU4GdNhqRcqMxLzICmIBmd87rypL4ARMVqLaDB2X77VSOgDvDMn38iDaUQHIqFRpf2nOGu/v3gXFONorH3MYb2RAar5xyi5DgVbQFf4Gk07cWyYeIB35cuJNZEJ49rLCM75gdq2lUqFfITS7uvNf6b4giCtHyfX/d7ql9sJbud06P12RyS+MQTYfRswBDON8cOs1JJvo0g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB3082.namprd12.prod.outlook.com (2603:10b6:5:11b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 16 Oct 2020 16:10:30 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:30 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 08/11] OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Set the SwScratch valid bit Date: Fri, 16 Oct 2020 11:09:14 -0500 Message-ID: <77a031eb3e5a47c2d384f37707ad9e36358ea327.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN6PR01CA0003.prod.exchangelabs.com (2603:10b6:805:b6::16) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by SN6PR01CA0003.prod.exchangelabs.com (2603:10b6:805:b6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 16:10:29 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 22bfb962-0e3b-4395-3f82-08d871ee00cd X-MS-TrafficTypeDiagnostic: DM6PR12MB3082: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: hbqIp8MfiR+sKryfnr2+vMk410Xov4vIP6+Gd4XPnury/6G30mXuTNbvgNDTGlt6hn0/vqrj8g+DM11lW9XWSkQVpvqlDZxZeesRIoVSTWzpXMtFQxvglGkJBIe3bx0d55w6JljLK8XI2LxsvIQJ7LszqatJ91iK/HbAGPZhN4uR595uUnxZrMpSHBS7U05+KHwmKtygPzkL9VROH3bda+/qqeHfd1vJU8rx0Z+dyEXbFlldZuJq6Bt7W3hq526Y8bf0IC9b+nSzCRRhX++x63T/Hfkkh0nlSYQ7JxkIy5fCsvUh2dGcpxMkas82hmnTau+e3mW2lo+wjV6ExAXbq3mXLrU4HoAiahEbaW2rQwRBO/hvhvrlfdtox1goCjn2MbyKaaf2cEnSNBW/BwdvnTVkok3AwGc7UR2pGM5LJr2b0r0F/0IKnzXd31TVYzfRrpq7ScO1FozxUqrtMqD1+4pyWB2acO8TrjMkLEtdNvM= X-MS-Exchange-AntiSpam-MessageData: wHtZBHzgI9NNeYBIvkRb7YymdCMPkl9w1JpG42ATWsiN8531e9Jody5QWBUDUpVf8oX05rit4FUCSz4Legue616s1Leq7/WzCJtd3CvalR0BpN2brrT8kxOZTzS/yon07N+m/cevyecDjytFcPS4XCHD+UqhS5PolFyrJ9w9SAzGgDQbp+e7W8UnF8git8tIpKbHFRLnVjnDeyJ0/unkMgwAZ20Nx7uCcX3vUqsR2nWoeJMGauoP5r0CI6sGsvIfSYHdGcimEIuyRPwcZNDoEVfYlKd1PM0n57D7AwaDyLtSZHFTjr2/o8WJY0vGgmew7/2hzT4dLEizGJQ5vkK3D//QnpwYE7yA1fdcCjE6UIpX7ccmP5gmPY0/8PGygeRXATGhKJJHIEY8wYg8mVRYr9IgO/OQzfpaULvjwkiRrQeSdIQnJ5ljY8HJmQSoC4X/IvwHiUchUmZiztoAQf8VQwfSQQh9fct6h9EAXGHdauDSvvicr1wMF0mUI3XwQItRclacT5ulpaOPLLEmfd1aZb0GNXRrKF3wKKV4xaHcqqjVrKSI4eRVN32cie44XEb58jV4w2oQ8jVSi4ax0BAYSR97hJijAWxsoBPEAu8Qv+MqJeVLX1cpHV5p5mInNAnOAdF2zkA/nAm9O3v30P6bzQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22bfb962-0e3b-4395-3f82-08d871ee00cd X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:30.5600 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: APfG19z+ambz0TGnasrcvhIDVuaLtOM1Zz826RrdQsgJ4N7n2PYZUKQIkfW/sLciLDPrxL9M+09wGnHIwVaBIQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3082 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: 3qqYwpoSoHHaoGKA8dYRJAoYx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864634; bh=9x15ynxd9pgXkZR3u+5jUmPju/pi7S8n/Tv/p6HoI30=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=cwChIuJS+E1yWSc2x3ZuIC+8juEJ0SPyrc1ry1BU+q7R7gJfSj1jAU6bMS0RJM7Zlgc fybAFdf4Z10sm6KA4Iwb4JP7Xyt347w8C7NDl9OvyPbXbTuplCQu3+W4RkjhLchcJvMUE NW8nyUJP8+iFRWFlKO4yeeLizVge4KfvFVY= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 All fields that are set in the GHCB should have their associated bit in the GHCB ValidBitmap field set. Add support to set the bit for the scratch area field (SwScratch). Fixes: 437eb3f7a8db7681afe0e6064d3a8edb12abb766 Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c | 1 + 1 file changed, 1 insertion(+) diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c b/OvmfPk= g/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c index 565383ee26d2..f9b21b54137d 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c @@ -66,6 +66,7 @@ QemuFlashPtrWrite ( VmgInit (Ghcb); Ghcb->SharedBuffer[0] =3D Value; Ghcb->SaveArea.SwScratch =3D (UINT64) (UINTN) Ghcb->SharedBuffer; + VmgSetOffsetValid (Ghcb, GhcbSwScratch); VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, (UINT64) (UINTN) Ptr, 1); VmgDone (Ghcb); } else { --=20 2.28.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 (#66335): https://edk2.groups.io/g/devel/message/66335 Mute This Topic: https://groups.io/mt/77553977/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66336+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66336+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864640610242.7425402094002; Fri, 16 Oct 2020 09:10:40 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id y5rVYY1788612x8xKo8IIyGa; Fri, 16 Oct 2020 09:10:40 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.57]) by mx.groups.io with SMTP id smtpd.web12.19865.1602864639539938413 for ; Fri, 16 Oct 2020 09:10:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TAvrDPlPJ0Ko4HUlUp+CjuBcdNv9ioNPCP1IlNR79devxA5OHFDVoZaMlY7fi6oPS8X0x1dxc/zJS+FzXeMMMP1gNH8b+rXUohCmqALqV2oDTEBwKbpHrJ+YuL07s+YVLG7o05rBnmKAW6K2HZ2e/VWeyzlUWQdTVAmjISLq6Q2aDLP5kdPJez1jVJCH3REDooDiwZimO16QLLgkeD+3P7AB4YD68hpZ7jOKfuw0WPSxp47GTKRJ0lizsfVx86m0VEoSiFkxdw4VvQQMnHdi7rffb9EH1L5PwO7XxIq5qeT7217TSVLvN5UxJ5FpUJCkTW9nM2I5LO1/ywGk1wCH/Q== 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-SenderADCheck; bh=5GsnKvm+rfQaEf8t7738xvVSDnqJ92knwcjJva2/1ro=; b=UPFtQprUBixeaAnl9vYR7PdVKd5kYcGC9q/TfRIsbnqiyL3C02OujFKOMjZyF4sHsYZH1k6tE1Z4kVhQ2tSFy3RYO0TL3TRShszpN3/E1fYLdcpt90G1tpMR2omW6kUhoepBEpTYx0NvzyuAHfy5tSCaWRKMbV+IM/VGRge57wRldGYyv9JCf75denMiCLgMz2XWCTtAR0oYZfolmmxKWQ+wmE1nqeFus1dbKyXAouP2Qrc3Y31Isyr6pXagS5v7WCt20SNDsnwhnmqbCogOuuMXvdPz4bW39AKLRhpWD7qYrMFQ9Z1hO7/SmHZtlimj2WfBgLrdxIyVRUisrAMrkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB3082.namprd12.prod.outlook.com (2603:10b6:5:11b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 16 Oct 2020 16:10:38 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:38 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Jordan Justen , Laszlo Ersek , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 09/11] OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Fix erase blocks for SEV-ES Date: Fri, 16 Oct 2020 11:09:15 -0500 Message-ID: In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN1PR12CA0107.namprd12.prod.outlook.com (2603:10b6:802:21::42) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by SN1PR12CA0107.namprd12.prod.outlook.com (2603:10b6:802:21::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.22 via Frontend Transport; Fri, 16 Oct 2020 16:10:37 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: c6129233-bdf7-49dd-a0a2-08d871ee056e X-MS-TrafficTypeDiagnostic: DM6PR12MB3082: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1303; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: j5rAGZLu0tuuvFAN3l6FiAaTHVoAJPMR+MiXTsDiSeZ7cS6aiJekiYq0P3VcM7FPAQMGjCXgKw8UQ5IkZNl93hUr/7An6BiEX9NzC0fQaaLgojDSfuShZcnsV2swj1PaL0VviRW9w42wWKMDgZQIWS54zTcsJ1U8J6Wh+nc705RA2edjQRuF3YV/iBsU7sikszJfD+HD2+8KMXcRDXiy20w6BRGr1PRsMBYqmwtIJBumlfrtHIVGAQ+dCJTnPbv+s2YsckSB5dIH0TcXEnCMa6iVJEUH4j2/Ql+t1RsUM2d22/SIlm0vwFifr1yhzTX5PuKdHNYWy38F9nvDOgcyjBvem0BPAtplJoAUpHf3OEYW/F5K+jyYw5tcuJZ/6MfQpTjpGdHqb8fmZfvxkgTRbNzZJINX1o3BH4rCJiSKi1UkgPQ4/2heCeJsFUopZ1i9KcTUADMDsoL2wuD8qrj6w8F4KURLctKR5U72xMzTyzA= X-MS-Exchange-AntiSpam-MessageData: HbYuPMh1mZbqcbERGpE2CUw6eXRR2oJmPP/SBOA4CoaaakOP8nO/OP+LAG16/H13eWlkQfXN80wo5dBQLXVy5ksIZXPguBwYDmqXaWxDr7bWq9psXPgRqjB+oJhDTfu6/qajg6W0ouQuQXqGQBi8UbRGCS8RYebPj8H7jNs80gc2h0x/VPHbuI4Lg5tW8UBzbNgPG8rsi4VYdkSqZm5an5BciB7ITvA+ySxJ1FrKmqrkcjf6WvGhT7o4lajK7dRRpcTIBdFXTvlcgO16NkkppT248j5r+3NBMKft/c1AfZaoXn+0tQQXxnCwiJjNnASySjiPzIZLKsnI/r5nPGlHt1gdeCor9RoNwWWHHlspjBic7x47rR2sKXMqB0t63TvN5O1YiYcYMh+l2OcvFxPE8oJ3qh1n6X3m42yZq4RVI9Cw4Ndy0vtrzZaWyR4ukm49qFI9cBcMPCJCFf0l3SdTS0j1fGAYUuYM3ibkyTbdWjJpQhtb4jLppODlzxtSiW7vzA7ho2SlO6xVQ0/84kmy88Gg48Y02JK4wtaES1S1wV/h8CqQ+KN0MDWYYhke0/LvR13r0Qj9YEZs4cKiJ5kg8Xo0ufJ1Metosz311ZNuY7di9kaeHoROrpXNIdtUKENHw6lwwx5+h8Zf7PeRicaqwQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6129233-bdf7-49dd-a0a2-08d871ee056e X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:38.2605 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: HUioX4Xe01VUoYMF8sZCdJcnWBqHAz/OGSH1uaZ71VxakH+kaqJmjVG67FbA9Y1PwiYKp5AUOu0Zo0PqlV9Xdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3082 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: CWQSXP8cmMFtIIcqjelhoDzLx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864640; bh=wUy3PipUhotsbEJhsbDPIPGX5ZCqpLsGMgdwt8Cz7jQ=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=srbIzeDx/NwrHoX2s1vbiOAxKgnqbzgCt9oTmTOnHSJVKANMUJ6U0hj6abMpaNXIUnO WNV1zCp/qVy4e3WW1hgUIawykZexqt0FKpoAj5at1ip3k0ujSdFwBrQJjz5+YbYGTQpfu dLWuw2KkoYM8rpjXt23C5kS39glF2573KSw= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 The original SEV-ES support missed updating the QemuFlashEraseBlock() function to successfully erase blocks. Update QemuFlashEraseBlock() to call the QemuFlashPtrWrite() to be able to successfully perform the commands under SEV-ES. Fixes: 437eb3f7a8db7681afe0e6064d3a8edb12abb766 Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Reviewed-by: Laszlo Ersek Signed-off-by: Tom Lendacky --- OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c b/OvmfPkg/Q= emuFlashFvbServicesRuntimeDxe/QemuFlash.c index 0d29bf701aca..d19997032ec9 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c @@ -232,8 +232,8 @@ QemuFlashEraseBlock ( } =20 Ptr =3D QemuFlashPtr (Lba, 0); - *Ptr =3D BLOCK_ERASE_CMD; - *Ptr =3D BLOCK_ERASE_CONFIRM_CMD; + QemuFlashPtrWrite (Ptr, BLOCK_ERASE_CMD); + QemuFlashPtrWrite (Ptr, BLOCK_ERASE_CONFIRM_CMD); return EFI_SUCCESS; } =20 --=20 2.28.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 (#66336): https://edk2.groups.io/g/devel/message/66336 Mute This Topic: https://groups.io/mt/77553979/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66337+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66337+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864649144111.47183711880018; Fri, 16 Oct 2020 09:10:49 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id G1e8YY1788612xbBtQkIDF9g; Fri, 16 Oct 2020 09:10:48 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.65]) by mx.groups.io with SMTP id smtpd.web10.19659.1602864648275596316 for ; Fri, 16 Oct 2020 09:10:48 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PtJzonjyXO8zSKFTGKD2Xihao60l+eaiqawpqX5QtoTXmu9ODTJ20fnU6OJahzp7TkLizV6/VIu+DIx/0SmsP3GgIaGlJB26xka85DYgGM/lRtd9XM9MxdCrIRYfejZ5jcVDD8DLLWJGTa6cRtvGMtrEbNqCNmiXYpq54JffvFQBDhx+XTs7rSYdA/e9stYP6iwSYvr5ouf9rMPcnkUIcWUv3Wh715MdYP0fHa+cb119/Npmr+Qpxooyaz1tE1IhzzcUxpKNS1qWVJdKqLq8kejS2zpx/n4ZseD5FLcoeap2Vry0xPSSKXenHYDlZu6uhFv/saSQguJ0qWQBjELfOg== 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-SenderADCheck; bh=AnV7rhd6RarOLEiKVvrHLGPEgDUUA5BfRHW6F+0bFm8=; b=OfmzXPRCb5G4qA8SwHt3Tk+Z1wF1CuMxJZcfo8u7XeWpUSeBUFe55jYi2PUF5hFFugUIkHGM/Dq/AyIEf57bxdAVRQSt0vn7ULMvBeO+E8s0cCbDhCUeJjiBG1IyAvlgpCDGLRDn3utkW+LHyv22/0ccfBPcEB+eyaxC+NMqDlw7tW5VcFztsd9TehHkA9L0Oig9R3wSmA+Q8z4A9cKZEjcicmTyegdKl3fuBsD2aeU9uTvw/unQg2vB+PdRezzysVhCvl2b35UP7sVDvfShgn8jvxiNn2nKgXMMJ8o6Ez9dTzhPRUb0FrClPVJl3U/pEj/KcU+YkFSpW9yovkwatA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB3082.namprd12.prod.outlook.com (2603:10b6:5:11b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 16 Oct 2020 16:10:46 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:46 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar , Jordan Justen , Ard Biesheuvel Subject: [edk2-devel] [PATCH v2 10/11] UefiCpuPkg, OvmfPkg: Disable interrupts when using the GHCB Date: Fri, 16 Oct 2020 11:09:16 -0500 Message-ID: <817ead39c5331b3b10055c32c36aa55fdbe2f8b1.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN4PR0501CA0015.namprd05.prod.outlook.com (2603:10b6:803:40::28) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by SN4PR0501CA0015.namprd05.prod.outlook.com (2603:10b6:803:40::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.10 via Frontend Transport; Fri, 16 Oct 2020 16:10:45 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: b07fd12e-3805-456e-34b3-08d871ee0a2e X-MS-TrafficTypeDiagnostic: DM6PR12MB3082: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: NbNAstKmbIIJUZnNM681NaARJh+JMXjDva+Gv3BHau95rIuIXa6inXlHZYJUw+k44tdpWOgxi+XMjQ9YwW8iLkSOkmp+fAgRSGKXhHpu8CmjhyhKfAUv1SdB8Vl6OdptqT7Cs6zd0s6vvSvPrQPIXN3YtBBVor5dFOi2+zy5d8okAkqCl6aEF8uUuYiooYS8noPt/47dAj4xfp7SG4wDRSInYE3K2sYJ9uzuw1/Pieq65F0ylJ5CG42oNIZ5VUc2ERPGNSCyU2WqVIZsb6M+gReyn7UW50RLucQKEBbLitaOTpbTuq1f7nIE1gq7WxcIog9ltlRZOb6ZGKX+TrwIu8xozbCTgV2zbS29VIcHPFXK3y6naCINvRqEa8vdL96NFmgm77EyUlbE1lSuujVzz0YiWs445qsYuweD9lxrW0jhIHkpIUfUpkKZCoJ9NaYXZIL9jTIdRktcLPc69fJg2g== X-MS-Exchange-AntiSpam-MessageData: 0Bri7LvzDUZB1NlmnNEFBflRM2rwBVy3UX9wHII4FPenCfejeUJY361ZY5Z/1UaRYkbzlSsTYtj+2lRc/AKu1NKaRTl78FvDQVZuUg/tE62pSmxTvOPpGyCutK1NKjdTgbr3f2H5PubUMKtFbOIl3zyrlimSEFn8/njF+HAGu+Hsxdawx/Nn+Yw0j9BQ+1E3Clgqr6ul2ZkkCEE9LKRApCfOFbogAhRfI4y+pZU4nUfKl3xp3/yZfVQNks9BmjYVYGVSNED+ENawI4yzR2Tx98RydLjTIlQHlo1NbIAvVtNgtLk7MB/YvamDKupec2NQ1ySLnf6MJKWP6asoUYmQuTcB492tTe6CEuPLxLrOsDAV3PS822Ii3RAm51brg/XxgnqMyixcdIrIfUUSa17wk36EXMJzIphqhyYHVcskpIW6ZGzRYENKCbpa9l6mzubnonchxdveH/Ed+xWLfHm6iSsCOqAmYWkwCPS9XNwAItPLBB6L/0+IuIno0mHrxgG1lTOHGuZcILHq1wh3kAddCgY+ENHLCLLuAJiCUo2EIKA0HazTl4Vd8P6kTDb7xl+JcYEhUwWZuIzKxZqxWo8+TVlRc8dk4+o87HnSVa112BYOn07j7sOO5gcrNF4TYpHRvF2y6NgB536I/T6+FMHSBQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: b07fd12e-3805-456e-34b3-08d871ee0a2e X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:46.2429 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: C2w+i1fcA273TH/NFse9JbDOZNoXotkMiNZoM27TPtRaQoIjf3BcFbBGVfWH9CQR1pJom1PXp7gWziFBOIq+cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3082 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: z6QKXR8lw61C6pQMXde1dMsfx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864648; bh=8AU9zr/CqYWz2jm0H3Ic9kvk8FAyAb8mwn0gJa55DSY=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=LIpbgtoB80oPgn5G/X6i1lQMJCvuxm10IfL8N0QxPgklZQq8laNaolwXDl0U/5Oz/d7 aW2Rd4WZ8aEQsRpdtLKh+l6UNTI320O2uaDY0DpfHdX1B3G5JmQ6vMVKyYnPalOKq8PZD N5PKfcGu2+aD+cu8QYexTekr8kVyr0Z33tw= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 The QemuFlashPtrWrite() flash services runtime uses the GHCB and VmgExit() directly to perform the flash write when running as an SEV-ES guest. If an interrupt arrives between VmgInit() and VmgExit(), the Dr7 read in the interrupt handler will generate a #VC, which can overwrite information in the GHCB that QemuFlashPtrWrite() has set. This has been seen with the timer interrupt firing and the CpuExceptionHandlerLib library code, UefiCpuPkg/Library/CpuExceptionHandlerLib/X64/ Xcode5ExceptionHandlerAsm.nasm and ExceptionHandlerAsm.nasm reading the Dr7 register while QemuFlashPtrWrite() is using the GHCB. In general, it is necessary to protect the GHCB whenever it is used, not just in QemuFlashPtrWrite(). Disable interrupts around the usage of the GHCB by modifying the VmgInit() and VmgDone() interfaces: - VmgInit() will take an extra parameter that is a pointer to a BOOLEAN that will hold the interrupt state at the time of invocation. VmgInit() will get and save this interrupt state before updating the GHCB. - VmgDone() will take an extra parameter that is used to indicate whether interrupts are to be (re)enabled. Before exiting, VmgDone() will enable interrupts if that is requested. Fixes: 437eb3f7a8db7681afe0e6064d3a8edb12abb766 Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Cc: Jordan Justen Cc: Ard Biesheuvel Cc: Tom Lendacky Cc: Brijesh Singh Signed-off-by: Tom Lendacky Reviewed-by: Laszlo Ersek --- UefiCpuPkg/Include/Library/VmgExitLib.h | 14 ++++++++--- OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 26 +++++++++++++++= ++--- OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 5 ++-- OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c | 5 ++-- UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 5 ++-- UefiCpuPkg/Library/MpInitLib/MpLib.c | 7 +++--- UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c | 18 ++++++++------ 7 files changed, 55 insertions(+), 25 deletions(-) diff --git a/UefiCpuPkg/Include/Library/VmgExitLib.h b/UefiCpuPkg/Include/L= ibrary/VmgExitLib.h index ba5ea024839e..617b6cf8d2e7 100644 --- a/UefiCpuPkg/Include/Library/VmgExitLib.h +++ b/UefiCpuPkg/Include/Library/VmgExitLib.h @@ -50,13 +50,16 @@ VmgExit ( Performs the necessary steps in preparation for invoking VMGEXIT. Must be called before setting any fields within the GHCB. =20 - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] InterruptState A pointer to hold the current interrupt + state, used for restoring in VmgDone () =20 **/ VOID EFIAPI VmgInit ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN OUT BOOLEAN *InterruptState ); =20 /** @@ -65,13 +68,16 @@ VmgInit ( Performs the necessary steps to cleanup after invoking VMGEXIT. Must be called after obtaining needed fields within the GHCB. =20 - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in] InterruptState An indicator to conditionally (re)enable + interrupts =20 **/ VOID EFIAPI VmgDone ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN BOOLEAN InterruptState ); =20 /** diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c b/OvmfPkg/Library/VmgE= xitLib/VmgExitLib.c index ae86d850ba61..18b102df5f9a 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitLib.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitLib.c @@ -132,15 +132,27 @@ VmgExit ( Performs the necessary steps in preparation for invoking VMGEXIT. Must be called before setting any fields within the GHCB. =20 - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] InterruptState A pointer to hold the current interrupt + state, used for restoring in VmgDone () =20 **/ VOID EFIAPI VmgInit ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN OUT BOOLEAN *InterruptState ) { + // + // Be sure that an interrupt can't cause a #VC while the GHCB is + // being used. + // + *InterruptState =3D GetInterruptState (); + if (*InterruptState) { + DisableInterrupts (); + } + SetMem (&Ghcb->SaveArea, sizeof (Ghcb->SaveArea), 0); } =20 @@ -150,15 +162,21 @@ VmgInit ( Performs the necessary steps to cleanup after invoking VMGEXIT. Must be called after obtaining needed fields within the GHCB. =20 - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in] InterruptState An indicator to conditionally (re)enable + interrupts =20 **/ VOID EFIAPI VmgDone ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN BOOLEAN InterruptState ) { + if (InterruptState) { + EnableInterrupts (); + } } =20 /** diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index 9bf9d160179c..1671db3a01b1 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -1568,6 +1568,7 @@ VmgExitHandleVc ( SEV_ES_INSTRUCTION_DATA InstructionData; UINT64 ExitCode, Status; EFI_STATUS VcRet; + BOOLEAN InterruptState; =20 VcRet =3D EFI_SUCCESS; =20 @@ -1578,7 +1579,7 @@ VmgExitHandleVc ( Regs =3D SystemContext.SystemContextX64; Ghcb =3D Msr.Ghcb; =20 - VmgInit (Ghcb); + VmgInit (Ghcb, &InterruptState); =20 ExitCode =3D Regs->ExceptionData; switch (ExitCode) { @@ -1662,7 +1663,7 @@ VmgExitHandleVc ( VcRet =3D EFI_PROTOCOL_ERROR; } =20 - VmgDone (Ghcb); + VmgDone (Ghcb, InterruptState); =20 return VcRet; } diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c b/OvmfPk= g/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c index f9b21b54137d..1b0742967f71 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c @@ -52,6 +52,7 @@ QemuFlashPtrWrite ( if (MemEncryptSevEsIsEnabled ()) { MSR_SEV_ES_GHCB_REGISTER Msr; GHCB *Ghcb; + BOOLEAN InterruptState; =20 Msr.GhcbPhysicalAddress =3D AsmReadMsr64 (MSR_SEV_ES_GHCB); Ghcb =3D Msr.Ghcb; @@ -63,12 +64,12 @@ QemuFlashPtrWrite ( // #VC exception. Instead, use the the VMGEXIT MMIO write support dire= ctly // to perform the update. // - VmgInit (Ghcb); + VmgInit (Ghcb, &InterruptState); Ghcb->SharedBuffer[0] =3D Value; Ghcb->SaveArea.SwScratch =3D (UINT64) (UINTN) Ghcb->SharedBuffer; VmgSetOffsetValid (Ghcb, GhcbSwScratch); VmgExit (Ghcb, SVM_EXIT_MMIO_WRITE, (UINT64) (UINTN) Ptr, 1); - VmgDone (Ghcb); + VmgDone (Ghcb, InterruptState); } else { *Ptr =3D Value; } diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c b/UefiCpuPkg/Library/M= pInitLib/DxeMpLib.c index 2c00d72ddefe..7839c249760e 100644 --- a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c @@ -171,6 +171,7 @@ GetSevEsAPMemory ( EFI_PHYSICAL_ADDRESS StartAddress; MSR_SEV_ES_GHCB_REGISTER Msr; GHCB *Ghcb; + BOOLEAN InterruptState; =20 // // Allocate 1 page for AP jump table page @@ -192,9 +193,9 @@ GetSevEsAPMemory ( Msr.GhcbPhysicalAddress =3D AsmReadMsr64 (MSR_SEV_ES_GHCB); Ghcb =3D Msr.Ghcb; =20 - VmgInit (Ghcb); + VmgInit (Ghcb, &InterruptState); VmgExit (Ghcb, SVM_EXIT_AP_JUMP_TABLE, 0, (UINT64) (UINTN) StartAddress); - VmgDone (Ghcb); + VmgDone (Ghcb, InterruptState); =20 return (UINTN) StartAddress; } diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpIn= itLib/MpLib.c index 07426274f639..4f4b26a7c196 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -884,6 +884,7 @@ ApWakeupFunction ( GHCB *Ghcb; UINT64 Status; BOOLEAN DoDecrement; + BOOLEAN InterruptState; =20 DoDecrement =3D (BOOLEAN) (CpuMpData->InitFlag =3D=3D ApInitConf= ig); =20 @@ -891,7 +892,7 @@ ApWakeupFunction ( Msr.GhcbPhysicalAddress =3D AsmReadMsr64 (MSR_SEV_ES_GHCB); Ghcb =3D Msr.Ghcb; =20 - VmgInit (Ghcb); + VmgInit (Ghcb, &InterruptState); =20 if (DoDecrement) { DoDecrement =3D FALSE; @@ -905,11 +906,11 @@ ApWakeupFunction ( =20 Status =3D VmgExit (Ghcb, SVM_EXIT_AP_RESET_HOLD, 0, 0); if ((Status =3D=3D 0) && (Ghcb->SaveArea.SwExitInfo2 !=3D 0)) { - VmgDone (Ghcb); + VmgDone (Ghcb, InterruptState); break; } =20 - VmgDone (Ghcb); + VmgDone (Ghcb, InterruptState); } =20 // diff --git a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c b/UefiCpuPk= g/Library/VmgExitLibNull/VmgExitLibNull.c index b000232c472e..24defd624c63 100644 --- a/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c +++ b/UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c @@ -57,15 +57,16 @@ VmgExit ( Performs the necessary steps in preparation for invoking VMGEXIT. Must be called before setting any fields within the GHCB. =20 - The base library function does nothing. - - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] InterruptState A pointer to hold the current interrupt + state, used for restoring in VmgDone () =20 **/ VOID EFIAPI VmgInit ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN OUT BOOLEAN *InterruptState ) { } @@ -76,15 +77,16 @@ VmgInit ( Performs the necessary steps to cleanup after invoking VMGEXIT. Must be called after obtaining needed fields within the GHCB. =20 - The base library function does nothing. - - @param[in, out] Ghcb A pointer to the GHCB + @param[in, out] Ghcb A pointer to the GHCB + @param[in] InterruptState An indicator to conditionally (re)enable + interrupts =20 **/ VOID EFIAPI VmgDone ( - IN OUT GHCB *Ghcb + IN OUT GHCB *Ghcb, + IN BOOLEAN InterruptState ) { } --=20 2.28.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 (#66337): https://edk2.groups.io/g/devel/message/66337 Mute This Topic: https://groups.io/mt/77553982/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Fri Apr 19 21:04:19 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+66338+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+66338+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1602864661238295.44910127149944; Fri, 16 Oct 2020 09:11:01 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 0VvzYY1788612xvOJYH14JIV; Fri, 16 Oct 2020 09:11:00 -0700 X-Received: from NAM12-DM6-obe.outbound.protection.outlook.com (NAM12-DM6-obe.outbound.protection.outlook.com [40.107.243.69]) by mx.groups.io with SMTP id smtpd.web12.19872.1602864655299232052 for ; Fri, 16 Oct 2020 09:10:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jn4n0emovLrfmfZo7c1D5+jka5jVeUBf1ceVM7DvM898Y4xvBwpkU7z1jlhchAMbqbBV+U0VKJlfMIOYkXBnnEClkvedUQtIpIVwRjugfWZrgd2G4nOxLWkaTx8+9RMd2k5wO2nb1G7fdxcSj8EuICQZUvb/MvyaetbLtsdsnTMNjyRRHq7E72t1NzzArXk4Fmn6xHnNfn2MH1FAEtbxhcQHVuso5q7Aj6nfDtPjmp3Ubxi1ps9llhZEj2dux5FHD83nFigYImfU2tzjbqTNQOfnC4bHgMIpLslsoXDXSm7QWAaVoSZwwFM7iBv4yA76e/AGjSCq4cpXR0fOrxUSDg== 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-SenderADCheck; bh=k333heJYsxK7ONXXuDLLjGtrxCXCKcOHHUNuhjCg3xI=; b=NZmbG51CY/WePBHZjDFR7B4WvL+LWU8NYWgqrNGOkkgeDQLKFKwJi0ZQPKsrTab2+Hq6y3mrJNXVNeAvsbNULaw9bCCtYHB+XhDRcJhhDMv/lJTpF7OROBX+6T1/eow5N6GKz45E4sA+vlTQy+i6BambewwJ+nSO0T7hS4Cgmo1mgQWbV3Q5iFg1FKO9j4FKWhMlsVv5pNkqnJY0OUmc43VJfCGpa6nHaY3B68wNtHZy90pdOcDOA6vA0VYm7GcLEdVEroyELZy7r3VTw/fnWdFmyCfWSKliU0z5A/aDThzPhRKBkql246ur4M5KcifVc1HkWTwvlV8A6Z6JSbPMcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM6PR12MB3082.namprd12.prod.outlook.com (2603:10b6:5:11b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 16 Oct 2020 16:10:54 +0000 X-Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::4d88:9239:2419:7348%2]) with mapi id 15.20.3455.030; Fri, 16 Oct 2020 16:10:54 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar Subject: [edk2-devel] [PATCH v2 11/11] UefiCpuPkg/MpInitLib: For SEV-ES guest, set stack based on processor number Date: Fri, 16 Oct 2020 11:09:17 -0500 Message-ID: <3a53fda34f0c765e1f28ba26ac2cb6fa1db29345.1602864557.git.thomas.lendacky@amd.com> In-Reply-To: References: X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: SN1PR12CA0098.namprd12.prod.outlook.com (2603:10b6:802:21::33) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from tlendack-t1.amd.com (165.204.77.1) by SN1PR12CA0098.namprd12.prod.outlook.com (2603:10b6:802:21::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.21 via Frontend Transport; Fri, 16 Oct 2020 16:10:53 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 04579c69-86c7-4586-6de7-08d871ee0eea X-MS-TrafficTypeDiagnostic: DM6PR12MB3082: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2449; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Message-Info: rxEqiHnKOdksNN37k7LJFATmmZJx9McyLuBY6qfJqzPMNLeAtGuHnFj+KLBG8IVkXJebf3lw0SU0fURBU5iyXRpdBxW2FhZ3o3G1Xv+jiP6DBQmxRfAYmXsQffI92FQb2RSgFOpZdng85V6Nmk1yg7mnBHqJV0dY8Sk4RoaAiJbrLaU7LpIHQxGXzjenjjbu8sWvr+glR0blaH5O1z2lTymLLnEfkUh3mFMO/i5kuxgro8GZDtbmn/WcS3M27ni5UzqqpT0Ua5vp7C91GX/g5im3ECkha3VAP+7Y3xuArAazom7mYLwR8A8wFVhGI92+PTRGqx5DP2x76t75ef/F6sIzV2cpQtpLlg6M64lC4s+8/okrjpTULob3te1Ua1XYNYsg0PniHq/M/f0Py4mIgIeH5p9B0R/aIb2uCp23ayAthmp4TDanj/MIWLz0C4hUxVrVTQpYEDo35l5JDWSrhA== X-MS-Exchange-AntiSpam-MessageData: zCQMTdjSK31rv+o2fw5GMZgx7RHRNSf2cLApWEbrY7Oazy+5hhcOKgsxyCZPxYTKWp6Gtd5DLWQLzxu75TUn2QeFMIBu/oBtme12ra9vRKQk3wxhx8aMzRBYIcAJmYBOtpBqKEytuuF54qgZTe9psu0FTQMyJjEChewlR3nTMqvPEkGPH6vy/8Ve6v+VjyFIoFgmjGwnFzhmVL5FbhZaa4IttMsIBq81nCu4Yiyllo20RpkAb1RjmG+dNacN9ps38NReCcZMVhelBmI7/whoCy/3sojPIla5xC+vTd9dW7q1j+qTamQFfZbHgTACJClA7fSPZIsoy33HL19lWtzSXy9BZLpOAivMuptmLMyMIb98ii4eK4MWoP8hbxLzALh8Z7cu6Xlj9wjcinC24ZYZN0/twQX2HKQfADIh2MRpWMNkfkx5FbC4//+cPmJ4FY101uwqhkK8b8kg+D6IVovKdmPzv9mdOXnrqKY3IGz1kKRf4EKB/rycL7PFvRHwhrRDLKt/IXrpRCmeqPzDYUgST7ry+GF+I6+D89P9VT2x8/Dg46iWYiS06MMGxgoGkh7TsI7ZmvEEOKq+K7Jqtpx26mfg6bZV8VvEZ91AYmAXnyLhE/esdINPkRcT5GeNBrywb0JwgYx91ht7NQlWFhbzEQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04579c69-86c7-4586-6de7-08d871ee0eea X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Oct 2020 16:10:54.1783 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KbqqHxP9lQetoHMxWvuFaUjSK2Z5q1bH6wsHsM15iS/Sm1wYP2epvc1MJYhVbmLjwmdRVLyDie9p03luNpqAeg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3082 Precedence: Bulk List-Unsubscribe: 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,thomas.lendacky@amd.com X-Gm-Message-State: RbT86jITR2CSgrUTVYfey7CGx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1602864660; bh=xGoV13lYsi6pHReoaYnwQLFmWzjCHXBteQhpzwvFmTM=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=qqrzcMXebSwdHRBpOqOBhMI+Z28dZi9xTDCYEw9JwGwumHMnOicKp7Z9IV3L54fRdZh NoGzb5AiJ8VNwgr/CyEX/w9CWm4jk8w1RAtMlQm6ol1Vbm7RDnhZaQWgHMoMUarQJxRI2 QR5TqR2i10bmGeBfOxIY4q2rPu4yqvOOmJc= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 Set the SEV-ES reset stack address for an AP based on the processor number instead of the APIC ID in case the APIC IDs are not zero-based and densely packed/enumerated. This will ensure an AP reset stack address does not get set outside of the AP reset stack memory allocation. Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Acked-by: Ray Ni Signed-off-by: Tom Lendacky --- UefiCpuPkg/Library/MpInitLib/MpLib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpIn= itLib/MpLib.c index 4f4b26a7c196..c9bb1d25c616 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -680,11 +680,16 @@ MpInitLibSevEsAPReset ( IN CPU_MP_DATA *CpuMpData ) { + EFI_STATUS Status; + UINTN ProcessorNumber; UINT16 Code16, Code32; AP_RESET *APResetFn; UINTN BufferStart; UINTN StackStart; =20 + Status =3D GetProcessorNumber (CpuMpData, &ProcessorNumber); + ASSERT_EFI_ERROR (Status); + Code16 =3D GetProtectedMode16CS (); Code32 =3D GetProtectedMode32CS (); =20 @@ -696,7 +701,7 @@ MpInitLibSevEsAPReset ( =20 BufferStart =3D CpuMpData->MpCpuExchangeInfo->BufferStart; StackStart =3D CpuMpData->SevEsAPResetStackStart - - (AP_RESET_STACK_SIZE * GetApicId ()); + (AP_RESET_STACK_SIZE * ProcessorNumber); =20 // // This call never returns. --=20 2.28.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 (#66338): https://edk2.groups.io/g/devel/message/66338 Mute This Topic: https://groups.io/mt/77553985/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-