From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (NAM11-BN8-obe.outbound.protection.outlook.com [40.107.236.86]) by mx.groups.io with SMTP id smtpd.web11.255.1653060585259134509 for ; Fri, 20 May 2022 08:29:45 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=IaldvbJf; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.236.86, mailfrom: michael.roth@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I6vftifo5FDJpuZ8V6XeUMl0RA+dM2cj/C+7okAqmNqjFsydIDVx7zSvood0ZEjAHAbzNrf+r7p6VWb8sgDL3FCWrr0wTXf5P5BfO2v4tzdxRYIvHvteTnIen5e0BTumUQRScKuZBSsWsPo18NCs1vxOYsPRGLgB0sjBHm0gCrNRxvDEy31PYLcUByR0t2FhC24YjsVmwx1rbFG2HjObE8TC5oYQok3BXjIKkEd/ccZg8YnDDdv2Oehfyh0ANu2Ftk0gNAmLZMDTBFxiaIjp8ceIBJ20djM1xNK0p4q89zZGISpIEqMl2IBSGHweVtIWza9RKDv5sJLuLZDskBKISg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=BLnVx/bOSV/VG+Rdhs8Q75YZIyxGRC/r1zDTrzLjTtc=; b=nI2v7gdVjESkTYa3AFcHjXJ7ZCxVZuWdshTi6ADQltASbF6x3k1iU2Lcd4ApVLLsD7E1e6PdzKuReY5cbjR1J3ahe8KRg+qZj60Vj7/2Vk0fOGa+1jnYFOJn1VrbXMUJR2MiqnMe/7hi18DkyYwWm+s41lXlA8WbBjvUuqBbLEv39zMTGEE5NTxeXyMkgWXqGwABuWNYBQDC3pPru7VnNxziUCSok4B3bP1VcTg9/v34wiz9qqplCLvf0XIWpsUIBFHk0ELE5+OgtwJd684WTqJsp+UU5DKD2g5J1+Kh9haH0PL71GXw3BNFCkwVUIiJ31RvfOEx0WAwUZn2Knwl/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=edk2.groups.io smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BLnVx/bOSV/VG+Rdhs8Q75YZIyxGRC/r1zDTrzLjTtc=; b=IaldvbJf06ZHP6XVfebMsT2kN+Nsu/MRBXGro/VY2zUlZKAtydznjHBwTwv49EWqWXLB0GcKENv2bNbNJimureO/3fUW0jCaGxPFr28+BU8hz0ufJLG6oZBwvEeJbeGp3qrLOk1urMjydOtmKX/1+oiLzAkePJRePnLmQodAWiw= Received: from DM5PR18CA0078.namprd18.prod.outlook.com (2603:10b6:3:3::16) by DM6PR12MB3708.namprd12.prod.outlook.com (2603:10b6:5:1c5::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Fri, 20 May 2022 15:29:42 +0000 Received: from DM6NAM11FT027.eop-nam11.prod.protection.outlook.com (2603:10b6:3:3:cafe::16) by DM5PR18CA0078.outlook.office365.com (2603:10b6:3:3::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.22 via Frontend Transport; Fri, 20 May 2022 15:29:42 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by DM6NAM11FT027.mail.protection.outlook.com (10.13.172.205) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5273.14 via Frontend Transport; Fri, 20 May 2022 15:29:42 +0000 Received: from localhost (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Fri, 20 May 2022 10:29:41 -0500 From: Michael Roth To: CC: Tom Lendacky , "Ni, Ray" Subject: [PATCH v3 4/4] UefiCpuPkg: Store SEV-SNP AP jump table in the secrets page Date: Fri, 20 May 2022 10:27:30 -0500 Message-ID: <20220520152730.7924-5-michael.roth@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220520152730.7924-1-michael.roth@amd.com> References: <20220520152730.7924-1-michael.roth@amd.com> MIME-Version: 1.0 Return-Path: Michael.Roth@amd.com X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d94aeb6-024c-4e00-db60-08da3a758ff6 X-MS-TrafficTypeDiagnostic: DM6PR12MB3708:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 30L89snJrFdVlqaOod2Hvca8J4yNJwsz+bWUnZz9uR/ErVFgAlhCTapkG8D6JxDUT+7dR794He6WVCRmO/u/N0KuCllBcxVHYgSb4Wj3L2h/HeNH13vPeDOVHoHsmhgDiALCL38CLyTzaSBMDlAmTg5HCmmr7dn7pGJrX69bEik1NKqV+A7iTEPwiSjJ1gqnJY5Ay4YszdFaSD7IDus41ld1ObCz6aF8elWudqUiH5YCX+tHKvDbLt3PZMsVwsz0pwCln8RPfuEcahlAbVpxgeP/OAyra8V4KbtodIke5BDjinik8syepCj/7qLLX5bP9UIPnJ+NKlh2vYYcQNNIFb5+7mdaCS2Ckjb8HByYJltP/MYmEj+CcHYHNHjCu081joJQOUjKezMoGzUmclbK3hMcrVz7RuVLbDzDk/cR9TQB0V3JXsHHtpBQHSzBTwKVPzAH30vkxhFu2DxUXqh836uJjNnBnH9uH/7Y7n81HFr586f4+Nz5MQctyZwLLFFu9cwf03ZqoTiTjxu9F9OwQksh8mfcQsc707rNSu+DLwzGxnoa0WURvEjSH/ARFBWyKFgxCECJvXYV5d5dDP83uVN1v+NK4sFcyPs6zTqolfm3Q/6a1BiCIOq6fK56y4FBXE5d+rog1zQjkLA8gBPB8w4WUSI+EawKl6bWgIMEgovNw25FpoEdIn17gq35xPSUcPEvn5NUygsgQxgTWd8/Tg== X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230001)(4636009)(40470700004)(36840700001)(46966006)(336012)(36756003)(6916009)(356005)(86362001)(82310400005)(426003)(186003)(16526019)(2906002)(47076005)(6666004)(1076003)(316002)(54906003)(83380400001)(8936002)(5660300002)(26005)(40460700003)(81166007)(2616005)(70586007)(508600001)(44832011)(8676002)(36860700001)(70206006)(4326008)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2022 15:29:42.6157 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7d94aeb6-024c-4e00-db60-08da3a758ff6 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.17];Helo=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT027.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3708 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain A full-featured SEV-SNP guest will not rely on the AP jump table, and will instead use the AP Creation interface defined by the GHCB. However, a guest is still allowed to use the AP jump table if desired. However, unlike with SEV-ES guests, SEV-SNP guests should not store/retrieve the jump table address via GHCB requests to the hypervisor, they should instead store/retrieve it via the SEV-SNP secrets page. Implement the store side of this for OVMF. Suggested-by: Tom Lendacky Signed-off-by: Michael Roth --- UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 1 + UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf b/UefiCpuPkg/Lib= rary/MpInitLib/DxeMpInitLib.inf index e1cd0b3500..d8cfddcd82 100644 --- a/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf @@ -80,3 +80,4 @@ gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard ## = CONSUMES=0D gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase ## = CONSUMES=0D gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr ## = CONSUMES=0D + gEfiMdePkgTokenSpaceGuid.PcdSevSnpSecretsAddress ## = CONSUMES=0D diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c b/UefiCpuPkg/Library/M= pInitLib/DxeMpLib.c index 60d14a5a0e..4d6f7643db 100644 --- a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c @@ -15,6 +15,7 @@ #include =0D #include =0D #include =0D +#include =0D =0D #include =0D =0D @@ -216,6 +217,15 @@ GetSevEsAPMemory ( =0D DEBUG ((DEBUG_INFO, "Dxe: SevEsAPMemory =3D %lx\n", (UINTN)StartAddress)= );=0D =0D + if (ConfidentialComputingGuestHas (CCAttrAmdSevSnp)) {=0D + SNP_SECRETS_PAGE *Secrets;=0D +=0D + Secrets =3D (SNP_SECRETS_PAGE *)(INTN)PcdGet64 (= PcdSevSnpSecretsAddress);=0D + Secrets->OsArea.ApJumpTablePa =3D (UINT64)(UINTN)StartAddress;=0D +=0D + return (UINTN)StartAddress;=0D + }=0D +=0D //=0D // Save the SevEsAPMemory as the AP jump table.=0D //=0D --=20 2.25.1