From nobody Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79574+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79574+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629381834927559.8376476766188; Thu, 19 Aug 2021 07:03:54 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id CL83YY1788612xGCySe34pmc; Thu, 19 Aug 2021 07:03:54 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.71]) by mx.groups.io with SMTP id smtpd.web08.69841.1629381833646601298 for ; Thu, 19 Aug 2021 07:03:54 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mg0jiPJJPmPNQNSF5HZSH3vyEQtQJvN/24UfQyEzXTCNKCAkDEwmxlqBDvkFsA8GTNb18mEQDQa+oJNoCEilQOUUiAf8vVrkKNCLm5aETjrR5RkK8d6lWnoeZmdu4VYtABbPHBrHQbmdvJ9bE+fXxN0v9ApBq+lDPr2MO9JGBQSQtDZWU1LHo6uqyXXKFZJsUzRhuNK/tlQ/KcJienpAB6grZf0GG1PniB3geat0fjvd84NO0GYPYxeJ3gk3G5s35jKxg7T1rY++lH/cGN+RdRu8stBJ47qTYnO7ZLm1xm/Hu3icshSaPbqI1wBfXKvGKdK4YJ3+KGfxsabE4UrH9A== 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=1PJinaNnsxDYmUAWRLURAqlfJCQQP6sbkA4/f3fxxME=; b=Qc0mIfaSngAEp1Hnp6Xfx0MtItp9eMms0ZNOufJwWGQS2asQSlvnJYxW8lqlr9ZFxUyRJK3O3aGmDH+xoDmMxFxpMS0bM5jxete5adeyfVIciu3xVzIm29qh5/XFctG12dlyfW2HN1A/Kzs0Ymp8MmE3xtwGN6psR1DI6l9bC82Vs7qiR24Pri174WqON9eYljd05gQM2r96h0xCCMIhEatSIsIvJiA9cBYdHtkil/O0exJ5oXRuKzTOuFkcoUUdnjza3LjpK4BodGkjeCHt5vjmAcJihVFMXhsC18fkrV1S7K4gKIjLOl8gjCpdQxE+IajC6Chkfxpucw0Z7Eulaw== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SA0PR12MB4512.namprd12.prod.outlook.com (2603:10b6:806:71::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Thu, 19 Aug 2021 14:03:52 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:03:52 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 1/6] OvmfPkg/BaseMemEncryptLib: Detect SEV live migration feature. Date: Thu, 19 Aug 2021 14:03:41 +0000 Message-Id: <13ca7f08816f8aca6cd015879282249415eae79d.1629380011.git.ashish.kalra@amd.com> In-Reply-To: References: X-ClientProxiedBy: SA9PR13CA0025.namprd13.prod.outlook.com (2603:10b6:806:21::30) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SA9PR13CA0025.namprd13.prod.outlook.com (2603:10b6:806:21::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.5 via Frontend Transport; Thu, 19 Aug 2021 14:03:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 24425d6c-5440-4c4d-2693-08d9631a2c73 X-MS-TrafficTypeDiagnostic: SA0PR12MB4512: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 61HStdKoqRLeum8dW8m1jMtYgyuh7BjSrfGz8Xb622McBJi3XTlVScCLuVeuYDN0DHY7jScRyf/IMxrpX4MdnOzrssYVEMNwIM9uz+IoXUO0vZSmAPutit2dzGpbBYDXjRgpA8jJadYwZC1hZHsm8mslnExYC2jM20a0viBYhPMn7hn3d/GFg2u3SpgQImTVM3Bg6RMsEy/u/bLIbiDe8zP+RPEHUmvrj1tMOuLiJpuAbi7BFPBHLhE5KKVJREQSEZNVUpNPRKH1VjMIKjhreN1rk6Ch8rofi4DNjDcYWbltfvrERDOBWJdFIXyK0HOjO/R+RFoLI6EfVK4ODVLDgULX6LYJi2W5kNx7VaCSxKmBXA/zSneTOOarmOxHQL7VkZmOBAYniTQEzoAW6M6D3Nu+nNvAQypXTk+NWzmd0EgMfAAnXsEoJXsXR1EofANFqm5IENDkYF2zmywyzuq4k+vVLoIKKCARP/c6LEd6yZkhPiq2cEUN59MpPzad8gs/dCMCpIT9bj//TfjXkeIUqCQBJ1YC/UK/5UrVI6Kgg89lPjyJrJ0+/gND7aVDzpYsCp805Jb4QG2kjWvyMP1yTpb8BzGS1n3nFSfB7WzklGCRynkZURfB1/VT1pOrve2OCIyfe5yFKHPX7hdy2QlV3hyv36QX0eQzXzeCO/TLFdajAAGCB2W3SGVZ9tAsQ1yYih5OMf36N7XDjLYEladP5A== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PbeJlVn7f/Yu22h7o2L1+g2RO9gYmtVV8Gp/QLHc7evBicP5eaLfc8b6GATL?= =?us-ascii?Q?LDZeuk2BThXsVREtSQJx7SMCRdZHEW+Vv/ZR7kvK2UQGhTgWRbCYFTHpadaU?= =?us-ascii?Q?qBJPvd+F1CNSHow6o3CX/9+XrIAefK80kHXVC33g41lwDxKGrqQL4j5/CzQo?= =?us-ascii?Q?Sb/flyA0usDrPKFDXrAv5a7qIOP5nJyV1A2/SoeD/3sOu9e4Qy11XiOu0IV2?= =?us-ascii?Q?FG9x8xmXhMIHx6fCK4CLNKPbJjPqzUmh2NisikSWMXolJiLmREp4nzWmNgQM?= =?us-ascii?Q?Q6yr56CY5KxZAuCZ4ZBg8pk2LdzDOe99P4ReXiXyBQ/vyGDyjpNbQVeUplUy?= =?us-ascii?Q?TzGIf14yzwwn7YWmsprZCsmIq9Q0cA8wU4+gNhin/FQIbUju9sUzjfcRoP30?= =?us-ascii?Q?E6rdgVCu42Lh5An3UOnNGrt8kag0lK7TU5k1LVOXyogqdjDND218V/fmS4Av?= =?us-ascii?Q?QxW/oW421RzpeZSzGytcWbGlw8NrveB34tJ2xczIGR5/1nLL/YT+83tuIGYv?= =?us-ascii?Q?w/+d3fxAeoXwMYXAAGCiOotFXw1nmSXc//wWBco410KD0VoSNPC0QFTc4cIA?= =?us-ascii?Q?S9BKb4YYZVc5EP0XROgx9YSkw3gmHxTTH9NHSYjXr6ySg/ad/4HJM4tNKbjg?= =?us-ascii?Q?Qi62wgCzL3hcQf9SqO2bgibkLjUi/LnoVjSDWHNaogxrGMihK69ack5RXQg6?= =?us-ascii?Q?cpH/U0ZtxSLLVBJX1GnWJ7PuDhXOE/NCfXMKzvScBdoi9wCFLWPzRI1ViGfF?= =?us-ascii?Q?bUt6Qtz4heSMDlLNmS3zeHrq3af5xPYGjue/GY8uFWwPqs0zxAfwhqRDF2mE?= =?us-ascii?Q?NO0RsNL3X0RdoMmoo7+/c6wbCOwm8lhmwyPEhVbq/P+Sieyeayv/effIG1Az?= =?us-ascii?Q?9lIO6ZtvV5dKuJbmAt5gj30OqzEGe5exPYY0t1nuKrgF17fQjdxLN9mIeGQP?= =?us-ascii?Q?VMIF1MClsYNv6sQvA+h5SnovEnmNkKjs2908QNxrRm4YZJAwUISvh/3P4qF/?= =?us-ascii?Q?UnjhjUY2kOUymBFaizD1HMGlVnzaR4hx9pyHWmVrR21S6abMSXtVh49GJS9e?= =?us-ascii?Q?bZIgpArPEcS5pShvfS5KUQR5fWni8AhuJu9wSXnHCY+BSpsfEzcMqss+iwj2?= =?us-ascii?Q?vPf343Z73aw0Uk4h3+NjE/lS6Iol0M7Mt7TV1qbEhpC6VT1JCTNbhaUd3kh+?= =?us-ascii?Q?6d4LeVqJv3ZxvO4aTITciqC17rEwxtyWQL8Mux1YvLOD32e9GXWNYpJ4R1yM?= =?us-ascii?Q?REslK+aN4FEaKcH4qxdliqYwAd2cKGUL8r9P2e4IjqWIXQ+nqboACev9+BLB?= =?us-ascii?Q?LaU9PZjB8vSS+PlX7kY9rWbF?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24425d6c-5440-4c4d-2693-08d9631a2c73 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:03:51.8827 (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: KHdyA+Nl/SdDI9vXy3QcaHE9WuLEymlWNRSgA4N6GxUTf7BSpfEdupMdDuh6nqNVgKJwkVQ6R+EKFqsNarYiSg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4512 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: 88Wd7DaIMgk9L09bEc45fkJYx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629381834; bh=VL2hV6yc3RW5TjgPbUzjCsDws/a5LVQfwJ5bVCrJh5A=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=ffW/NLnQ2Z/s7KwIuGbZ7I7NrPZ+MZLqyG1LX6NO0fH95WCIYGi86XjCfD0ipUALGvW fLkd1zLpafNCnLhapPeyDC0juPdQ9pMPoiepfLSbguPULiNpYpg0Jx3vhZxMPvq/Evxij ci0yWZdLw41lF4JRTU4N1rqYIEVjJEKSlTw= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629381876061100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Add support to check if we are running inside KVM HVM and KVM HVM supports SEV Live Migration feature. Cc: Jordan Justen Cc: Ard Biesheuvel Signed-off-by: Ashish Kalra --- OvmfPkg/Include/Library/MemEncryptSevLib.h | 12= +++++ OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLibInternal.c | 41= ++++++++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInternal.c | 57= ++++++++++++++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInternal.h | 31= +++++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLibInternal.c | 41= ++++++++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c | 18= +++++++ 6 files changed, 200 insertions(+) diff --git a/OvmfPkg/Include/Library/MemEncryptSevLib.h b/OvmfPkg/Include/L= ibrary/MemEncryptSevLib.h index 76d06c206c..b619cadf51 100644 --- a/OvmfPkg/Include/Library/MemEncryptSevLib.h +++ b/OvmfPkg/Include/Library/MemEncryptSevLib.h @@ -90,6 +90,18 @@ MemEncryptSevIsEnabled ( VOID ); =20 +/** + Returns a boolean to indicate whether SEV live migration is enabled. + + @retval TRUE SEV live migration is enabled + @retval FALSE SEV live migration is not enabled +**/ +BOOLEAN +EFIAPI +MemEncryptSevLiveMigrationIsEnabled ( + VOID + ); + /** This function clears memory encryption bit for the memory region specifi= ed by BaseAddress and NumPages from the current page table context. diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLibIntern= al.c b/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLibInternal.c index 2816f859a0..1a99d38866 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLibInternal.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLibInternal.c @@ -17,9 +17,13 @@ #include #include =20 +#include "PeiDxeMemEncryptSevLibInternal.h" + STATIC BOOLEAN mSevStatus =3D FALSE; STATIC BOOLEAN mSevEsStatus =3D FALSE; STATIC BOOLEAN mSevStatusChecked =3D FALSE; +STATIC BOOLEAN mSevLiveMigrationStatus =3D FALSE; +STATIC BOOLEAN mSevLiveMigrationStatusChecked =3D FALSE; =20 STATIC UINT64 mSevEncryptionMask =3D 0; STATIC BOOLEAN mSevEncryptionMaskSaved =3D FALSE; @@ -87,6 +91,24 @@ InternalMemEncryptSevStatus ( mSevStatusChecked =3D TRUE; } =20 +/** + Figures out if we are running inside KVM HVM and + KVM HVM supports SEV Live Migration feature. +**/ +STATIC +VOID +EFIAPI +InternalDetectSevLiveMigrationFeature ( + VOID + ) +{ + if (KvmDetectSevLiveMigrationFeature ()) { + mSevLiveMigrationStatus =3D TRUE; + } + + mSevLiveMigrationStatusChecked =3D TRUE; +} + /** Returns a boolean to indicate whether SEV-ES is enabled. =20 @@ -125,6 +147,25 @@ MemEncryptSevIsEnabled ( return mSevStatus; } =20 +/** + Returns a boolean to indicate whether SEV live migration is enabled. + + @retval TRUE SEV live migration is enabled + @retval FALSE SEV live migration is not enabled +**/ +BOOLEAN +EFIAPI +MemEncryptSevLiveMigrationIsEnabled ( + VOID + ) +{ + if (!mSevLiveMigrationStatusChecked) { + InternalDetectSevLiveMigrationFeature (); + } + + return mSevLiveMigrationStatus; +} + /** Returns the SEV encryption mask. =20 diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInt= ernal.c b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibIntern= al.c index b4a9f464e2..30f2d90889 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInternal.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInternal.c @@ -16,6 +16,8 @@ #include #include =20 +#include "PeiDxeMemEncryptSevLibInternal.h" + /** Locate the page range that covers the initial (pre-SMBASE-relocation) SM= RAM Save State Map. @@ -61,3 +63,58 @@ MemEncryptSevLocateInitialSmramSaveStateMapPages ( =20 return RETURN_SUCCESS; } + +/** + Figures out if we are running inside KVM HVM and + KVM HVM supports SEV Live Migration feature. + + @retval TRUE SEV live migration is supported. + @retval FALSE SEV live migration is not supported. +**/ +BOOLEAN +EFIAPI +KvmDetectSevLiveMigrationFeature ( + VOID + ) +{ + CHAR8 Signature[13]; + UINT32 mKvmLeaf; + UINT32 RegEax; + UINT32 RegEbx; + UINT32 RegEcx; + UINT32 RegEdx; + + Signature[12] =3D '\0'; + for (mKvmLeaf =3D 0x40000000; mKvmLeaf < 0x40010000; mKvmLeaf +=3D 0x100= ) { + AsmCpuid ( + mKvmLeaf, + NULL, + (UINT32 *) &Signature[0], + (UINT32 *) &Signature[4], + (UINT32 *) &Signature[8]); + + if (AsciiStrCmp (Signature, "KVMKVMKVM") =3D=3D 0) { + DEBUG (( + DEBUG_INFO, + "%a: KVM Detected, signature =3D %a\n", + __FUNCTION__, + Signature + )); + + RegEax =3D mKvmLeaf + 1; + RegEcx =3D 0; + AsmCpuid (mKvmLeaf + 1, &RegEax, &RegEbx, &RegEcx, &RegEdx); + if ((RegEax & KVM_FEATURE_MIGRATION_CONTROL) !=3D 0) { + DEBUG (( + DEBUG_INFO, + "%a: SEV Live Migration feature supported\n", + __FUNCTION__ + )); + + return TRUE; + } + } + } + + return FALSE; +} diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInt= ernal.h b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibIntern= al.h new file mode 100644 index 0000000000..30cf5de995 --- /dev/null +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiDxeMemEncryptSevLibInternal.h @@ -0,0 +1,31 @@ +/** @file + + Secure Encrypted Virtualization (SEV) library helper function + + Copyright (c) 2021, AMD Incorporated. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef PEI_DXE_MEM_ENCRYPT_SEV_LIB_INTERNAL_H_ +#define PEI_DXE_MEM_ENCRYPT_SEV_LIB_INTERNAL_H_ + +#include + +#define KVM_FEATURE_MIGRATION_CONTROL BIT17 + +/** + Figures out if we are running inside KVM HVM and + KVM HVM supports SEV Live Migration feature. + + @retval TRUE SEV live migration is supported. + @retval FALSE SEV live migration is not supported. +**/ +BOOLEAN +EFIAPI +KvmDetectSevLiveMigrationFeature( + VOID + ); + +#endif // PEI_DXE_MEM_ENCRYPT_SEV_LIB_INTERNAL_H_ diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLibIntern= al.c b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLibInternal.c index e2fd109d12..9293b5652d 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLibInternal.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLibInternal.c @@ -17,9 +17,13 @@ #include #include =20 +#include "PeiDxeMemEncryptSevLibInternal.h" + STATIC BOOLEAN mSevStatus =3D FALSE; STATIC BOOLEAN mSevEsStatus =3D FALSE; STATIC BOOLEAN mSevStatusChecked =3D FALSE; +STATIC BOOLEAN mSevLiveMigrationStatus =3D FALSE; +STATIC BOOLEAN mSevLiveMigrationStatusChecked =3D FALSE; =20 STATIC UINT64 mSevEncryptionMask =3D 0; STATIC BOOLEAN mSevEncryptionMaskSaved =3D FALSE; @@ -87,6 +91,24 @@ InternalMemEncryptSevStatus ( mSevStatusChecked =3D TRUE; } =20 +/** + Figures out if we are running inside KVM HVM and + KVM HVM supports SEV Live Migration feature. +**/ +STATIC +VOID +EFIAPI +InternalDetectSevLiveMigrationFeature ( + VOID + ) +{ + if (KvmDetectSevLiveMigrationFeature ()) { + mSevLiveMigrationStatus =3D TRUE; + } + + mSevLiveMigrationStatusChecked =3D TRUE; +} + /** Returns a boolean to indicate whether SEV-ES is enabled. =20 @@ -125,6 +147,25 @@ MemEncryptSevIsEnabled ( return mSevStatus; } =20 +/** + Returns a boolean to indicate whether SEV live migration is enabled. + + @retval TRUE SEV live migration is enabled + @retval FALSE SEV live migration is not enabled +**/ +BOOLEAN +EFIAPI +MemEncryptSevLiveMigrationIsEnabled ( + VOID + ) +{ + if (!mSevLiveMigrationStatusChecked) { + InternalDetectSevLiveMigrationFeature (); + } + + return mSevLiveMigrationStatus; +} + /** Returns the SEV encryption mask. =20 diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibIntern= al.c b/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c index 56d8f3f318..d9f7befcd2 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c @@ -100,6 +100,24 @@ MemEncryptSevIsEnabled ( return Msr.Bits.SevBit ? TRUE : FALSE; } =20 +/** + Returns a boolean to indicate whether SEV live migration is enabled. + + @retval TRUE SEV live migration is enabled + @retval FALSE SEV live migration is not enabled +**/ +BOOLEAN +EFIAPI +MemEncryptSevLiveMigrationIsEnabled ( + VOID + ) +{ + // + // Not used in SEC phase. + // + return FALSE; +} + /** Returns the SEV encryption mask. =20 --=20 2.17.1 -=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 (#79574): https://edk2.groups.io/g/devel/message/79574 Mute This Topic: https://groups.io/mt/84997472/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 Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79575+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79575+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 162938188233478.28997077122472; Thu, 19 Aug 2021 07:04:42 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id XO8NYY1788612xsr5IAVvKbt; Thu, 19 Aug 2021 07:04:41 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.72]) by mx.groups.io with SMTP id smtpd.web08.69853.1629381881025553253 for ; Thu, 19 Aug 2021 07:04:41 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DRujsJOR78kGzySyc1gx6eniIhHdQdIgyCHMYW8MnnG77hmz2Dfx0lVN4O+7VkZohClB/iDP4MtehWeLBOw04u4odgaY9fJZRKG5xDnuOC+TuiJp10Fn2RzNhJuWwxfsiWDjCA1o+AJoNYvebs5+r52O2/lpE73pbDldkOJkST44DeKK6LptK16CgsjIwPB6oUYLGoC2s8F9AZWCAIqgVRPGGaPvejfPaXT+csU3Mt+9WXT+ygHCX6goIa39PCfKR0K3jSuX6Q32zdyeputPd9pf7P7QsR1epE5ccGS+3trWhq/qUkjzeMpGl94HgKqXmN6WikH/5bXFp+PVf2b1Qw== 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=+MZ/BjRL4WRf7UwvhJVfGYQoAkIMBuH9EApnoYZ2CNw=; b=aGg0d2TMqaCu5C0lsg2onKqgcSDhqdItSdqV7scH9twr73PN/e8bBK+I1UI8fbTamlkusOdJhEqdUD4k26K/jROhAyNv8Nw1MOty8g/XYi79dgAdXzMIrLPbH3GVNiVNkg2bD4JWk9nEImv7FcCiGj1xCk7clEhgdX38jCwR9GeQfpmLmYevz0bUQWW4SEATqYGrGUnFdEnVeulOE9SUyEZFabZFmdUOBm/4P3B4sgWINfBWxVdNs4sT3VU5tbB//cYZvYcygyrt9EiIvG3nbxLzfuwUEy02Xxky1a6H93EmZOXttJOrexuFfceQaIb4UFScesnZgY5+htCDP0Oedw== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SA0PR12MB4429.namprd12.prod.outlook.com (2603:10b6:806:73::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Thu, 19 Aug 2021 14:04:39 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:04:39 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 2/6] OvmfPkg/BaseMemEncryptLib: Hypercall API for page encryption state change Date: Thu, 19 Aug 2021 14:04:29 +0000 Message-Id: <1073ba3a6a203d97192647ad3e8cade694407d7f.1629380011.git.ashish.kalra@amd.com> In-Reply-To: References: X-ClientProxiedBy: SN4PR0501CA0123.namprd05.prod.outlook.com (2603:10b6:803:42::40) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SN4PR0501CA0123.namprd05.prod.outlook.com (2603:10b6:803:42::40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.9 via Frontend Transport; Thu, 19 Aug 2021 14:04:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3c3b67de-5fa7-41b1-82de-08d9631a48bb X-MS-TrafficTypeDiagnostic: SA0PR12MB4429: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 8QeE7C59Ev1eZm1EtyQ7Ah8ha4KvAtUKtnVdWQM7bd2XQzltp3UrLfdtH0xtTFECP1ImiPNM6VKM+dV1ZUa7tEtWrkx7yUvxOQjpJBmwsaiU62rlRJcn1tM0llO77n3nyKFFMiy25mKh6qS7CUSTl6YHp1Ko3mQo7G11Zl6hzNknrwy/1mUTwy01FCMlGqP2XOpP2UvWZOp61OI9kzxp4mRf4BwSYB+GJRLWlo5GG6ATZ/SLPa9GILqtzAGu9fDOL9MLY9hAj5qTQ+YB6mXwWoYb8lLAoyc+J7sjGKC/Q178CznjdQJT/6DQJXxgKK2p/ne01tSdals93Nsm5zGFKH2B1rXgYttylLR6Mb3kixFhr3hNvCgSRU86EsjGSfMXd2Yrr8cp/WHV4kU+QSedDwU0+daPLoAevIQkw3itE7TnftdDGHxb7UZ+EBAlZqxxUDTR2gvH6ArZHkNcnBs2OdqBeFQ0rFTbHnXTC4vFG4PVKeS/Frm2EusbRchz4bwWyn6LSDFr3fjfAlP6FnH5XXjCFxd/wkIMQextzolbWTNRu6ZQy/oavXC5EGfD3jN8pujKF3pf5wVYrSkzPoUHr+fJDRRRUx+8v/mi5ke7N0phizxaGhVpgHHuUaBAZYjn2sG97eI7bIUEmXrU4or6F8slM8STqkWj9SKBYGoWVdeUbHwu4M7XmiwTOxs6Guqsjp29NNUWlblEzYUf25ypeg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WXvKFx3UomtzPIUeAm3uenkTqgPmW1LWYFwQeqN7berS6aYIi33ZPVBYP2TY?= =?us-ascii?Q?p/hU023GhlZDWjUcYfuVhAppUPJT5cAt2N/9OOVdOJSsGDmJ5M6qkw2d1eNn?= =?us-ascii?Q?2itQgMHXGsDrtGSiYcOGOgMAAzHmKf3G/sUM+BVnPMbztzxKEWUl43hOXb6P?= =?us-ascii?Q?gjNcJbTA6kNOSRsvHU/xVPGw6Lej2IcTsbdnFYEpoh91uT8fEdYUnEE8rJMK?= =?us-ascii?Q?3SuIBvwv+ynq2512pRVG2cwTmuZsLMzOn6ZycGsTkWs05y5wEadGEoYoGZTv?= =?us-ascii?Q?ZDqxPuPUB1h5E6XHM8ZVpSvGk3HMcOzmnZ8WodTjA6ppJrwWMX4ePUR2lBP5?= =?us-ascii?Q?Q7apc9IgNXeZP6/9akXqwU2tlwqB/ZfFyY2ryexTHJO8qcGyFLwgLt8lA6AA?= =?us-ascii?Q?V3xxXsaB152SWZ5xuAUD2HcnfqJdYpPLhqBnu/1nlmFLEFQqPsU0z5K2LejW?= =?us-ascii?Q?WnFvjnYk/6ywi9Hat4/zXmWurXxdZGGNXeJulN2XS54MrGs56UZDrsDSi8lJ?= =?us-ascii?Q?gM7lXiVZJJzKYQTU+pMWsSd1zf7njf+5AOzQvWRQFPmIVr3dnzcr1pC/nSkf?= =?us-ascii?Q?9I5rdYiXPgY9fnq86zywH+bLruh8jlDWzQZJw320wLzHNj43Q30W0oo7oLZC?= =?us-ascii?Q?+1EV/Q8FcnL3edhP3lsBr/EL7k5Fb4YtOgFkWhfjzba6i+1exza13vbJe7ty?= =?us-ascii?Q?vteI//PR8wGwkANFSvN48fbclMBXr5LVkcPlFDbIdm2pAC9jGGYSSaA/teUW?= =?us-ascii?Q?k35G7QMd82XxFt6+q9vkD9mhUUeyylhq80jq5OYpuTrZKip5+rQSe8l+3Dzj?= =?us-ascii?Q?uhIq7Dqx1/VW8dHDpvauj8PO/2IoIs1z7wq+SnHbFIrbVuK38PyZeo7P7tzi?= =?us-ascii?Q?NXU3UlJLs4LcEUuHk2ou34dCuhQftivQWTqqL6hxG/wh1ygsjNWvwtWqU7oV?= =?us-ascii?Q?EMoEvOx0HVq+AhAdB+5eCCrTWtfgPuSqLGfIjLLOKjCPZgs59Z39Dm3tE4mu?= =?us-ascii?Q?SpyJHcBWP+wqISHhyAhc9nelIKyZ8FO4/xPMjqAkVoltexR2lZGFNDx+WO4m?= =?us-ascii?Q?EIF5uH5BHtQhtplLdqGQ8nXnu4Q1KqcqFMmi9IxtBGeT4fw90amqiLgFEQMN?= =?us-ascii?Q?o02QuneNZ7oVTmbc6/6bzK9cFjiIgGgPJ1p1uVmIVWwWzDrsUDhoL61AJP3X?= =?us-ascii?Q?5YbTaq3UCxXaksOdfEYqIhglgu+ctpZjaUvsLs/HAEvi5XnEsXyDl3U77bEY?= =?us-ascii?Q?hWj7kkFUHi8ZnUUz/aQ8m4R6AHXkXPliuZfIInkYlAJmolYFspT26+vDiUbO?= =?us-ascii?Q?Imn8bAtjQ9zwEf8Qi+35/KqM?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c3b67de-5fa7-41b1-82de-08d9631a48bb X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:04:39.2312 (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: NAdqOVdTyrZc2VqfXTGMrddCTTAdS0kG4Q8t/JmxfZihVXBf06e04pkasLQ6BkMKMQtdSlbdCMYypAjIbqoYQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4429 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: 1AMsARXSzAcQGzcKCv7nnaFwx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629381881; bh=Z2UgDvU+k+UFbbnBn2s3pVgwS7fsmnVCWOc1eloXSkA=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=fBwfVO7ZsPPm4Y1KHNDUNl0OfUZCwkddWAVXsoqzKFS7PLw/n8IpNXF5CF6cLBSbNuX i5UhDO83u/bHkdmuyLaumrIOqQp8aahbbsz9DjJ8cp/m3AEev1UR3aWiFGctrp133KJQI xux6U7wYcicP04Ra/Gy2tzCbNCJ10/OxmuQ= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629381921605100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Add API to issue hypercall on page encryption state change. By default all the SEV guest memory regions are considered encrypted, if a guest changes the encryption attribute of the page (e.g mark a page as decrypted) then notify hypervisor. Hypervisor will need to track the unencrypted pages. The information will be used during guest live migration, guest page migration and guest debugging. This hypercall is used to notify hypervisor when the page's encryption state changes. Cc: Jordan Justen Cc: Ard Biesheuvel Signed-off-by: Brijesh Singh Signed-off-by: Ashish Kalra --- OvmfPkg/Include/Library/MemEncryptSevLib.h | 52 ++= ++++++++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf | 1 + OvmfPkg/Library/BaseMemEncryptSevLib/Ia32/MemEncryptSevLib.c | 27 ++= +++++++ OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf | 1 + OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c | 20 ++= ++++ OvmfPkg/Library/BaseMemEncryptSevLib/X64/AsmHelperStub.nasm | 33 ++= ++++++++ OvmfPkg/Library/BaseMemEncryptSevLib/X64/MemEncryptSevLib.c | 64 ++= ++++++++++++++++++ 7 files changed, 198 insertions(+) diff --git a/OvmfPkg/Include/Library/MemEncryptSevLib.h b/OvmfPkg/Include/L= ibrary/MemEncryptSevLib.h index b619cadf51..9d46c5f5d6 100644 --- a/OvmfPkg/Include/Library/MemEncryptSevLib.h +++ b/OvmfPkg/Include/Library/MemEncryptSevLib.h @@ -234,4 +234,56 @@ MemEncryptSevClearMmioPageEncMask ( IN UINTN NumPages ); =20 +/** + This hypercall is used to notify hypervisor when the page's encryption + state changes. + + @param[in] PhysicalAddress The physical address that is the start= address + of a memory region. + @param[in] Pages Number of pages in memory region. + @param[in] IsEncrypted Encrypted or Decrypted. + + @retval RETURN_SUCCESS Hypercall returned success. + @retval RETURN_UNSUPPORTED Hypercall not supported. + @retval RETURN_NO_MAPPING Hypercall returned error. +**/ +RETURN_STATUS +EFIAPI +SetMemoryEncDecHypercall3 ( + IN UINTN PhysicalAddress, + IN UINTN Pages, + IN BOOLEAN IsEncrypted + ); + +#define KVM_HC_MAP_GPA_RANGE 12 +#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0 +#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M BIT0 +#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G BIT1 +#define KVM_MAP_GPA_RANGE_ENC_STATE(n) ((n) << 4) +#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STATE(1) +#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STATE(0) + +/** + Interface exposed by the ASM implementation of the core hypercall + + @param[in] HypercallNum KVM_HC_MAP_GPA_RANGE hypercall. + @param[in] PhysicalAddress The physical address that is the start= address + of a memory region. + @param[in] Pages Number of pages in memory region. + @param[in] Attributes Bits 3:0 - preferred page size encodin= g, + 0 =3D 4kb, 1 =3D 2mb, 2 =3D 1gb, etc... + Bit 4 - plaintext =3D 0, encrypted = =3D 1 + Bits 63:5 - reserved (must be zero) + + @retval Hypercall returned status. +**/ +UINTN +EFIAPI +SetMemoryEncDecHypercall3AsmStub ( + IN UINTN HypercallNum, + IN UINTN PhysicalAddress, + IN UINTN Pages, + IN UINTN Attributes + ); + #endif // _MEM_ENCRYPT_SEV_LIB_H_ diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf b= /OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf index f2e162d680..0c28afadee 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf @@ -38,6 +38,7 @@ X64/PeiDxeVirtualMemory.c X64/VirtualMemory.c X64/VirtualMemory.h + X64/AsmHelperStub.nasm =20 [Sources.IA32] Ia32/MemEncryptSevLib.c diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/Ia32/MemEncryptSevLib.c b= /OvmfPkg/Library/BaseMemEncryptSevLib/Ia32/MemEncryptSevLib.c index be260e0d10..516d639489 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/Ia32/MemEncryptSevLib.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/Ia32/MemEncryptSevLib.c @@ -136,3 +136,30 @@ MemEncryptSevClearMmioPageEncMask ( // return RETURN_UNSUPPORTED; } + +/** + This hyercall is used to notify hypervisor when the page's encryption + state changes. + + @param[in] PhysicalAddress The physical address that is the start= address + of a memory region. + @param[in] Pages Number of Pages in the memory region. + @param[in] IsEncrypted Encrypted or Decrypted. + + @retval RETURN_SUCCESS Hypercall returned success. + @retval RETURN_UNSUPPORTED Hypercall not supported. + @retval RETURN_NO_MAPPING Hypercall returned error. +**/ +RETURN_STATUS +EFIAPI +SetMemoryEncDecHypercall3 ( + IN UINTN PhysicalAddress, + IN UINTN Pages, + IN BOOLEAN IsEncrypted + ) +{ + // + // Memory encryption bit is not accessible in 32-bit mode + // + return RETURN_UNSUPPORTED; +} diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf b= /OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf index 03a78c32df..3233ca7979 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/PeiMemEncryptSevLib.inf @@ -38,6 +38,7 @@ X64/PeiDxeVirtualMemory.c X64/VirtualMemory.c X64/VirtualMemory.h + X64/AsmHelperStub.nasm =20 [Sources.IA32] Ia32/MemEncryptSevLib.c diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibIntern= al.c b/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c index d9f7befcd2..ebb1c39319 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/SecMemEncryptSevLibInternal.c @@ -118,6 +118,26 @@ MemEncryptSevLiveMigrationIsEnabled ( return FALSE; } =20 +/** + Interface exposed by the ASM implementation of the core hypercall + + @retval Hypercall returned status. +**/ +UINTN +EFIAPI +SetMemoryEncDecHypercall3AsmStub ( + IN UINTN HypercallNum, + IN UINTN PhysicalAddress, + IN UINTN Pages, + IN UINTN Attributes + ) +{ + // + // Not used in SEC phase. + // + return RETURN_UNSUPPORTED; +} + /** Returns the SEV encryption mask. =20 diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/AsmHelperStub.nasm b/= OvmfPkg/Library/BaseMemEncryptSevLib/X64/AsmHelperStub.nasm new file mode 100644 index 0000000000..0ec35dd9b6 --- /dev/null +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/AsmHelperStub.nasm @@ -0,0 +1,33 @@ +/** @file + + ASM helper stub to invoke hypercall + + Copyright (c) 2021, AMD Incorporated. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +DEFAULT REL +SECTION .text + +; UINTN +; EFIAPI +; SetMemoryEncDecHypercall3AsmStub ( +; IN UINTN HypercallNum, +; IN UINTN Arg1, +; IN UINTN Arg2, +; IN UINTN Arg3 +; ); +global ASM_PFX(SetMemoryEncDecHypercall3AsmStub) +ASM_PFX(SetMemoryEncDecHypercall3AsmStub): + ; UEFI calling conventions require RBX to + ; be nonvolatile/callee-saved. + push rbx + mov rax, rcx ; Copy HypercallNumber to rax + mov rbx, rdx ; Copy Arg1 to the register expected by KVM + mov rcx, r8 ; Copy Arg2 to register expected by KVM + mov rdx, r9 ; Copy Arg3 to register expected by KVM + vmmcall ; Call VMMCALL + pop rbx + ret diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/MemEncryptSevLib.c b/= OvmfPkg/Library/BaseMemEncryptSevLib/X64/MemEncryptSevLib.c index a57e8fd37f..a6246d4312 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/MemEncryptSevLib.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/MemEncryptSevLib.c @@ -143,3 +143,67 @@ MemEncryptSevClearMmioPageEncMask ( ); =20 } + +/** + This hyercall is used to notify hypervisor when the page's encryption + state changes. + + @param[in] PhysicalAddress The physical address that is the start= address + of a memory region. + @param[in] Pages Number of Pages in the memory region. + @param[in] IsEncrypted Encrypted or Decrypted. + + @retval RETURN_SUCCESS Hypercall returned success. + @retval RETURN_UNSUPPORTED Hypercall not supported. + @retval RETURN_NO_MAPPING Hypercall returned error. +**/ +RETURN_STATUS +EFIAPI +SetMemoryEncDecHypercall3 ( + IN UINTN PhysicalAddress, + IN UINTN Pages, + IN BOOLEAN IsEncrypted + ) +{ + RETURN_STATUS Ret; + UINTN Error; + UINTN EncryptState; + + Ret =3D RETURN_UNSUPPORTED; + + if (MemEncryptSevLiveMigrationIsEnabled ()) { + Ret =3D RETURN_SUCCESS; + // + // The encryption bit is set/clear on the smallest page size, hence + // use the 4k page size in MAP_GPA_RANGE hypercall below. + // + // Also, when the GCD map is being walked and the c-bit being cleared + // from MMIO and NonExistent memory spaces, the physical address + // range being passed may not be page-aligned and adding an assert + // here prevents booting. Hence, rounding it down when calling + // SetMemoryEncDecHypercall3AsmStub below. + // + + EncryptState =3D IsEncrypted ? KVM_MAP_GPA_RANGE_ENCRYPTED : + KVM_MAP_GPA_RANGE_DECRYPTED; + + Error =3D SetMemoryEncDecHypercall3AsmStub ( + KVM_HC_MAP_GPA_RANGE, + PhysicalAddress & ~EFI_PAGE_MASK, + Pages, + KVM_MAP_GPA_RANGE_PAGE_SZ_4K | EncryptState + ); + + if (Error !=3D 0) { + DEBUG ((DEBUG_ERROR, + "SetMemoryEncDecHypercall3 failed, Phys =3D %x, Pages =3D %d, Err = =3D %Ld\n", + PhysicalAddress, + Pages, + (INT64)Error)); + + Ret =3D RETURN_NO_MAPPING; + } + } + + return Ret; +} --=20 2.17.1 -=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 (#79575): https://edk2.groups.io/g/devel/message/79575 Mute This Topic: https://groups.io/mt/84997491/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 Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79576+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79576+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629381900773156.514603010281; Thu, 19 Aug 2021 07:05:00 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 7vU5YY1788612xdPQ0iKNLXh; Thu, 19 Aug 2021 07:05:00 -0700 X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.89]) by mx.groups.io with SMTP id smtpd.web09.69880.1629381899541307554 for ; Thu, 19 Aug 2021 07:04:59 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FScUwsqzdnPcx8smOJ6rYjFkfnipKtMI7CLiIuuNOyDajf4zUR5RvNITaotHhYQFFtScdnX8c4CxH+AcMrk7FWvn/sTCheaLr6hmnYk265d3iVDsd/pcpYn2u42tAeFwg6mS5JQePLG+z1QfPC0+QcgsKR2UI6O4aM+GSsidmy+kS9+9v8wbyMUgLCC3SOnjq6uXDvN+vmHYvPM3NUWmAqYF4AKZErb9GZ6DWNMXkdl+zvb4OGJZZG2PtEq4BKLG5oEZLiQ+1ez0BbhaFD7aBQ79d/1D3/ENsSgRDe7wlGPou2+x8R1J+/E4lzXIFJAGxShGHgdXHWSbM36NVTx/Sg== 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=XfXwNx7cnYeErCXlgzIiyz2FmbL9KGK3WdHx8tgbyoA=; b=Wpuhq3cwS+kHBzTt3TBfZKM//BkcwWtDx1+wkaqaIWQNRJklOZKUVJIXcCcaoTw4h6kTSuDF4g+1Gzq3R+sfDpjrP0lr3MRwEQnaQBH/dktYY/NVGNCne83ENJTuY/CY+P4how8T6a4xC2N/+VlcLmCxuuzIxvj3P2DH8GfbAB6v/a+DRY+CXKo1wypBq5lmpXumekaSKLk9eMbBqqmYtjwYLUcbbT9m0e5VYfB56tBKIlGBAfTLQuIhGioMM+4JQ2DA02FFoBH3UzcqL7QLQ6ryBKijIp6EXTpSvYJoEtNfeVXHB9X4dha8e8nmTDXx9zltujuNaEZWuJnQvblhgw== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SN6PR12MB2685.namprd12.prod.outlook.com (2603:10b6:805:67::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.21; Thu, 19 Aug 2021 14:04:57 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:04:57 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 3/6] OvmfPkg/BaseMemEncryptLib: Invoke page encryption state change hypercall Date: Thu, 19 Aug 2021 14:04:46 +0000 Message-Id: In-Reply-To: References: X-ClientProxiedBy: SN6PR01CA0018.prod.exchangelabs.com (2603:10b6:805:b6::31) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SN6PR01CA0018.prod.exchangelabs.com (2603:10b6:805:b6::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.18 via Frontend Transport; Thu, 19 Aug 2021 14:04:56 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7705292e-d5b4-4bc5-112b-08d9631a5329 X-MS-TrafficTypeDiagnostic: SN6PR12MB2685: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2887; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: J1XQEPXHfZGVma9ZzM8uD1LuQVih9ucNKN49IFEaOlksVEJdi/OvwPuV8M/kRLVVnyKdcM2E00bl5zZTdwJjcTXAgNNWeT3R/j9tgXyMEuCOk/qkFj8AiTisZsITIvSv0BU0wvw3IH4H3mNVHNcbuKLl8AzBye4c8mjk/UnhJxT5ZXm93gTmG8+Xg+BwLtiUBh1zEIDAvErEHRbp5MDhMtsuHC/HdZNGZ43MChWterY5VSdYaa5i3MR2b/VunHDa4somXKIlfIvZPfbD2vljHcCGR+K0+C7haXXcta4OkxBskMQUggwBI0D+R4dzwoA3iTPIX7GGqjZ2xrkEfMHQ4OZmxDuDr+E9JPz9BJ2Xt/DdIyd3Wj/hW4OLwoQ0DEwfw6+OOHRILZSkP24Kdtzmr39sQBLdsZ6gOcckQOUaD4Qik6aRSrsEOdBJH/QfKAG6YBzQCl7GZUlSeBJ1PG40wAFXd4VwXwQ+LznkP+BAWl8tSbpY6IiNZetHssGPaS2SWADjUU0BdplhE5LBx/0I+ogPXvKuAhs3W1nLG4vFokwllRTo1uSOnx208s2LgtsKOfK7vW5GI/oYJNeW93OqRudC3zP4ENrrkqjZwAPi8UtG7DFKAQ1LVlmiEYzYG5wRGUJ0lQjIHU9z0ULAWPn1pbWE172d2sxeFV87d/RAFpTw9I3KPI3c+ipFV0ClCu+gncw/zf0xrIoA9xB8w99yRg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3+cyo6wO9RzJoXgzKZHlER6vu0lGs8XlG3vdG1sKbt7a98OnElWm8pAnXfmz?= =?us-ascii?Q?4rHedsFkuE3wMohGSlLcLsbX7aQKtwLcBOlblFH/YfLkXkbfxhGDHfEqCEXf?= =?us-ascii?Q?n5SOV2d8L2LagDDyu9sWbwNrl64kCMKp9mUzx2mMgK6t2a6fpOBDEzku/Twb?= =?us-ascii?Q?qWpM31FcvHvpwlyZtu/ZhaX07n2kw+hj7iK/WamupSAqNGZ6h3cxrvFhnopZ?= =?us-ascii?Q?Ylmv4e/+MYNe7qzHM/5pEPo5pQDzDe2h1PngyD7ODGSAwlvDE6L/0i+Fmsp9?= =?us-ascii?Q?VftrOSOFq0fB6TxA5EHW/JyxTKf+goicVY5QZMSTB8acFTxyM6wY1t3/vzXy?= =?us-ascii?Q?hH6OP/ZtoVn5hnX93RGlVkEfXsFmeeljLCPluTg6iqCVoIA5wuhGj33ne1lN?= =?us-ascii?Q?SI5v2cen9Jt7rtpr7Uct17B7Tgv7bM7gEArdnDx3JmtQFTNaeo03nSjPmRqX?= =?us-ascii?Q?VqAG9dsnnh7VfhyYixxV1OzPffN7emPb5Ujpkdy0/5IafYyzCki/gACy4vdP?= =?us-ascii?Q?kkKdXKZTLyF3jD5TC6Xk+CGpEeCC24cMQ5nHF+kuP32DzR0EVV/LvjrWbiNM?= =?us-ascii?Q?fc+l81Q6I6EvAZLn/DNTmCBlmNwP0ZasfTQMhjQ+p35MxEm1VEKM+TsoBnOP?= =?us-ascii?Q?g3XFJffHlrr0lyaVl6IJTzlyv85SkDfHWd++oGSvRrGOhDtqQguqxIlj+8Ct?= =?us-ascii?Q?XvRWd8mr2EaxXBFgfs7WX1Erb1hDJkSuTkrN4L5PbXjeAOglhZ4IsaDQ/E4a?= =?us-ascii?Q?Aylo5iF6uoolB6eaCQoVMl8HHn0xeVg/U6VHqC+WglJXZX/3q3RW58tYV6Kv?= =?us-ascii?Q?NUUmA2vZA22lLtvGPv3XeoFMZ7GlQLX0KbT+dfVtFkZ6azSBd4k1X1e4z87u?= =?us-ascii?Q?w/+DHio9bocKr5OlecrVMUPT5GGO6Us8QjVeZtkcKk62cDMDMjyGVeMXm3Pl?= =?us-ascii?Q?u52/HO2xJ3iov0nvLTm3UvxSN8WTiUCflep+vI0u0TKpwa5WU/VVawEhtp4V?= =?us-ascii?Q?a9QbPF+Hb4fzm8i0QvZJYdFTgAhIrBYpdQ+B/JpbjK3iDlHu2nSFSFwhTy0M?= =?us-ascii?Q?tPFrxLUDmX0ecqOSwsFLF767a8xsARaXlpmkJcx1bY/x0ViC/YsNe5nzOg50?= =?us-ascii?Q?9+dD1PExZcPCG/ALDK13uttyPrOD7Qd5sMos+xqPuglniO9Qaad3XhYlap+7?= =?us-ascii?Q?luw4GODObLTswvERbxswXoOkuCcYqNRRTs4ntXzA2wiOpfAX47r1+t0LhDen?= =?us-ascii?Q?aPND5k/YVrVgCZlzp3wIMgKb4nLAO21Ha/x+jV2K01mtNW7BkGu3IdNS+UdJ?= =?us-ascii?Q?5mCHfNtBJaxxNO3dH4paQSdu?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7705292e-d5b4-4bc5-112b-08d9631a5329 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:04:56.9243 (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: TxKOet3xtskd4jF1J4tjSDBTGngRgUQ+LPqytdqt2nYXx1VfNExfJj2OC53gZpPwX7uNvaDGhFncZOuGFpWxEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB2685 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: I1tvCVpIWsbWP6gg6F3K8ZR0x1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629381900; bh=4Z+f5b/E4YTZHErerD2pQpoWT3QNRUujdu2r9T8or2I=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=vZbulYB8aza9In8tto0+pkG6Tsif2R9wGp7T+BtbMG2rb9iq8n2sQCvHKlIJJtVFRbV aZc3INW+9FtSKdsxDkDG+fksRpVKFxNPHUr9Ly12gK8Aps+NxvaKhNKxoTKw1ipvVoPO2 tLuprn6XJXYiEzpsFO0nefowbW2dAPyIhbk= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629381936282100002 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Invoke the hypercall API to notify hypervisor when the page's encryption state changes. Cc: Jordan Justen Cc: Ard Biesheuvel Signed-off-by: Brijesh Singh Signed-off-by: Ashish Kalra --- OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c | 20 ++++++= ++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c= b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c index c696745f9d..f562e16fc2 100644 --- a/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c +++ b/OvmfPkg/Library/BaseMemEncryptSevLib/X64/PeiDxeVirtualMemory.c @@ -585,6 +585,9 @@ SetMemoryEncDec ( UINT64 AddressEncMask; BOOLEAN IsWpEnabled; RETURN_STATUS Status; + UINTN Size; + BOOLEAN CBitChanged; + PHYSICAL_ADDRESS OrigPhysicalAddress; =20 // // Set PageMapLevel4Entry to suppress incorrect compiler/analyzer warnin= gs. @@ -636,6 +639,9 @@ SetMemoryEncDec ( =20 Status =3D EFI_SUCCESS; =20 + Size =3D Length; + CBitChanged =3D FALSE; + OrigPhysicalAddress =3D PhysicalAddress; while (Length !=3D 0) { // @@ -695,6 +701,7 @@ SetMemoryEncDec ( )); PhysicalAddress +=3D BIT30; Length -=3D BIT30; + CBitChanged =3D TRUE; } else { // // We must split the page @@ -749,6 +756,7 @@ SetMemoryEncDec ( SetOrClearCBit (&PageDirectory2MEntry->Uint64, Mode); PhysicalAddress +=3D BIT21; Length -=3D BIT21; + CBitChanged =3D TRUE; } else { // // We must split up this page into 4K pages @@ -791,6 +799,7 @@ SetMemoryEncDec ( SetOrClearCBit (&PageTableEntry->Uint64, Mode); PhysicalAddress +=3D EFI_PAGE_SIZE; Length -=3D EFI_PAGE_SIZE; + CBitChanged =3D TRUE; } } } @@ -808,6 +817,17 @@ SetMemoryEncDec ( // CpuFlushTlb(); =20 + // + // Notify Hypervisor on C-bit status + // + if (CBitChanged) { + Status =3D SetMemoryEncDecHypercall3 ( + OrigPhysicalAddress, + EFI_SIZE_TO_PAGES(Size), + (Mode =3D=3D SetCBit) ? TRUE : FALSE + ); + } + Done: // // Restore page table write protection, if any. --=20 2.17.1 -=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 (#79576): https://edk2.groups.io/g/devel/message/79576 Mute This Topic: https://groups.io/mt/84997500/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 Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79577+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79577+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 162938192281459.91421792357869; Thu, 19 Aug 2021 07:05:22 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id n40mYY1788612xOWwEjCuF1c; Thu, 19 Aug 2021 07:05:22 -0700 X-Received: from NAM04-DM6-obe.outbound.protection.outlook.com (NAM04-DM6-obe.outbound.protection.outlook.com [40.107.102.54]) by mx.groups.io with SMTP id smtpd.web11.69419.1629381921668066804 for ; Thu, 19 Aug 2021 07:05:22 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nlaVKGEEA4yF8R5puu4UdRMf+hjkfhh9M27/iszkRAGHxUXwutdRhtf1E2v96xYnMok/ey7t0xfZfv4rN6qjLU2FgunG0GrjcOtLD92JYSfSckR0Hl9M5ayoz76breiAzhrPBNcd2bYc6KAkTJPMEbenG/yZnAGbcdAh3D5JfCuHo3dpsU/T0/9a5DDHeCoNszRThX5nWmsi0ipwjqoUV0I6MkB/dGZ0y51MM6ndb9k1uEarEEMrIIpoy86BmKZns65udRehCkjjEd0lIyblfZO0TcjjHut5+eBc3dnZGSyip3mkeMn6GVMokp5D8B1dW1nb+ZPUQc6U+8+4jWz+UQ== 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=MKf+Re/HuJ/+8EVzKQtD1e2k71bFlKQLuVBW77W10KE=; b=LtBGgFzaPh5o+ba89JN1YGb+sPyUtLNB37tuuHU+4AhyNUr56dyolWYot59p5LCerbCzjb8WMqQMBIbHCGvOKDt3ZomLh10ktZqKoxls9TA9hIO1QxdBj72KTQ1Ixh/+ae96loS+9QREORtp4NL/56/ueNrQKpM5nslo3c7ZJk4k6WRmS3iBb55BUunm3YxyZeS9MAuZah4HcUtov1JzGMCv7awNGP7bxVYc6C68jnSGkfcCGMujIj5mx3r9svQ/CHnGLl1g2JXfqYkvGoatBfpnYU1O6ldc0PUjB73z7w1WP3e1peMlME0jjXRN6Bg8bZvRVZ/MLhXujk6ZrL4FFA== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SN6PR12MB4751.namprd12.prod.outlook.com (2603:10b6:805:df::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Thu, 19 Aug 2021 14:05:15 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:05:15 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 4/6] OvmfPkg/VmgExitLib: Encryption state change hypercall support in VC handler Date: Thu, 19 Aug 2021 14:05:04 +0000 Message-Id: <211d9e0624c81262879aa7594483b77c6a87d273.1629380011.git.ashish.kalra@amd.com> In-Reply-To: References: X-ClientProxiedBy: SN1PR12CA0089.namprd12.prod.outlook.com (2603:10b6:802:21::24) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SN1PR12CA0089.namprd12.prod.outlook.com (2603:10b6:802:21::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Thu, 19 Aug 2021 14:05:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: eeebeb23-dc4e-4abc-c166-08d9631a5e24 X-MS-TrafficTypeDiagnostic: SN6PR12MB4751: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: 5jXVZGliKZGMZzc+FkHHohr9WgJU53EMYEjzPrcnugTw1Do64DOQKH8gBa+vVjIjepsJxc/VM0WUj+n8SE3DV0cWRYIZz56TjUi9eN0FnLy6+glrsMBhPj1vV5Cgcg9NFcx3CKoN9xrOAQiTLhon+QcmhZlidZWEqPQdYPTlIuKDM4nSPY9XcMPcedSxpTI9NJnBDUF4FAF+uWptNhKG2OP5dJwVkYi1OLjb3HmrX8RTK0vuJvMx+XRHj+kCOE2vkAv6U2PFD1Cdpz9EC2jJhEkNAJIWKB1usQiyOnLldbV6gdZ2kHz+O+vc85EG+YClLnWAXYvWR6eG1IV2r8AWQkJ3SjP9Lu+A8gFAXirLeHVN/OP752jnfVk3smEQw7PROM4PPiYpHIuh9VLMp+AbBYPGTxBG96wlJgFNjSoojQWoM1r0s9UfacoOz+iaOGilCXqRo/AmM13mnUawQ2IrZdePc3AtqA1d/9fUVcAuUARezMNqAJBOgeOi3Efb44x/FZAtIbtJXv46oTTb129/PZ8/f9PCx3I/NbR4dwYVF8EZ75nt/uPN8mPYR7JIUXDgZ8NqZKOxHHwYdWMeAY5/F2lQk+8etTVBb2nApFdhSzIsrxuEaIvxsl3JSWDr1fc4JMPJ5ERZ7lViyWioU2uJtpZx7nPZsRq2IpkBW8hxYHUIOlzjiSmlZkKf6NAtRcF4FiLxC4rGkZcldHrTIS7TIA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4pbKQNJqQx/AczXAR2TfMSZRBoT80USjUOa0K9qV7Vjvu4OzoJ44N0KsxesC?= =?us-ascii?Q?WbknJ0aGQZn1uFwsCGnaVd3Qojpf6FYRYkYeLG8iO16rlxPbjZJKHTnEMoSg?= =?us-ascii?Q?joxQ5dgK47hPd5b1AoaleuHveUddp2sD6e3KdqOLYyvuYiZfzQRLu9CEJSLi?= =?us-ascii?Q?9n7Zb4B42Qu6If6/41eyR86Hsw0KjUp8tzBDK/aoaAsKdQ1NuUP+8C+UeY5g?= =?us-ascii?Q?D6+pa0Yk6xGsgrNsk3Z2jYVAM2hQ0zmia/pY+qSodvL9V+8MIqLllnvUTV8r?= =?us-ascii?Q?Z+Is2Y/d5c9aUeQhMsha4McssVJUNRE0mwH7UuYA1216hGrmQrZ+P6pcTDW2?= =?us-ascii?Q?c3T6u9AL15Xc7B79/t7wckXSkUMWBp7lbVUdsT47OEAe7hOeMDJx37Y+nXw7?= =?us-ascii?Q?MxZN7UKLLpXuZkogl9CjqTwc3OOL70xP/2IVH7XIO7jOZDPM8c66EV0ScShB?= =?us-ascii?Q?kVm9EWxgDgD+cnGjJJIxzNBya+9cNeow1hXgdfi0cikUTcPmNKKrX/szWASx?= =?us-ascii?Q?RQLaV+GC9FCYQCLM7CdHlkhZ5grHF2D26Jgm1N2Inz7UGkse7wcaj1ujuHXq?= =?us-ascii?Q?hiQ07rEIRncAvyZwAlY9yxq6bC9Odau0VA6VZ2IOPhT15NB0i8OpE7w++2AH?= =?us-ascii?Q?SibdtYbQh6FdcnQnrPP2pifu6xbhoXLnsO1dUjjFhsaf0Y8gS7V0VW3pPQ5p?= =?us-ascii?Q?79LaMITaav1WGOanBpqJb8zT+FUV978MSd3OiXXOto5S24wFR+BJVEr6LJcH?= =?us-ascii?Q?KbafVq9nvhoUMSvo3AcXHy1FYQo5skEFeQGdZbw6XjzrhCejybIMUPlaBgnO?= =?us-ascii?Q?8Vedr2Nsha+IhmoJi5rZtleS31RULPjicDYQoMAxlXN/rmdK5CMCrzhTOCVV?= =?us-ascii?Q?wjQslCGPWnY57+fhsAk42cPKXaLkMjfX8gw9cYgrJqSvChhksE7jYi7yDjFJ?= =?us-ascii?Q?SnNQWqQ6qSyk/2hW5ZZmXp/+GsL164Dt0NNGG5b6gJEo7m71e4OastRyyRxS?= =?us-ascii?Q?+/mjEbRsi1E9ycV7k/+aGW/pJzi2tkdFQHSgAp/jlC7Ng4P+SEjaf9nnTR/F?= =?us-ascii?Q?iPXj2PmRaGhnGsjFUW5KqXd4EhjQhBVw2FCrdIlYd/JWGxCJJPYJJp/fI/dI?= =?us-ascii?Q?RnJPFRiLnjqszyoQfn/Wl9wHxc125G8ECC1H8I+SfO437cCpVm3a5kJLJfAs?= =?us-ascii?Q?iFZgBsqYsBf7zLVHwqwN0r9FuiMKCXXLzhvrksfDTu13sB/wTka/bA32J0VT?= =?us-ascii?Q?WZNx1tyJr39hYiJ8LFLiDdai/paDLw5fsyIZxAPgd+mYx9G6tx+J1nCEcykT?= =?us-ascii?Q?mHmmD83jWRAtRSFFxfb0Ey26?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: eeebeb23-dc4e-4abc-c166-08d9631a5e24 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:05:15.0581 (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: y0menupRVY2by8ZRHVDdd4K9U8ery19cWQKqEzt84vQnc7LzYVCbQ8ZWMf95CSTtt56SDc2cqVieq2AOKYbhyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR12MB4751 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: S1vdUHXBqEwCYxUT39k8I34ix1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629381922; bh=B56xzL7JCIWWEB4jxXm7f0j7O382jHmyBUUofvYFTb4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=gWyO0rmQTxARPS9JLxZoYd2XNg1aMVgyNeympfwHu3lAMR4z2jUL08Slb9Vj8gf8xft pQHq5BK2Oc+uWBQEIys6W0bhhSiSNmdwH47sXwyMglrPzP0G2R6vQSpcVrY+2xB+QqV4f xbyfPsKX2PeybXxEt+FGUTGZoH60NgEWuZA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629381956755100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Make the #VC handler aware of the page encryption state change hypercall by adding support to check KVM_HC_MAP_GPA_RANGE hypercall and add the additional register values used by hypercall in the GHCB. Cc: Jordan Justen Cc: Ard Biesheuvel Signed-off-by: Ashish Kalra --- OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c b/OvmfPkg/Librar= y/VmgExitLib/VmgExitVcHandler.c index 41b0c8cc53..2d06343e92 100644 --- a/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c +++ b/OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c @@ -1171,6 +1171,19 @@ VmmCallExit ( Ghcb->SaveArea.Cpl =3D (UINT8) (Regs->Cs & 0x3); VmgSetOffsetValid (Ghcb, GhcbCpl); =20 + if (Regs->Rax =3D=3D KVM_HC_MAP_GPA_RANGE) { + // + // KVM_HC_MAP_GPA_RANGE hypercall requires these + // extra registers. + // + Ghcb->SaveArea.Rbx =3D Regs->Rbx; + VmgSetOffsetValid (Ghcb, GhcbRbx); + Ghcb->SaveArea.Rcx =3D Regs->Rcx; + VmgSetOffsetValid (Ghcb, GhcbRcx); + Ghcb->SaveArea.Rdx =3D Regs->Rdx; + VmgSetOffsetValid (Ghcb, GhcbRdx); + } + Status =3D VmgExit (Ghcb, SVM_EXIT_VMMCALL, 0, 0); if (Status !=3D 0) { return Status; --=20 2.17.1 -=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 (#79577): https://edk2.groups.io/g/devel/message/79577 Mute This Topic: https://groups.io/mt/84997506/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 Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79578+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79578+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629381981766105.66303315423795; Thu, 19 Aug 2021 07:06:21 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id hdODYY1788612xuNP73l1983; Thu, 19 Aug 2021 07:06:21 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.74]) by mx.groups.io with SMTP id smtpd.web08.69870.1629381980508500658 for ; Thu, 19 Aug 2021 07:06:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nv8feEiTza87Y/SrORN9uA2vhBJGoudZoDkKLV2CM4Uc1S1AhDFHBuC1dVHBlTXa5GnBz0DQERGoSSF26GfwExIr/NlYyIMR1binbPnLi7jY9IYROgZebbPGiVzI083fCnqiDHruV4wp/Vy+kTXxf2kxuCyuFkx4hOpNopvQESgZUureJiMo1azd8LQ/PuW1tdca6JTUAM3Fvv4kumBEboWD3ucNXVYLGdUdVSoENAYPN6jOQSiU8J5qFYhso6EVoGhJ6B7A/wJwL0Dw9NPRUOQoXgF2WCe6k5D/A6BRAqDeuZtcA13u5QneUIQaGc48HF9fYQVaeXf61JdLx1vSDg== 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=iSW7FhssemJySQFDeOkS69RYSbquqEk79caf/V+lVOc=; b=jXUdrxoIoHRX6nQv2uteqlswoLThpbMQ4O3BNxfV0pVBt0Y4aWMPFBGLVxy2pmzU0gedLHctIkVKUsUYOCyhfbBIeXcOjWL8+ywykTU/vpF75mpiuLK46yjWDdxPs9dKkpx0QP+pxbyp6MRochaer1GEuYnhdbELlmyZPuY0yGWVt3zcEJjfIQq47UoIyPuoobWTrfnTshmv/K0P4uKIga1ji8kBXVosXVnAqpbl2VDzKbQegxGWPr+JeKr60R9JC0ZZOuOW5TPqRXf9Y3WXf0zTQ0szshO0YKcr2g3oSAEAarJdYE8wYTWVPtrgEvKQXhZV2Vd8szHGXQ8X8G+uoA== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SA0PR12MB4574.namprd12.prod.outlook.com (2603:10b6:806:94::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Thu, 19 Aug 2021 14:06:19 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:06:19 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 5/6] OvmfPkg/PlatformPei: Mark SEC GHCB page as unencrypted via hypercall Date: Thu, 19 Aug 2021 14:06:08 +0000 Message-Id: <11152470c9b41058d2a8dbffe2c0a1e5d9d4a534.1629380011.git.ashish.kalra@amd.com> In-Reply-To: References: X-ClientProxiedBy: SN4PR0501CA0053.namprd05.prod.outlook.com (2603:10b6:803:41::30) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SN4PR0501CA0053.namprd05.prod.outlook.com (2603:10b6:803:41::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.6 via Frontend Transport; Thu, 19 Aug 2021 14:06:18 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 297d12bf-10da-4737-56b7-08d9631a8440 X-MS-TrafficTypeDiagnostic: SA0PR12MB4574: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: b/I9fv5TWCAxCRyb82FFG4ATVRuKrNxPg/T9EVrse7GJ/1Y6CQ0fqNafTQUKR5TvUulUXs5BFLO5ju9jdeEV1UDulqG9qMdliWyz8rI29SOC3dNXfPXmceBXRUlcYy56hpZOrvAmbQUvkcrXiHgdZyHESL93k5ZiezDQfmYtvBgzsGOqdpKqiqiQxPAYxAQXIDtk24/uX3YIncfds2X5EcfUw3hpa8/kPiulGDOmgO7WefU5TYkmuwdfRMb0QA9L4tUYfDNGa70ye1Scw3PDvAXC24qi8xhJAMUdhh9wq5U+sHodfLTcq4iqdBLc0qkSPwLXEAMLGrqMCvG+8bQmrn8FxdMpfJZAOelNrcBzsMRVwJy4dO0hBMPfWNyHNw4ZPtT9UkQlCBzISMp6bWS4SPWQBd6Pbfjcc433FiM/P+X1uTwVx7yx2uIt8J62tC3WYqH99KHyD9RH4XrUvbDj2FHhXB4lDCmGcgaAw7EOIb4jj/RnRvAD/igJ5duL9dXw0lgUMnsZd8luyvJhwbiX+Mdyx1YhL4rB8zvxEmIu39GPh+g7aHrLYS/B2QLNzQ3h9Ozb5gQXwEElFS+/ZhkZv9nwhaPWz1xVTgGFkUNWVL9413r4XzWqlFkWoptboJjFaGQWwhiZpV+mf+YqqiNpDjzAFa+dDZGRD8YcHnI5wVsbMyskPlCZwM0xcRak2kTD0GnCl5fyLlnWunvMUsFCyQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KLB8VbHWTWk5zgwu3ikZpXy1RXCCvXrwlfqgjc47eFNDvM2RyXL1A4EqGDn4?= =?us-ascii?Q?Gms0kJOZaq8AxfR40AXnuXudZY727Mn3qjULJGiJDajlhbe++H/J5pT613wR?= =?us-ascii?Q?PNWowDZta8kJsKkUoorUlX3+74wZPPU2kYj821qSwGXYcWsMn4mJu4GCcz/h?= =?us-ascii?Q?sYHocT4JbhAlaqvbtt1iZ/pgAlJrleoJCn3LDCIkcIvqJHcCksG1B8bF7Krk?= =?us-ascii?Q?l7fQK6/idZY+jvyqN9cqWGGHknOzLAkVgQsWfcEIhHgOPUDXkkqysdVtva1l?= =?us-ascii?Q?vcrdf8T2XwBuSAQPTKPYvUNCp5XVY5JCldA4XgbZwzL6FTjTFaxFImNuPg8o?= =?us-ascii?Q?PQJr4d102DdK8TiNZCvMo0HibFXWpZ2DyXVa0c1yZFsy+dCm0yyBNl1zD29B?= =?us-ascii?Q?DaVGixG4E3ohd1kcSgwMqYdgGDHUXpnICZWfaiuHruJ1zoPmWYBkeIlv4re9?= =?us-ascii?Q?PlJmFgT1eHuvcpogCPzqhcDg7byYWArylKjtn0a+DaFAQckYoOMmBhpglCwB?= =?us-ascii?Q?GXSuVNMPddROLa6crXmKomQ/dfzIu4mAN+e7vIs5OFClCE08tlCmdQpzkc0K?= =?us-ascii?Q?u1kL3vwuW4uvl7pLHabF2o2v1IhknPMJntdDvWdheZLWiW2s7SioTQ2hL+m/?= =?us-ascii?Q?1PSbU5ot1r7nX+jnZtWbSwwz3t3UHrENMS3opqBR+8TcvV1eLnAaCXr54Oae?= =?us-ascii?Q?uQ4l7KgKja1LzALSVleOeCtAmtva+Xik1vzsdxHdzIQSHKEbp/lUxFmLEHXx?= =?us-ascii?Q?tN19qgkw8COE1Pjfn6Po+ULsdC0wDGNHFBdfJ9NBKgUBfSJR+kgPQcNFQOh7?= =?us-ascii?Q?MeVU3G9DkqMSXJCE3/GOUfcDwspI7fHav7r+gW5A7I523ZXzlIA+Xn8Uno3W?= =?us-ascii?Q?tjdWijWzTHjc+nO39opk1z1OB+WNc4UxsYlarzt2r3BdN6jFUrXv4KyLFrp5?= =?us-ascii?Q?WMikk14C/xe6Ju8mmBlF1Oo5kDDsNfnyrFWjK4PAZIeT5yEG5xoS8jJrXqqw?= =?us-ascii?Q?C8WIB30tfT5+UUCRPxrxLnTd61Lhj1zwzWnslKqG/KOS/rZn2i3R3jTWa5pa?= =?us-ascii?Q?bHzhKFa04qduuMGeEtxvRAGOUnoIgwI7MisoDJlKRTFe5id5RPdnUPeOwSZm?= =?us-ascii?Q?RDi9bx4+MbwGLWCCrQNmAqIF1rHBcRMjsfCWFicJMHLCi1yE2AeEZPG3dRjO?= =?us-ascii?Q?UdcwOGH3OcwyWvLeUodPpDcBHBwAWjj2IhZqM9cfqsClfEDc3jWgP7LSUEyX?= =?us-ascii?Q?kUGMJkzDTZV0Z5LMy9uUuEfd68WgKQKqdGGFO0I0xT3K0FqPmzzaIGdU4Fe8?= =?us-ascii?Q?wURelTsndYMJi0UCosesHdDS?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 297d12bf-10da-4737-56b7-08d9631a8440 X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:06:19.1362 (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: dV0Er6VCFSMDOtsTzXVArwWPhCGuKG4WQlFmy9F4Rh9qd7y5AyUJR0MrHPFfoRhGyhBY4sdUUN3AE2oKQLCTEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4574 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: EK8HHpJKxcdCycE0pVsdZXHfx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629381981; bh=707RXzbu5/R6WI+ve2CLGWI6aBCcIQR5R4RHJy5AkO4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=oy7yC6e/ngB1syqCOzTQsLS4v/7LLjFaABdoKjuNz4/bDbnqMrFW0NOqJKrsF8hBMZG TCy1FdAUhv7A1+ynW55IsCw5cOtM2CiBmDzwvvM7hSvqgEt9G1OcI7Sz7hfrAnX7T1+sF PiWDV24Je0Bo7AoOlVBHMBU/GN0giO7QqM4= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629382009950100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Mark the SEC GHCB page (that is mapped as unencrypted in ResetVector code) in the hypervisor's guest page encryption state tracking. Cc: Jordan Justen Cc: Ard Biesheuvel Signed-off-by: Ashish Kalra --- OvmfPkg/PlatformPei/AmdSev.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c index a8bf610022..1d38056ec0 100644 --- a/OvmfPkg/PlatformPei/AmdSev.c +++ b/OvmfPkg/PlatformPei/AmdSev.c @@ -52,6 +52,17 @@ AmdSevEsInitialize ( PcdStatus =3D PcdSetBoolS (PcdSevEsIsEnabled, TRUE); ASSERT_RETURN_ERROR (PcdStatus); =20 + // + // The SEC Ghcb setup during reset-vector needs to be marked as + // decrypted in the hypervisor's guest page encryption state + // tracking. + // + SetMemoryEncDecHypercall3 ( + FixedPcdGet32 (PcdOvmfSecGhcbBase), + EFI_SIZE_TO_PAGES(FixedPcdGet32 (PcdOvmfSecGhcbSize)), + FALSE + ); + // // Allocate GHCB and per-CPU variable pages. // Since the pages must survive across the UEFI to OS transition --=20 2.17.1 -=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 (#79578): https://edk2.groups.io/g/devel/message/79578 Mute This Topic: https://groups.io/mt/84997535/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 Tue May 7 07:05:15 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79579+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79579+1787277+3901457@groups.io; arc=fail (BodyHash is different from the expected one) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629382003507851.2310226479206; Thu, 19 Aug 2021 07:06:43 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id 7O19YY1788612xAAxjqd8UdO; Thu, 19 Aug 2021 07:06:43 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.63]) by mx.groups.io with SMTP id smtpd.web09.69913.1629382002223552514 for ; Thu, 19 Aug 2021 07:06:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A0MEpymO6tY2vz2JiU0cBg+cX+M/teHoqxAvrrsL0b0T/mC8cXr9K9gsN5yIDi5N6UI/Wi6eMWl/De6Pcf5aybqr+eUS1tBm7fOqWoGvxV2gpDf0U8t4Y5omC0TpyjBs7JQWpIsYxS2QKNl0e+vh0gCBYJqNbLd6rPGBtV3kTTVJs5+BEafjIqJURECyUMcU/EC2iMRo3iNTR8v8eay3l05vWVhPkpnBOWv0tr08m1LkaTb/PXrmQSAe2TVHpj6akUAVXqN/gmBBh2NtaK1Rqs/5YwENJqOUX51RHMkrwiJfeoN7/ybLJUSgnpdhFpOUQmBeCj5RZtutV18/OYSV4g== 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=ji4uj16QQKOjojz2gXpfZP1QxnigEd7HIVF7Inqfs1s=; b=Pnt3OtIWBdb61o4Jx+GBoNA7f76k8lhU0JmfPEW3NBNfkzIdlv8n1pYU6kitt5Yr/0HjvOHb8MXYGLqPe70QLyg5w30acR8aVXKgSoRqMnGnjzMJXli6pymb5qaD5JFWOo1pbwI8SapubP/25f0FOlPG3IRknzwfmaEsEeRgB6wF9wg3bw0PDoqK8LC3AKb/WwORDrkts1aMditDSKV7jHG5X1NL/WPVYha7W8+6yOvoSZqIJ2oD67jsDUOBUR4gZhurysDN+WdYYTbJeQ3FuV0jbEZdzs9q7oGJ7cZgNuqTcjHhU+rMf5IIktBLyQ2uo12NVTqQvhzs/3GuXGjJEg== 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 SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) by SA0PR12MB4574.namprd12.prod.outlook.com (2603:10b6:806:94::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Thu, 19 Aug 2021 14:06:39 +0000 X-Received: from SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73]) by SN6PR12MB2767.namprd12.prod.outlook.com ([fe80::491e:2642:bae2:8b73%7]) with mapi id 15.20.4415.024; Thu, 19 Aug 2021 14:06:38 +0000 From: "Ashish Kalra via groups.io" To: devel@edk2.groups.io Cc: dovmurik@linux.vnet.ibm.com, brijesh.singh@amd.com, tobin@ibm.com, Thomas.Lendacky@amd.com, jejb@linux.ibm.com, erdemaktas@google.com, jiewen.yao@intel.com, min.m.xu@intel.com, jordan.l.justen@intel.com, ard.biesheuvel@arm.com Subject: [edk2-devel] [PATCH v7 6/6] OvmfPkg/AmdSevDxe: Add support for SEV live migration. Date: Thu, 19 Aug 2021 14:06:28 +0000 Message-Id: <61cbdcc75681f79b56687d6a048cef795b5a10e5.1629380011.git.ashish.kalra@amd.com> In-Reply-To: References: X-ClientProxiedBy: SN6PR01CA0002.prod.exchangelabs.com (2603:10b6:805:b6::15) To SN6PR12MB2767.namprd12.prod.outlook.com (2603:10b6:805:75::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-Received: from ashkalra_ubuntu_server.amd.com (165.204.77.1) by SN6PR01CA0002.prod.exchangelabs.com (2603:10b6:805:b6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Thu, 19 Aug 2021 14:06:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 606bfab8-9d27-4228-fc4a-08d9631a901a X-MS-TrafficTypeDiagnostic: SA0PR12MB4574: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Message-Info: jQLVV7w9A4nH/jNekm1KsEwBzYIK8Q26gSGtSa2kkUZSUuakVxPGufrxzNCHkEzVbWz7tMVuQ8arBlGdpCVurQe8lcQnE/s116D+zuKaNanGRZDWOH8IuMWknC/t/Vr4et8Dvf3YxQV/RcS+QHMbnxEXkVDVIukSEWx9ZsyokHr4dJix9c3Xg8/XPqjMVQwz67YLdctlJXQVKJYdixLYPUHWC93m5tBY1OWG8Xee18NlA3wK5aAQ6mRC4k7VgKQQlJ3kQqOkK8D4EbFwTxz1D7kClIkIJxfBro0a991Se+oNvmtvcvKpFLcQE752da4r+EjybfdkCrGQjQxf36UkglcFfVz5bD3TfMPM3uJWWnjKzpo8rUhr0CBuRgs0foHN3ZC1tjbfIWo1Sou9Rlv6Kn3+Mob3VIBjYEMGonSkD35XLCzU1FES0EOQeo39bQjLH/Zv2sdpp+68lNJljZ64UxFBCA0qnxLFmpWLGatxolky8DlQKoceaZtGxfoNEFbD3Id9YbwtSi7hJKJwwWZH0xzdnKVLpvr5ihl9KNHIUGOCS8LVB8laKOEONqQbV3vLNfTCB9VRQ4k0TtnFHdQAfr7ZfCEro8U3WpQLTQXzx37IyFti4aB9SjcjvXHhcufEcfShMkdKOmxFiLqOhYWhNlLARHp5Azf2zAQqcaBaRXEoFHHQzPiFq1tmdKwCrQwNCfRVM+3+6wVWS3gMPN237g== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vpTIjJjIS30TPErok2uBnvV/z+S+t2p9nafwk7Kv9YuTwCFuctQtKtqysM8y?= =?us-ascii?Q?iluNm89IyyR9jxFX4WMaYbxul9+ihgxa8Savh4HB0SsXpOX0tr5eaIycfIrc?= =?us-ascii?Q?qBhwG5UkAmGZUlzY4arlcWMqp8ZL5Sp0bJIEnOrnS7SN4khTasWl4JYkguXg?= =?us-ascii?Q?IIEnR/xLc73F1av/RkEWYRYDDrYURIg1mPh0ZgBkjGMe2iyaDMEUqM7lCkNA?= =?us-ascii?Q?C3UI7B65q5Heq+HU7YKgJUWAO6heHe6iV2HQWl69hLU/MFYh0N3Q7xnvPT6S?= =?us-ascii?Q?e1w/qQsNczwmQ6ccELON+LXRMjkvC+GKeVwUXV9MnB7/IIiCC10x7eJuJ4un?= =?us-ascii?Q?jsBkwlkGECF6OXgsZai5z02Nc0saaZBrPVZUH6bBViH+1ixrETN/JQ5lcnW1?= =?us-ascii?Q?ub443Juxqna/nRbXYh29r3kEmr+ng6X3b7xoA+jd010YXP3Pmh7hbgtrm9xo?= =?us-ascii?Q?GrgM0WNFj73Anl0dIAttGav6gMqg/DTfQpB+t201BLmcQeph+7jb2ceHrO0B?= =?us-ascii?Q?qsMnHSlGeHsXwAVcyqSZ3LvLBUGQv0mPBnbev+4qcL/OX5ADHmLF3viDHwU3?= =?us-ascii?Q?4q7fQJ4YiyNOUh+J1jR4Wepm7eh7HhEjqsFi4bLhZvH1i8cXxHU4gHj2pBrB?= =?us-ascii?Q?o3e6QUcmvzT/4LlaqdUUGfQ8aGywTNwF9DoiuU1KA0MG96WXFUlgFVAPDH9i?= =?us-ascii?Q?b7UvBAxOFW83E9u7xzkxoheCTqwqZQgRzErHBN/FoXOTzbj6PTxseW8kNzmM?= =?us-ascii?Q?P4nKgqgoYeNOIJ4+aipNvA5XAqvCfsTbY0zvZHku79nZ8VfMWksW2mzvlJa4?= =?us-ascii?Q?uNl2LB+XgZkR7h8OH1zR3BaejCDCv2FAkQcqQXPjwOX4HBGSDi+rLq3dlejV?= =?us-ascii?Q?IICLU8kpZiI6kzQ0wHxAksfaYf28qFjidz1nXj1KXuFNw+qfLhR5yPgth2vo?= =?us-ascii?Q?dK+hirFsWBkTW29ZSF9HVTxL7MmBzuaXSs5HE3TX+HFNOCW5FN0FvF4ctqBE?= =?us-ascii?Q?5JXHF9IVKWjgcA/aToojf7qbjqovTKClIcAaUSr5xB6BsZXk5CNCvInXKciK?= =?us-ascii?Q?sk8ZwHXedKcpYH/F40g5xToHxBhNi4AGY4j43JUke5LxlwF5kiKZaGwUoa8r?= =?us-ascii?Q?gKJAHOzJmFuOW7OUck4uzX48Ea2LvDxyxJBot+8hA+HpLI32yoF/pgGViLfG?= =?us-ascii?Q?fKVStgNjXgzo1Vy+HCYdwZNG7I+ykIM0An+UNQWJ40q1sCKWkWwac0yp3IEy?= =?us-ascii?Q?RR6SJvyaKrOkecXvTrxiGYVF/roYf/B/fTIwZGFiS5vwM6afdTSAu6WnDIpu?= =?us-ascii?Q?bsGX6zNYNMt6NNO8OwK143nS?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 606bfab8-9d27-4228-fc4a-08d9631a901a X-MS-Exchange-CrossTenant-AuthSource: SN6PR12MB2767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2021 14:06:38.8812 (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: Htpww6YQ+TYeccwj9D4FkF7vJmrXe6nxY1jvurojnxtscFs8ZGc4qQOqs+bNB108OvHwgr6fzkz3ojmht0z+Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4574 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ashish.kalra@amd.com X-Gm-Message-State: cnombNhzNi6lodK4WG6yT37Nx1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629382003; bh=FaGA33MOATczgGOffKwLvHDNG8NaHtfvFSe81INwMHs=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=j7vGWp6UHXJZbIHbkE46SvhVhSnpfpjXUvBLnIAbiIBhD8PdEL54jj9eAfpo4dVrdhB PRubOiyPoIumN21jb5fDWJDFDaeXZAUveeHnVPapdZM0Lfxcrm+mZvLmA7SLfbmwUvCAd xxqE6T2MhwLcgFCi9ZsR2cpuXa2QW9/Zink= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629382026923100001 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Ashish Kalra Check for SEV live migration feature support, if detected setup a new UEFI enviroment variable to indicate OVMF support for SEV live migration. This environment variable is created by UEFI but consumed by the (guest) linux kernel. This is actually part of a 3-way negotiation of the live migration feature between hypervisor, guest OVMF and guest kernel. Host indicates support for live migration, which is detected by OVMF and correspondingly OVMF sets this SetLiveMigrationEnabled UEFI variable, which is read by the guest kernel and it indicates to the guest kernel that both host and OVMF support and have enabled the live migration feature. The new runtime UEFI environment variable is set via the notification function registered for the EFI_END_OF_DXE_EVENT_GROUP_GUID event in AmdSevDxe driver. AmdSevDxe module is an apriori driver so it gets loaded between PEI and DXE phases and the SetVariable call will fail at the driver's entry point as the Variable DXE module is still not loaded yet. So we need to wait for an event notification which is signaled after the Variable DXE module is loaded, hence, using the EndOfDxe event notification to make this call. Signed-off-by: Ashish Kalra --- OvmfPkg/AmdSevDxe/AmdSevDxe.c | 64 ++++++++++++++++++++ OvmfPkg/AmdSevDxe/AmdSevDxe.inf | 4 ++ OvmfPkg/Include/Guid/AmdSevMemEncryptLib.h | 20 ++++++ OvmfPkg/OvmfPkg.dec | 1 + 4 files changed, 89 insertions(+) diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c b/OvmfPkg/AmdSevDxe/AmdSevDxe.c index c66c4e9b92..c4d28985bf 100644 --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c @@ -15,10 +15,47 @@ #include #include #include +#include +#include #include #include +#include +#include #include =20 +STATIC +VOID +EFIAPI +AmdSevDxeOnEndOfDxe ( + IN EFI_EVENT Event, + IN VOID *EventToSignal + ) +{ + EFI_STATUS Status; + BOOLEAN SevLiveMigrationEnabled; + + SevLiveMigrationEnabled =3D MemEncryptSevLiveMigrationIsEnabled(); + + if (SevLiveMigrationEnabled) { + Status =3D gRT->SetVariable ( + L"SevLiveMigrationEnabled", + &gAmdSevMemEncryptGuid, + EFI_VARIABLE_NON_VOLATILE | + EFI_VARIABLE_BOOTSERVICE_ACCESS | + EFI_VARIABLE_RUNTIME_ACCESS, + sizeof SevLiveMigrationEnabled, + &SevLiveMigrationEnabled + ); + + DEBUG (( + DEBUG_INFO, + "%a: Setting SevLiveMigrationEnabled variable, status =3D %lx\n", + __FUNCTION__, + Status + )); + } +} + EFI_STATUS EFIAPI AmdSevDxeEntryPoint ( @@ -30,6 +67,7 @@ AmdSevDxeEntryPoint ( EFI_GCD_MEMORY_SPACE_DESCRIPTOR *AllDescMap; UINTN NumEntries; UINTN Index; + EFI_EVENT Event; =20 // // Do nothing when SEV is not enabled @@ -130,5 +168,31 @@ AmdSevDxeEntryPoint ( } } =20 + // + // AmdSevDxe module is an apriori driver so it gets loaded between PEI + // and DXE phases and the SetVariable call will fail at the driver's + // entry point as the Variable DXE module is still not loaded yet. + // So we need to wait for an event notification which is signaled + // after the Variable DXE module is loaded, hence, using the + // EndOfDxe event notification to make this call. + // + // Register EFI_END_OF_DXE_EVENT_GROUP_GUID event. + // The notification function sets the runtime variable indicating OVMF + // support for SEV live migration. + // + Status =3D gBS->CreateEventEx ( + EVT_NOTIFY_SIGNAL, + TPL_CALLBACK, + AmdSevDxeOnEndOfDxe, + NULL, + &gEfiEndOfDxeEventGroupGuid, + &Event + ); + + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "%a: CreateEventEx(): %r\n", + __FUNCTION__, Status)); + } + return EFI_SUCCESS; } diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf b/OvmfPkg/AmdSevDxe/AmdSevDxe.= inf index 0676fcc5b6..2ad1fb8632 100644 --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.inf +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.inf @@ -45,3 +45,7 @@ =20 [Pcd] gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId + +[Guids] + gAmdSevMemEncryptGuid + gEfiEndOfDxeEventGroupGuid ## CONSUMES ## Event diff --git a/OvmfPkg/Include/Guid/AmdSevMemEncryptLib.h b/OvmfPkg/Include/G= uid/AmdSevMemEncryptLib.h new file mode 100644 index 0000000000..1c948fbcdd --- /dev/null +++ b/OvmfPkg/Include/Guid/AmdSevMemEncryptLib.h @@ -0,0 +1,20 @@ +/** @file + + AMD Memory Encryption GUID, define a new GUID for defining + new UEFI environment variables assocaiated with SEV Memory Encryption. + + Copyright (c) 2021, AMD Inc. All rights reserved.
+ + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __AMD_SEV_MEMENCRYPT_LIB_H__ +#define __AMD_SEV_MEMENCRYPT_LIB_H__ + +#define AMD_SEV_MEMENCRYPT_GUID \ +{0x0cf29b71, 0x9e51, 0x433a, {0xa3, 0xb7, 0x81, 0xf3, 0xab, 0x16, 0xb8, 0x= 75}} + +extern EFI_GUID gAmdSevMemEncryptGuid; + +#endif diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index 8fb6f257e8..35d6362a4d 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -124,6 +124,7 @@ gQemuKernelLoaderFsMediaGuid =3D {0x1428f772, 0xb64a, 0x441e, {= 0xb8, 0xc3, 0x9e, 0xbd, 0xd7, 0xf8, 0x93, 0xc7}} gGrubFileGuid =3D {0xb5ae312c, 0xbc8a, 0x43b1, {= 0x9c, 0x62, 0xeb, 0xb8, 0x26, 0xdd, 0x5d, 0x07}} gConfidentialComputingSecretGuid =3D {0xadf956ad, 0xe98c, 0x484c, {= 0xae, 0x11, 0xb5, 0x1c, 0x7d, 0x33, 0x64, 0x47}} + gAmdSevMemEncryptGuid =3D {0x0cf29b71, 0x9e51, 0x433a, {= 0xa3, 0xb7, 0x81, 0xf3, 0xab, 0x16, 0xb8, 0x75}} =20 [Ppis] # PPI whose presence in the PPI database signals that the TPM base addre= ss --=20 2.17.1 -=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 (#79579): https://edk2.groups.io/g/devel/message/79579 Mute This Topic: https://groups.io/mt/84997547/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-