From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (NAM11-CO1-obe.outbound.protection.outlook.com [40.107.220.74]) by mx.groups.io with SMTP id smtpd.web11.97.1605046972985733383 for ; Tue, 10 Nov 2020 14:22:53 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector2-amdcloud-onmicrosoft-com header.b=t3AoEzXw; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.220.74, mailfrom: thomas.lendacky@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AFYJQXK4dJx8R+8zgPWgoeWnexP1Id6NX5LXGgvSR3bFUgzBety6MS0s5B4HyAsb7TTRPoturLGVEVPreFz68IQe1MnJGEwX6n+0sEJ1Bxsizh21xTATjrooDhhSs/g6TeUJrxEv1CRkabFeX3P1+qAzt50dnyNXzHvl7xSAp91huAsvfFODshun7M1pnK3Ffrv9GDwVVHzrG3z8GwfsAxugnlpSCeyvZtAJaawEMO4Wv9PSpaGdB5QrygvwObhHAm9nPNu1DH6pA4OyDw4tKkDZ44L0krQ/JzJ/KDEe7euTJ5+vZxcDL2m1VRBiQX6r7b+nWJMX2Kw9M1VEXUyuVg== 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=4CNP1fZfqXwr06smzTWlVDOMCKMyydbIpdxobpUdqlA=; b=fnE+MKl+IPbEXI5SoUXrdG96lqXh+EnYPny960J1kOr46r5QVald1T74dv7WAiJtb5ntfX1FYSFZFbPnHahtc9GmG+tHQTXyC4QDPuyT/wOdxdAt3nscohC8YDQ80uTbjmqqZnwnw4bvEpPJY2UwQRJQCPk0xhZLklceUurmuRvrtePZDr62qSEckSup0/Gmau1ckNYvwgulNXkt9Kc7mznP6dMaWTHxv6OjPdo3nC+KmnesIcGzvlH3LtEmsbMYpaM9/b+NLGh0eiNcwamiz+izTvbLAPDtvioNwvEFlUUO9+h+I5Ij4GlS8gyikoYPd4ZAqgSnehIekR5i0W8z7g== 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=4CNP1fZfqXwr06smzTWlVDOMCKMyydbIpdxobpUdqlA=; b=t3AoEzXw4X6QAf2xD6SASN2tDCHniUvpgeSCxj60F1OpGTGwZU6Dpr/Komo0l10A844IFzLGVisOvkz/Z6QL6x6XZgfe5Q9rhCcMuQVyNrqjUHmX7njUe8Bpiq57WwurF5NAJJLcWJKnKtMioEUef70LDsQ5665o6Tsvgf3MFEg= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from DM5PR12MB1355.namprd12.prod.outlook.com (2603:10b6:3:6e::7) by DM5PR1201MB0218.namprd12.prod.outlook.com (2603:10b6:4:4d::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.22; Tue, 10 Nov 2020 22:22:50 +0000 Received: from DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::e442:c052:8a2c:5fba]) by DM5PR12MB1355.namprd12.prod.outlook.com ([fe80::e442:c052:8a2c:5fba%6]) with mapi id 15.20.3499.034; Tue, 10 Nov 2020 22:22:50 +0000 Subject: Re: [edk2-devel] [PATCH v4 00/11] SEV-ES guest support fixes and cleanup To: Laszlo Ersek , devel@edk2.groups.io Cc: Brijesh Singh , Ard Biesheuvel , Eric Dong , Liming Gao , Jordan Justen , Michael D Kinney , Rahul Kumar , Zhiguang Liu , Ray Ni References: <51d5d087-8d7c-dc93-a91e-42dd44da417d@redhat.com> From: "Lendacky, Thomas" Message-ID: <00efd874-342d-f495-47b3-effcf90714f7@amd.com> Date: Tue, 10 Nov 2020 16:22:49 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: <51d5d087-8d7c-dc93-a91e-42dd44da417d@redhat.com> X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM3PR12CA0063.namprd12.prod.outlook.com (2603:10b6:0:56::31) 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 [10.236.30.118] (165.204.77.1) by DM3PR12CA0063.namprd12.prod.outlook.com (2603:10b6:0:56::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.21 via Frontend Transport; Tue, 10 Nov 2020 22:22:50 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: df6ccd80-961e-4e7b-7dd6-08d885c728da X-MS-TrafficTypeDiagnostic: DM5PR1201MB0218: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:506; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SSWlapBVqcSmhHT62aUTotRo5MSQOIF3VncKKalYvTV8yb287D00v2ORlzLmiOF8JNIC2ZFpKpXyb9kHU083FKEdfzy0l1hopmwTWWequ9SAnXGxSp3y8mqz48HSeY11pKAHaQcTE3IcVCeSwHiswYy7xHUPUFC3Ic5pLGhSMVcLpofLmG6xFONf5z6LocBDbCL1PQapzTk/quRiJKm+BG4MfZ6VEjW33RQ5o7AbxV+w5YCIs/EWrl5CM9Sw4/6TQ+9MP5ZGuxBnRyiqjq7cF+9Lzpyv4Yn+KgWBmG6lMUqJodtogpEo5fyHpYI5owaIHLGLzQXI2nmfG457/nxrtMjmK5QF9yPuuFpT4dHYpdrmVsjPnBPD9us5OcPzDEd4FRHaXFwlZX5eljDecOPMD0lzIH/X5dI7uE8sq10pVxax4KQpw3zyuiyEXYXpg+HCnvINcyHpHuGj1w2d0s0pJw== 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;SFS:(4636009)(39860400002)(136003)(396003)(376002)(346002)(366004)(478600001)(54906003)(6486002)(86362001)(52116002)(66476007)(5660300002)(83380400001)(66556008)(31686004)(8936002)(7416002)(8676002)(31696002)(2906002)(966005)(956004)(316002)(66946007)(16576012)(53546011)(16526019)(4326008)(186003)(19627235002)(26005)(36756003)(2616005)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 91yZ+v/zk1ZUiY8b5VC0IHgo4rDA2U9tdXC61NoWWhPqJ+7dyGgGPts5FBVgca/kBcyEs5gNxNKiLI5jFHXQ/gMUjzkesiGp9AG3y/xSUKtAp1UBo8nHypa1F560+4Y+r9uoLDWtydPYddbAsgttWWZPLf7pKrqRIYaAH4mK73yQV5bghEe1gKIEPSWkHGSajGQo87OUPZen2Lpzw7o3+Pa4auQJd/FzwP5LCqEG3xNR2CrFTosoK8LbaZLNMbqxxwrjlIkTtHCtT5eq6I9GdB0EpdKIjn+Ne0JfL28eiRnQC+kNNPXmcyULcpTpNbd222hyNMakGx+FT1vwfwVxS2snWBH7GnSOu9C4Qz0tDQ3Q9a3L6feiTbXEefdDtdsFtq33GJFnEF9IxuT0/tgfVephB5xA2Pu6+9AbKXlH4QEjNM47AF+dEk8DzDMTa/JsBXIN6RWyXE7hcwgE7mCYzPYbHbZ//3kL9MWxL8+Jhm4k6sH2nmRgDT5gP6G7egdOGp0qIt/IW6xTnuEY622AL9HvMw9qgZQNsm9DtrF3vehaBpC58esXI+8lyO6WX7zZZa1rVGUze15MwkMzTUuSDhHUQrMBDDDh9pI6jRpIsY7HXTjWh3b4XRu12G6mvez7JP7IogqN6QRXoLYG+Orq1g== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: df6ccd80-961e-4e7b-7dd6-08d885c728da X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2020 22:22:50.4608 (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: LsFSguIN3oM6dQm7fl45qv9uW4GXI0H2pARVfAJfIHYjUpA7DNiQYSota2XX/TSh8d9j2sN6ZLYF8bwOeatxrw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR1201MB0218 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 11/10/20 1:28 PM, Laszlo Ersek wrote: > On 11/06/20 18:53, Lendacky, Thomas wrote: >> From: Tom Lendacky >> >> This patch series provides some fixes, updates and cleanup to the SEV-ES >> guest support: >> >> - Update the calculation of the qword offset of fields within the GHCB >> by removing the hardcoding of the offsets and using the OFFSET_OF () >> and sizeof () functions to calculate the values. Remove unused values >> and add values that will be used in later patches. >> >> - Set the SwExitCode, SwExitInfo1, SwExitInfo2 and SwScratch valid bits >> in the GHCB ValidBitmap area when these fields are for a VMGEXIT. This >> is done by adding two new interfaces to the VmgExitLib library to set >> and test the bits of the GHCB ValidBitmap. This reduces code duplication >> and keeps access to the ValidBitmap field within the VmgExitLib library. >> >> - Update the Qemu flash drive services support to add SEV-ES support for >> erasing blocks. >> >> - Disable interrupts when using the GHCB. >> >> - Use the processor number for setting the AP stack pointer instead of the >> APIC ID by calling GetProcessorNumber(). >> >> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3008 > > Merged as commit range 8c610e6075f2..d150439b7263, via > . > Thanks you, Laszlo, as well as everyone involved in reviewing the patches. Tom > Thanks > Laszlo > >> >> --- >> >> These patches are based on commit: >> dc0dae2d18d4 ("BaseTools: Fix BaseTools nmake cleanall hang issue") >> >> Cc: Ard Biesheuvel >> Cc: Eric Dong >> Cc: Laszlo Ersek >> Cc: Liming Gao >> Cc: Jordan Justen >> Cc: Michael D Kinney >> Cc: Rahul Kumar >> Cc: Zhiguang Liu >> Cc: Ray Ni >> Cc: Tom Lendacky >> Cc: Brijesh Singh >> >> Changes since v3: >> - Replace the use of "sizeof (UINT64)" in the GHCB_REGISTER enum with >> a macro that uses "sizeof (UINT64)" to avoid ECC errors during CI >> (suggested by Laszlo). >> >> Changes since v2: >> - Don't rename the GHCB_REGISTER enum type. >> >> Changes since v1: >> - For the GHCB savearea changes, create a new reserved area name instead >> of "renumbering" the reserved areas. >> - Rework the ValidBitmap set/test support to be part of the VmgExitLib >> library. Create two new interfaces for setting and testing bits in the >> GHCB ValidBitmap field and adjust all existing code and the new code in >> this series to use these interfaces for the ValidBitmap updates/checks. >> - Don't disable interrupts for just the Qemu flash services support, but >> rather, cover all users of the GHCB by disabling interrupts in VmgInit() >> and restoring them in VmgDone(). This requires changes to those >> interaces. >> >> Tom Lendacky (11): >> MdePkg: Clean up GHCB field offsets and save area >> UefiCpuPkg/VmgExitLib: Add interfaces to set/read GHCB ValidBitmap >> bits >> OvmfPkg/VmgExitLib: Implement new VmgExitLib interfaces >> OvmfPkg/VmgExitLib: Set the SW exit fields when performing VMGEXIT >> OvmfPkg/VmgExitLib: Set the SwScratch valid bit for IOIO events >> OvmfPkg/VmgExitLib: Set the SwScratch valid bit for MMIO events >> UefiCpuPkg/MpInitLib: Set the SW exit fields when performing VMGEXIT >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Set the SwScratch valid bit >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Fix erase blocks for SEV-ES >> UefiCpuPkg, OvmfPkg: Disable interrupts when using the GHCB >> UefiCpuPkg/MpInitLib: For SEV-ES guest, set stack based on processor >> number >> >> MdePkg/Include/Register/Amd/Ghcb.h | 43 +++---- >> UefiCpuPkg/Include/Library/VmgExitLib.h | 51 +++++++- >> OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 84 ++++++++++++- >> OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 129 ++++++-------------- >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 4 +- >> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlashDxe.c | 6 +- >> UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 5 +- >> UefiCpuPkg/Library/MpInitLib/MpLib.c | 14 ++- >> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c | 60 +++++++-- >> UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 6 + >> 10 files changed, 261 insertions(+), 141 deletions(-) >> >