From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (NAM04-SN1-obe.outbound.protection.outlook.com [40.107.70.82]) by mx.groups.io with SMTP id smtpd.web10.58376.1595863823034126060 for ; Mon, 27 Jul 2020 08:30:23 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=T+ZpMoKI; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.70.82, mailfrom: thomas.lendacky@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bUJzoeK0ozdCdMlVEUF/jE4fCR2sdMr0eH6h6w6XDGoC8xcV7NSK131imqZAiTPM+nECk1A8tKcrROB47aT6iF9c/q7FDjY0GWl3ln69qnq2RQVeR01Exd2dZ1Qfpnmmu56fWxhrTnvdy8+Ql7ZNemJc8fvHEFUS2JOdcjQg8pHzWkr/USD+tMnV/u4pZBKUez+Ym8sVV4LXrLfqk9l9Wz/eWUKrs09ioAxJSXcgWFUxxKzEWT4J4a+B1asGkgSh6Y0UbD1/5jL6KyHzhYVJDwdyMsWKG0LGZ3ulYQDOsjXHcNBVlIo4QGpeyRCGyf8YBvyneTvqTrP0oe4slK1hVw== 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=tpMCGKkJ/vd5g9S5fco/aQoufjhaVtd6vFQYZt6tvPo=; b=CZkp4uO8iUR2Xyktjod+Flm9NTnH0a/R+QvjOpsZzZ/5BQg+aXwXagkMv9MA0rt8U/+/ZxPKLHd/zUdbeW1CnuTNEYxjPON2se24Mk9y+EoV2aXHRRLVH14Q4PxGaxmcmdX2Ocwn8n6eGNJrxUPPhjdN/Iv9MmwZztjI+0aJxeOmqAI2dpEXSTV6aSlmywVbWCkI3v6/9RDr8e74EZ7ERMla5dPJpgRt9cPX5L8KyhVlDnPT88+SmPMK/NhHTCXlqA7XTn8l4TW4ECa6KlWgCCgQpSeY+Wzk1P51LPlbi//wb9wAqIIsJ5kd3/jua4wMnGmtMgGh1pZDIFMEn+00qw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector2-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tpMCGKkJ/vd5g9S5fco/aQoufjhaVtd6vFQYZt6tvPo=; b=T+ZpMoKILPFwL/3gNpXdT9fHVO6oMFOFAAqA9MCpabUzWvgclpeT1h5wTH+dySDDQuEht9t+PL5/DOfkuPxIV0Rm8HFBc7O0O4niDqwjjeaXEPHhD2z/3AtF8QYxP2OvMZoAgJCPSM/TnRhSvOdegX3Nv6fjoObff6KaSO0iw/Y= Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=amd.com; Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM5PR12MB1163.namprd12.prod.outlook.com (2603:10b6:3:7a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.25; Mon, 27 Jul 2020 15:30:21 +0000 Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::25ec:e6ba:197c:4eb0]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::25ec:e6ba:197c:4eb0%8]) with mapi id 15.20.3216.031; Mon, 27 Jul 2020 15:30:21 +0000 From: "Lendacky, Thomas" To: devel@edk2.groups.io CC: Brijesh Singh , Ard Biesheuvel , Eric Dong , Jordan Justen , Laszlo Ersek , Liming Gao , Michael D Kinney , Ray Ni Subject: [PATCH v12 28/46] OvmfPkg: Add support to perform SEV-ES initialization Date: Mon, 27 Jul 2020 10:26:09 -0500 Message-ID: <7919055d7213783830256f324428c95df1036842.1595863587.git.thomas.lendacky@amd.com> X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-ClientProxiedBy: SN4PR0701CA0044.namprd07.prod.outlook.com (2603:10b6:803:2d::17) To DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) Return-Path: thomas.lendacky@amd.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from tlendack-t1.amd.com (165.204.77.1) by SN4PR0701CA0044.namprd07.prod.outlook.com (2603:10b6:803:2d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.20 via Frontend Transport; Mon, 27 Jul 2020 15:30:20 +0000 X-Mailer: git-send-email 2.27.0 X-Originating-IP: [165.204.77.1] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9aa45554-3ac7-4f7f-82aa-08d83241f9a6 X-MS-TrafficTypeDiagnostic: DM5PR12MB1163: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sWYXps5uUqPmGwnj1OAsOF8Y1uZeYU5aNG5mpKeqgbP4PsVL5NJf9gUY2EDdEvBQktCGib9q08XDnPVbrPX/dkYSZq/bUZ8U5uTpnRLNhwBXMJG0Xuq2PLLcs7K5RQ422gB+c88y75+wfTn27QG8+Ofrih/hOuobFHUdsB6pYsk4nXCAoao7T4glq4wk4Ct08/w/5sFaY4CHLE+AWfplG4fYbp0e06JLaskfbzwzX5dxLQc+9QvdlVYA2iQXjwJ3FlEml5LsIejHFMWJnQCnYLtowIFI8iXiSqgNBhkuf5jloXg5FyCz7OrRv7pVFom4uB3Bj3t6RVgNNtaadJcbFkPyyNM7V9nazYL7i+Y3Jql9N5K5MNKEj54lTm3b3V8Mqh6MGMP846LbexJ7oZOCO55TKQq+ibIebfI2krbLGpEYXsEHSIxXT+TrXWqTKBQrXMo0OJ4ir/BYby34ULcZrw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM5PR12MB1355.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(39860400002)(346002)(396003)(136003)(366004)(26005)(7696005)(16526019)(52116002)(186003)(66946007)(2616005)(66556008)(316002)(36756003)(956004)(19627235002)(966005)(5660300002)(66476007)(54906003)(6666004)(478600001)(2906002)(4326008)(6486002)(8676002)(8936002)(6916009)(86362001)(136400200001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: XnKaHFh9bZrsP+1m+/b4cde27VrhtmXAVMhdHSjBGfn84QQrL3s27/Ml5NSHC+Mxm4RhLfIdCp9AnrGJmjegXfyQHxMleQJ8U4xVCkcGGaX6KD6mjrzZRLoVPJqkM2Jit2dsZTmoD1kCDVWqP9OcE/PkkykflOXaYqfIti+IGC1PrbSce533Gql0bOurU3FSvJrPCrM9xmxffy5DMPqYU2cHPMui5bFsoXCm4DsN/TBQi7duTamcQa/hZ+9EjvqCvgserf2cJm/vTYHv6Nwszg+p8DvG79FfjuGyR4KpJFkpl+uruXfAAv3qGYB+uP0MGsnQuoNGqPmH8xqa7AuzSo4Q+vbwn8GrKHLdu3+e8ZLuwtNdMu+uHsxOYXj1Jl5kQ3pG56+mfEPgYPvoRd7aoghAZgL4XzJSKzsy5yBI86GT6wO5lLMVmMo+Eb3F82AJHVMAkC0QNqMSBbXmxoctK0J32dDPj3m+BcrQ6G2xosw= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9aa45554-3ac7-4f7f-82aa-08d83241f9a6 X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jul 2020 15:30:21.6916 (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: q6y3FFEuyw5QtRK8qbyyzdOT2tZuEkapCodw4f5lUH3bHCdnGttvmwOcEjoRkYOxc+omlnFOTBsLjHCzrqLxaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1163 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable From: Tom Lendacky BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2198 When SEV-ES is enabled, then SEV is also enabled. Add support to the SEV initialization function to also check for SEV-ES being enabled, and if enabled, set the SEV-ES enabled PCD (PcdSevEsIsEnabled). Cc: Jordan Justen Cc: Laszlo Ersek Cc: Ard Biesheuvel Reviewed-by: Laszlo Ersek Signed-off-by: Tom Lendacky --- OvmfPkg/OvmfPkgIa32.dsc | 3 +++ OvmfPkg/OvmfPkgIa32X64.dsc | 3 +++ OvmfPkg/OvmfPkgX64.dsc | 3 +++ OvmfPkg/PlatformPei/PlatformPei.inf | 1 + OvmfPkg/PlatformPei/AmdSev.c | 26 ++++++++++++++++++++++++++ 5 files changed, 36 insertions(+) diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc index c57bba1ba197..f84f23f250ef 100644 --- a/OvmfPkg/OvmfPkgIa32.dsc +++ b/OvmfPkg/OvmfPkgIa32.dsc @@ -607,6 +607,9 @@ [PcdsDynamicDefault] # Set memory encryption mask gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 =20 + # Set SEV-ES defaults + gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0 + !if $(SMM_REQUIRE) =3D=3D TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc index 22e930b12b9b..a66abccf8266 100644 --- a/OvmfPkg/OvmfPkgIa32X64.dsc +++ b/OvmfPkg/OvmfPkgIa32X64.dsc @@ -619,6 +619,9 @@ [PcdsDynamicDefault] # Set memory encryption mask gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 =20 + # Set SEV-ES defaults + gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0 + !if $(SMM_REQUIRE) =3D=3D TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 60be5eae3d2b..2a8975fd3d29 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -617,6 +617,9 @@ [PcdsDynamicDefault] # Set memory encryption mask gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask|0x0 =20 + # Set SEV-ES defaults + gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled|0 + !if $(SMM_REQUIRE) =3D=3D TRUE gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes|8 gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase|FALSE diff --git a/OvmfPkg/PlatformPei/PlatformPei.inf b/OvmfPkg/PlatformPei/Plat= formPei.inf index ff397b3ee9d7..00feb96c9308 100644 --- a/OvmfPkg/PlatformPei/PlatformPei.inf +++ b/OvmfPkg/PlatformPei/PlatformPei.inf @@ -103,6 +103,7 @@ [Pcd] gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize + gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled =20 [FixedPcd] gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress diff --git a/OvmfPkg/PlatformPei/AmdSev.c b/OvmfPkg/PlatformPei/AmdSev.c index e484f4b311fe..4dc5340caa7a 100644 --- a/OvmfPkg/PlatformPei/AmdSev.c +++ b/OvmfPkg/PlatformPei/AmdSev.c @@ -21,6 +21,27 @@ =20 #include "Platform.h" =20 +/** + + Initialize SEV-ES support if running as an SEV-ES guest. + + **/ +STATIC +VOID +AmdSevEsInitialize ( + VOID + ) +{ + RETURN_STATUS PcdStatus; + + if (!MemEncryptSevEsIsEnabled ()) { + return; + } + + PcdStatus =3D PcdSetBoolS (PcdSevEsIsEnabled, TRUE); + ASSERT_RETURN_ERROR (PcdStatus); +} + /** =20 Function checks if SEV support is available, if present then it sets @@ -103,4 +124,9 @@ AmdSevInitialize ( ); } } + + // + // Check and perform SEV-ES initialization if required. + // + AmdSevEsInitialize (); } --=20 2.27.0