From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (NAM10-DM6-obe.outbound.protection.outlook.com [40.107.93.47]) by mx.groups.io with SMTP id smtpd.web12.19152.1597251602770890118 for ; Wed, 12 Aug 2020 10:00:03 -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=IuP2byx2; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.93.47, mailfrom: thomas.lendacky@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HlP8DDFVUWcLitapu6s+tz3GM7S9TTxokBRrI6CEzxluZKdelETBD1/4+IVRhZzY5B4AmaxEtBAQq46SyLvaPlQeWcGUiAmGelHCg617JllNAIye6MXBJnbNPO+R+yqpGkkSCHz4HkcPdmLeMhdNdu2fAan/bKGePTjkVkOIa2MlnAqBhTWWjGwX7BCpUCU0AwlDIyqb2VeNjTRKIfy1DndHXVU08Anr3dGIRf0kjbv9c6mTzdtJaQo0LzveafjOAvbl9QgpZ2UYtCiV3C7XvzuAKfiOWdAZzZppV278fz8NAZlB5i+WacGIHeYRyumXgqPZ8xkH/CLIzVkvvSVZow== 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=289U3jIFqISr/Ri/pM5bLL+ZJGXiqyNTjuGqzPpQLJM=; b=XAW5Ig4wjuE5j3Lh18bESeKprPUfGut5C94xUNdzKDpNAKEQRd4bWGHngrdNDJ+zVUu6aqtfNYMjRCoCBWLDUvYa4uNGrgfWz1qOXPqOSyISEIWfjH65xX+HFLdksPaCS3w2wm1sTnKK4pfcIvBBgMAjhQrdzAyIkWGm7M65nmzdXHM0paMIb8qNqqv81GxAeaC1yRrh7XKTsqNNkQPssm5WGkTdyTbxs0OonB/TDlmtzQPh9MvLeC1actjmiCWjTA6xtX0atxCrInI8sCOyVX0dQtRV5l2JQyfonLR5F7nMZcSiqYFx+e0saJtitl1VLIgvL+R51IZMfHR+YR47Rw== 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=289U3jIFqISr/Ri/pM5bLL+ZJGXiqyNTjuGqzPpQLJM=; b=IuP2byx2YoZFHRfM4jwa+VVF1h7Y3IbedN90URaVbxEnhgrPFS6McYEEBFb0A3HJmRbhvNdAfNvbUXz0ToFD/PUrbbZnPKfJdCW8snepza/XZODVA7NzjKiUSP7uc7sIuhk8KIDMgMPL+gMYvnhxaMJGsp+xbbQ7qwHgv/R8Cqk= 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 DM5PR12MB1834.namprd12.prod.outlook.com (2603:10b6:3:10a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.22; Wed, 12 Aug 2020 16:59:54 +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.3261.025; Wed, 12 Aug 2020 16:59:54 +0000 Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support To: "Gao, Liming" , "devel@edk2.groups.io" , Laszlo Ersek CC: Brijesh Singh , Ard Biesheuvel , "Dong, Eric" , "Justen, Jordan L" , "Kinney, Michael D" , "Ni, Ray" , Andrew Fish , Anthony Perard , "You, Benjamin" , "Bi, Dandan" , "Dong, Guo" , "Wu, Hao A" , "Wang, Jian J" , Julien Grall , Leif Lindholm , "Ma, Maurice" References: <4fa19934-008b-f8e5-6db8-0c39fe9875de@redhat.com> <0bfcf395-2563-592c-0252-61aa9f86d952@amd.com> <3355b30e-516b-2873-9950-0218ce71dc70@amd.com> From: "Lendacky, Thomas" Message-ID: <9230deec-c73d-de51-f279-b659d32e512a@amd.com> Date: Wed, 12 Aug 2020 11:59:51 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: X-ClientProxiedBy: SA9PR10CA0026.namprd10.prod.outlook.com (2603:10b6:806:a7::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 SA9PR10CA0026.namprd10.prod.outlook.com (2603:10b6:806:a7::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3261.20 via Frontend Transport; Wed, 12 Aug 2020 16:59:52 +0000 X-Originating-IP: [165.204.77.1] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5eaee31b-7941-45b9-0bd9-08d83ee1224d X-MS-TrafficTypeDiagnostic: DM5PR12MB1834: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mcbEa6HMzULd7eFWeLxkbt/hAtP1+Tmx9GYtIPM/uKMtk6u/lQ7Rzva1SWPsFHr7UFOu+c3dhrPy8Hp/dYEMBbuwEWvww0L0/FzbwEQ7yEbMkvFURqGDG/oTlBfSsYePukTz1nlqfqsFAu/3WwpeimLBq0JTAVpm7mLo/w3ts6KGvHODI29QrfrI2H6HTURwj1VY2V6QH+Uh7isICcuIQfUPiKh4GiWCGbebPREsWC61efpRkzLmrVRyA/K2RI1LGcDkHOHTZqgyTm30pYiIeYVZIkOexl2xe/1ckndioc6B0Bkkd2JdDbSmQILLililbVHeATv6V00fOdOLqPBat4n5rp8rog0/9+iBH1xvFK066ne+1gcoUoWYwwK9DCyIkfO5Q5x6Ey+6GEEKBxw71QPAaf9xCgH/mUnN2f91sVL73rPY0iEVtl5s8Ex3WAni+VhRKzby04UlJsv5OMF6kQ== 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)(396003)(346002)(366004)(376002)(39860400002)(136003)(316002)(30864003)(66556008)(83080400001)(16526019)(110136005)(16576012)(966005)(66476007)(36756003)(86362001)(186003)(5660300002)(478600001)(8936002)(66946007)(45080400002)(31696002)(6486002)(26005)(2616005)(83380400001)(54906003)(4326008)(19627235002)(2906002)(8676002)(52116002)(31686004)(7416002)(956004)(53546011)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: k/vcOfLtijH47SQGmmHN53s1L4EHyDhLqZwHJjexsfQxPgyngclKU2cvEqWtRuc3YuzwnJA8pnpkoYmg46ct7UH+ClfAft9XqAaCISzOKQGFrt0lRoLK3kCSeLrnCA6V+RgzxOAr33gLE4of+BrDMZAH9w4EVTemPx3I9BcIbIm3Y7aCb1RVbYgmjtPQhnT4PqhqghmaAvAY30lhn1ky/d9LI0Gy0TkEiJWcuHTHat8sbT3vGAsWSxeSyoh+1KW6esI7OJCccv1L74TO7pO8irx141WyWh0WHnyM+yBm6yvV8srmQ+qLncXhgwU7yo+T18xmLGg/Q2W+8zIEdO2bGFXdajimLWJIl81T61THWPw/N4TC18+gcdUrlflGI0ZLmDsw4znj3meFld0hiYzaLmgSfLiAJWTbaM/pYWpyKMeESwFg0plmA4ZS/UcUfb3z4bQtN8vPKJS+Z/SZBY4bvVpNe+1SPMj58KbFIOuKGV8RgX1DAqJqBH26VPBbeL+vLJFd/PCouHmwjm6W4wHV79Yd6FbibVdC1KSaECrEUlSErg1Btu9R9AbjTnBjpinVNEcR3bGjpzqtOKVyZc/pA+C6abRjQwbHyc0oyYLZOAYotKMnAN5OMzXtgYM0Ymy+6Nr6PPRWWiP9lDYjRDHIRQ== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5eaee31b-7941-45b9-0bd9-08d83ee1224d X-MS-Exchange-CrossTenant-AuthSource: DM5PR12MB1355.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2020 16:59:54.0332 (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: YmTbxbFo49m75OvyEvCTbkrlAZm5Fs8cXbHMblu7pxtGxEv+rupNvXKMALlKI71czZmOPSxb8w3p1azgUjA+Pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1834 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Thank you Liming, I'll send out v15 within the next day or so. Thanks, Tom On 8/12/20 11:50 AM, Gao, Liming wrote: > Tom: > I run the standalone ECC checker. sev-es-v23 version pass ECC checker.= There is no ecc issue any more.=20 >=20 > Thanks > Liming >> -----Original Message----- >> From: devel@edk2.groups.io On Behalf Of Lendacky= , Thomas >> Sent: Wednesday, August 12, 2020 11:49 PM >> To: Gao, Liming ; devel@edk2.groups.io; Laszlo Er= sek >> Cc: Brijesh Singh ; Ard Biesheuvel ; Dong, Eric ; Justen, >> Jordan L ; Kinney, Michael D ; Ni, Ray ; Andrew Fish >> ; Anthony Perard ; You, Ben= jamin ; Bi, Dandan >> ; Dong, Guo ; Wu, Hao A ; Wang, Jian J ; >> Julien Grall ; Leif Lindholm ; Ma, M= aurice >> Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support >> >> Hi Liming, >> >> Thank you, the updated series can be found here: >> >> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fg= ithub.com%2FAMDESE%2Fovmf%2Ftree%2Fsev-es-v23&data=3D02%7C01%7Cthomas.l= endacky%40amd.com%7C28879517b7664a435a3308d83edfd6f5%7C3dd8961fe4884e608e11= a82d994e183d%7C0%7C0%7C637328478394063635&sdata=3D4trIK4Icdo1uDkDQc38ON= 1YPllMLAoGmR4w2WyD504w%3D&reserved=3D0 >> >> Thanks, >> Tom >> >> On 8/12/20 10:28 AM, Gao, Liming wrote: >>> Tom: >>> I understand your point. Now, I run this script on Windows OS. I don= 't try it on Linux agent. You can upload new patch set to your >> fork branch. I will verify it and let your know the result. >>> >>> And, I plan to merge ECC checker this week. So, more patches can be = verified. >>> >>> Thanks >>> Liming >>>> -----Original Message----- >>>> From: devel@edk2.groups.io On Behalf Of Lendac= ky, Thomas >>>> Sent: Wednesday, August 12, 2020 11:18 PM >>>> To: Gao, Liming ; devel@edk2.groups.io; Laszlo = Ersek >>>> Cc: Brijesh Singh ; Ard Biesheuvel ; Dong, Eric ; Justen, >>>> Jordan L ; Kinney, Michael D ; Ni, Ray ; Andrew Fish >>>> ; Anthony Perard ; You, B= enjamin ; Bi, Dandan >>>> ; Dong, Guo ; Wu, Hao A ; Wang, Jian J >> ; >>>> Julien Grall ; Leif Lindholm ; Ma,= Maurice >>>> Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support >>>> >>>> Hi Liming, >>>> >>>> So I'm not sure what the next step is then... Since the ECC checker i= sn't >>>> merged yet, are you saying that I should submit the series again with= the >>>> changes and that you won't be running the stand-alone tool again? Or = will >>>> you run the tool again and submit more issues to resolve if the tool = finds >>>> any? If it's the latter, I would really like to be able to run this t= ool >>>> stand-alone, as you have done, so that I don't have to keep re-submit= ting >>>> the series (because it looks like the tool doesn't catch everything a= nd >>>> fixing one thing may then expose another). >>>> >>>> Thanks, >>>> Tom >>>> >>>> On 8/12/20 9:34 AM, Gao, Liming wrote: >>>>> Tom: >>>>> >>>>> -----Original Message----- >>>>> From: devel@edk2.groups.io On Behalf Of Lenda= cky, Thomas >>>>> Sent: 2020=E5=B9=B48=E6=9C=8812=E6=97=A5 0:18 >>>>> To: Laszlo Ersek ; Gao, Liming ; devel@edk2.groups.io >>>>> Cc: Brijesh Singh ; Ard Biesheuvel ; Dong, Eric ; >> Justen, >>>> Jordan L ; Kinney, Michael D ; Ni, Ray ; Andrew Fish >>>> ; Anthony Perard ; You, B= enjamin ; Bi, Dandan >>>> ; Dong, Guo ; Wu, Hao A ; Wang, Jian J >> ; >>>> Julien Grall ; Leif Lindholm ; Ma,= Maurice >>>>> Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support >>>>> >>>>> On 8/11/20 9:49 AM, Laszlo Ersek wrote: >>>>>> On 08/11/20 03:12, Gao, Liming wrote: >>>>>>> Tom: >>>>>>> I run ECC plugin >>>> >> (https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fed= k2.groups.io%2Fg%2Fdevel%2Fmessage%2F63271&dat >>>> >> a=3D02%7C01%7Cthomas.lendacky%40amd.com%7C4285f946d86342630a4708d83eccc= f27%7C3dd8961fe4884e608e11a82d994e183d%7C >>>> 0%7C0%7C637328396655798086&sdata=3D27ydFZdocl9RV7MbrLRKw0L2GiOGtW= Llpsuaw9wj2fo%3D&reserved=3D0) in my >> local >>>> machine. It reports below issues. Can you help update the patches to = fix them? >>>>>>> I use the standalone EccCheck from >>>> >> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgit= hub.com%2Fshenglei10%2Fedk2%2Ftree%2Fecc_script& >>>> ;data=3D02%7C01%7Cthomas.lendacky%40amd.com%7C4285f946d86342630a4708d= 83ecccf27%7C3dd8961fe4884e608e11a82d994e18 >> 3d >>>> %7C0%7C0%7C637328396655798086&sdata=3Db8VUf6uNw%2FzNBZCKU0IUUakDL= JPmVsK4ghJirmQwCwY%3D&reserved=3D0. >>>>>>> >>>>>>> EFI coding style error >>>>>>> *Error code: 8005 >>>>>>> *Variable name does not follow the rules: 1. First character sho= uld be upper case 2. Must contain lower case characters 3. No >>>> white space characters 4. Global variable name must start with a 'g' >>>>>>> *file: D:\AllPkg\edk2\OvmfPkg\Sec\SecMain.c >>>>>>> *Line number: 867 >>>>>>> *The variable name [*Ds] does not follow the rules >>>>>> >>>>>> I don't understand this report; with this series applied, line 867 = is >>>>>> the following: >>>>>> >>>>>> 867 UINT8 *Src, *Dst; >>>>>> >>>>>> coming from patch v14 37/46, "OvmfPkg/Sec: Add #VC exception handli= ng >>>>>> for Sec phase". >>>>>> >>>>>> Perhaps ECC is confused because we have two declarations on the sam= e >>>>>> line; I'm not sure. >>>>>> >>>>>> In general I too like to keep declarations on separate lines, but >>>>>> there are exceptions. Declaring *Src and *Dst on the same line is >>>>>> pretty reasonable, and trivial. >>>>>> >>>>>> I think it's time for us to put the ECC exception list to use, unde= r >>>>>> OvmfPkg. >>>>>> >>>>>> Tom, please try to reproduce this error locally, and then modify >>>>>> "OvmfPkg/OvmfPkg.ci.yaml", adding an exception under the EccCheck b= lock. >>>>>> >>>>>> ... Oh wait, we haven't even merged Shenglei's series for that! The >>>>>> latest posting is: >>>>>> >>>>>> [edk2-devel] [PATCH v9 00/16] >>>>>> Add a plugin to check Ecc issues for edk2 on open ci >>>>>> >>>>>> and it's still under review. >>>>>> >>>>>> Indeed, Liming says above that he used the "standalone EccCheck". >>>>>> >>>>>> OK. In this case, I state that some of these ECC reports for OvmfPk= g >>>>>> should be waived. >>>>>> >>>>>> I'm in general of the opinion that ECC is too strict, and package >>>>>> maintainers should have power to selectively enforce or override EC= C >>>>>> reports. That's why I agreed to the ECC CI plugin in the first plac= e >>>>>> -- becase we have exception lists that are controllable under speci= fic >>>>>> package directories (in the *.ci.yaml files). >>>>>> >>>>>> In the present case, running the standalone ECC check has worse >>>>>> granularity than the upcoming ECC CI plugin. So, because I can't as= k >>>>>> Tom to add a new exception to "OvmfPkg/OvmfPkg.ci.yaml" right now >>>>>> (before we merge this series), I'm replacing that with a waiver in = this email. >>>>>> >>>>>> Of course, if maintainers of other packages want the ECC reports >>>>>> issued under their packages addressed, that's their call. I can onl= y >>>>>> waive ECC reports under OvmfPkg. >>>>>> >>>>>>> EFI coding style error >>>>>>> *Error code: 9003 >>>>>>> *The first line of text in a comment block should be a brief des= cription of the element being documented and the brief >>>> description must end with a period. >>>>>>> *file: D:\AllPkg\edk2\OvmfPkg\Library\BaseMemEncryptSevLib\MemEn= cryptSevLibInternal.c >>>>>>> *Line number: 72 >>>>>>> *Comment description should end with period '.' >>>>>> >>>>>> Disagree; sometimes people use well-formed full English sentences, >>>>>> sometimes only thought fragments. >>>>>> >>>>>>> EFI coding style error >>>>>>> *Error code: 3002 >>>>>>> *Non-Boolean comparisons should use a compare operator (=3D=3D, = !=3D, >, < >=3D, <=3D) >>>>>>> *file: D:\AllPkg\edk2\OvmfPkg\Library\VmgExitLib\VmgExitVcHandle= r.c >>>>>>> *Line number: 1280 >>>>>>> *Predicate Expression: OpCount >>>>>> >>>>>> On the other hand, this report *is* worth fixing. >>>>>> >>>>>> 1280 while (OpCount) { >>>>>> >>>>>> I've myself asked Tom for observing this rule at several locations, >>>>>> but we both missed the one reported above. It comes from patch #14 >>>>>> ("OvmfPkg/VmgExitLib: Support string IO for IOIO_PROT NAE events"). >>>>>> >>>>>>> EFI coding style error >>>>>>> *Error code: 5007 >>>>>>> *There should be no initialization of a variable as part of its = declaration >>>>>>> *file: D:\AllPkg\edk2\OvmfPkg\Library\VmgExitLib\VmgExitVcHandle= r.c >>>>>>> *Line number: 845 >>>>>>> *Variable Name: Data >>>>>> >>>>>> Agree this should be fixed; I should have noticed it during review.= My >>>>>> apologies. >>>>>> >>>>>> 845 UINT8 *Data =3D (UINT8 *) Ghcb->SharedBuffer; >>>>>> >>>>>> Comes from patch #17 ("OvmfPkg/VmgExitLib: Add support for NPF NAE >>>>>> events (MMIO)"). >>>>>> >>>>>>> EFI coding style error >>>>>>> *Error code: 5007 >>>>>>> *There should be no initialization of a variable as part of its = declaration >>>>>>> *file: D:\AllPkg\edk2\OvmfPkg\Library\VmgExitLib\VmgExitVcHandle= r.c >>>>>>> *Line number: 849 >>>>>>> *Variable Name: Data >>>>>> >>>>>> Yes, this should be fixed too: >>>>>> >>>>>> 849 UINT16 *Data =3D (UINT16 *) Ghcb->SharedBuffer; >>>>>> >>>>>> Again, I should have noticed it; I'm sorry. >>>>>> >>>>>> It comes from patch #17 ("OvmfPkg/VmgExitLib: Add support for NPF N= AE >>>>>> events (MMIO)") again. >>>>>> >>>>>> Tom: given that a new iteration seems justified after all (I'm real= ly >>>>>> sorry about that -- with Shenglei's series hopefully soon merged, s= uch >>>>>> issues will be reported earlier!), if you'd like, you could address >>>>>> the two ECC reports too that I said were too strict and should be i= gnored. >>>>>> (That means breaking the "*Dst" declaration to a new line, and addi= ng >>>>>> a period to the comment.) Up to you; I certainly don't insist on th= ose. >>>>> >>>>> No worries, easy enough to do if I'm already updating the others. >>>>> >>>>> I would like to be able to run this tool on my system, though, to se= e if anything else gets flagged after fixing the above mentioned >>>> issues. But the tool fails for me as I described in another post. The= reason I say that is, for example, the issue about the comment >>>> description ending with a period was actually in multiple spots of th= e commit, even though the tool only flagged one. I'd hate to >>>> think I've fixed everything only to have the tool find more issues af= ter I've submitted another series, all because I couldn't run the >>>> tool. >>>>> >>>>> Thanks, >>>>> Tom >>>>> >>>>> [Liming] ECC checker will be merged in open CI to check the patch an= d report the issues. Then, you don't need to run it in your >> local >>>> machine. I use this patch set as test case to verify ECC checker func= tionality. And, it reports those issues. I think they are valuable >> for >>>> this patch set, so I raise them. Sorry for the late notice. >>>>> >>>>> Thanks >>>>> Liming >>>>>> >>>>>> Thanks! >>>>>> Laszlo >>>>>> >>>>>>> >>>>>>> Thanks >>>>>>> Liming >>>>>>> -----Original Message----- >>>>>>> From: Laszlo Ersek >>>>>>> Sent: 2020=E5=B9=B48=E6=9C=8811=E6=97=A5 3:36 >>>>>>> To: devel@edk2.groups.io; thomas.lendacky@amd.com >>>>>>> Cc: Brijesh Singh ; Ard Biesheuvel >>>>>>> ; Dong, Eric ; Justen= , >>>>>>> Jordan L ; Gao, Liming >>>>>>> ; Kinney, Michael D >>>>>>> ; Ni, Ray ; Andrew F= ish >>>>>>> ; Anthony Perard ; You= , >>>>>>> Benjamin ; Bi, Dandan ; >>>>>>> Dong, Guo ; Wu, Hao A ; Wa= ng, >>>>>>> Jian J ; Julien Grall ; Lei= f >>>>>>> Lindholm ; Ma, Maurice >>>>>>> Subject: Re: [edk2-devel] [PATCH v14 00/46] SEV-ES guest support >>>>>>> >>>>>>> On 08/07/20 21:38, Lendacky, Thomas wrote: >>>>>>>> From: Tom Lendacky >>>>>>>> >>>>>>>> This patch series provides support for running EDK2/OVMF under SE= V-ES. >>>>>>>> >>>>>>>> Secure Encrypted Virtualization - Encrypted State (SEV-ES) expand= s >>>>>>>> on the SEV support to protect the guest register state from the >>>>>>>> hypervisor. See >>>>>>>> "AMD64 Architecture Programmer's Manual Volume 2: System >>>>>>>> Programming", section "15.35 Encrypted State (SEV-ES)" [1]. >>>>>>>> >>>>>>>> In order to allow a hypervisor to perform functions on behalf of = a >>>>>>>> guest, there is architectural support for notifying a guest's >>>>>>>> operating system when certain types of VMEXITs are about to occur= . >>>>>>>> This allows the guest to selectively share information with the >>>>>>>> hypervisor to satisfy the requested function. The notification is >>>>>>>> performed using a new exception, the VMM Communication exception >>>>>>>> (#VC). The information is shared through the Guest-Hypervisor Com= munication Block (GHCB) using the VMGEXIT instruction. >>>>>>>> The GHCB format and the protocol for using it is documented in >>>>>>>> "SEV-ES Guest-Hypervisor Communication Block Standardization" [2]= . >>>>>>>> >>>>>>>> The main areas of the EDK2 code that are updated to support SEV-E= S >>>>>>>> are around the exception handling support and the AP boot support= . >>>>>>>> >>>>>>>> Exception support is required starting in Sec, continuing through >>>>>>>> Pei and into Dxe in order to handle #VC exceptions that are gener= ated. >>>>>>>> Each AP requires it's own GHCB page as well as a page to hold val= ues >>>>>>>> specific to that AP. >>>>>>>> >>>>>>>> AP booting poses some interesting challenges. The INIT-SIPI-SIPI >>>>>>>> sequence is typically used to boot the APs. However, the hypervis= or >>>>>>>> is not allowed to update the guest registers. The GHCB document [= 2] >>>>>>>> talks about how SMP booting under SEV-ES is performed. >>>>>>>> >>>>>>>> Since the GHCB page must be a shared (unencrypted) page, the >>>>>>>> processor must be running in long mode in order for the guest and >>>>>>>> hypervisor to communicate with each other. As a result, SEV-ES is >>>>>>>> only supported under the X64 architecture. >>>>>>>> >>>>>>>> This series adds a new library requirement for the VmgExitLib >>>>>>>> library against the UefiCpuPkg CpuExceptionHandlerLib library and >>>>>>>> the UefiCpuPkg MpInitLib library. The edk2-platforms repo require= s >>>>>>>> updates/patches to add the new library requirement. To accomodate >>>>>>>> that, this series could be split between: >>>>>>>> >>>>>>>> patch number 10: >>>>>>>> UefiPayloadPkg: Prepare UefiPayloadPkg to use the VmgExitLib >>>>>>>> library >>>>>>>> >>>>>>>> and patch number 11: >>>>>>>> UefiCpuPkg/CpuExceptionHandler: Add base support for the #VC >>>>>>>> exception >>>>>>>> >>>>>>>> The updates to edk2-platforms can be applied at the split. >>>>>>>> >>>>>>>> [1] >>>>>>>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F= %2Fww >>>>>>>> w.amd.com%2Fsystem%2Ffiles%2FTechDocs%2F24593.pdf&data=3D02%7= C01%7 >>>>>>>> Cthomas.lendacky%40amd.com%7C9c0fb2b16af248090fdb08d83e05c821%7C3= dd8 >>>>>>>> 961fe4884e608e11a82d994e183d%7C0%7C0%7C637327542159394484&sda= ta=3D >>>>>>>> zusPC5xFZWfLxt6T5Psxb1%2Fw4mrVWnkrrECkuKSsxLk%3D&reserved=3D0 >>>>>>>> [2] >>>>>>>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F= %2Fde >>>>>>>> veloper.amd.com%2Fwp-content%2Fresources%2F56421.pdf&data=3D0= 2%7C0 >>>>>>>> 1%7Cthomas.lendacky%40amd.com%7C9c0fb2b16af248090fdb08d83e05c821%= 7C3 >>>>>>>> dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637327542159394484&= sda >>>>>>>> ta=3Dyk7o8h1lajI449tZfXGbPumnkvRjswKp1FRmSUdewh4%3D&reserved= =3D0 >>>>>>>> >>>>>>>> --- >>>>>>>> >>>>>>>> These patches are based on commit: >>>>>>>> 9565ab67c209 ("ShellPkg: smbiosview - Change some type 17 field >>>>>>>> values >>>>>>>> format") >>>>>>>> >>>>>>>> A version of the tree can be found at: >>>>>>>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F= %2Fgi >>>>>>>> thub.com%2FAMDESE%2Fovmf%2Ftree%2Fsev-es-v22&data=3D02%7C01%7= Cthom >>>>>>>> as.lendacky%40amd.com%7C9c0fb2b16af248090fdb08d83e05c821%7C3dd896= 1fe >>>>>>>> 4884e608e11a82d994e183d%7C0%7C0%7C637327542159404476&sdata=3D= 6b9Eq >>>>>>>> EVAy1VK38oMSuAPJhOourJpPXUnRIgMcSWRMQc%3D&reserved=3D0 >>>>>>>> >>>>>>>> Cc: Andrew Fish >>>>>>>> Cc: Anthony Perard >>>>>>>> Cc: Ard Biesheuvel >>>>>>>> Cc: Benjamin You >>>>>>>> Cc: Dandan Bi >>>>>>>> Cc: Eric Dong >>>>>>>> Cc: Guo Dong >>>>>>>> Cc: Hao A Wu >>>>>>>> Cc: Jian J Wang >>>>>>>> Cc: Jordan Justen >>>>>>>> Cc: Julien Grall >>>>>>>> Cc: Laszlo Ersek >>>>>>>> Cc: Leif Lindholm >>>>>>>> Cc: Liming Gao >>>>>>>> Cc: Maurice Ma >>>>>>>> Cc: Michael D Kinney >>>>>>>> Cc: Ray Ni >>>>>>>> >>>>>>>> Changes since v13: >>>>>>>> - Fixup the AsmRelocateApLoop() call site so IA32 successfully bo= ots APs. >>>>>>>> Do this by appending the three new parameters without altering = the >>>>>>>> original parameter passing order. >>>>>>>> - Minor updates to description text and help text to expand the G= HCB >>>>>>>> acronym. >>>>>>>> >>>>>>>> Changes since v12: >>>>>>>> - Change IA32 VMGEXIT .nasm file to issue an int 3. Depending on = the >>>>>>>> version of NASM, the "BITS 64" trick to get NASM to recognize t= he >>>>>>>> VMMCALL instruction (VMGEXIT is a REP VMMCALL) caused an error.= Since >>>>>>>> SEV-ES is X64 only, VMGEXIT should never be called in IA32. >>>>>>>> >>>>>>>> Changes since v11: >>>>>>>> - Make the XGETBV and VMGEXIT .nasm files buildable for all envir= onments >>>>>>>> and remove the updates that add these instructions to GccInline= .c >>>>>>>> >>>>>>>> Changes since v10: >>>>>>>> - Fix conflicts around GccInline.c file after moving to latest >>>>>>>> commit >>>>>>>> - Fix conflicts with OVMF PCD values after moving to latest commi= t >>>>>>>> >>>>>>>> Changes since v9: >>>>>>>> - Fixed bit field declarations in the GHCB structure to use UINT3= 2 >>>>>>>> and not UINT64. >>>>>>>> - Fixed a warning produced by VS2019 in the instruction parsing c= ode >>>>>>>> by expliciting casting a bit shift to an INT64. >>>>>>>> - Sorted section entries in the OVMF VmgExitLib INF file. >>>>>>>> - Moved the new Maintainers.txt entry so entries remain sorted. >>>>>>>> - Documentation style fixes for return values. >>>>>>>> - Miscellaneous code style fixes. >>>>>>>> >>>>>>>> Changes since v8: >>>>>>>> - Move IOIO exit info definitions into Ghcb.h file >>>>>>>> - Add a macro for calculating IO instruction bytes >>>>>>>> (IOIO_DATA_BYTES) >>>>>>>> - Exception handler support for debug registers >>>>>>>> - Moved the DRx register saving changes into the UefiCpuPkg pat= ch for >>>>>>>> base #VC support in CpuExceptionHandlerLib. >>>>>>>> - OvmfPkg VmgExitLib >>>>>>>> - Remove the .uni file >>>>>>>> - Update .inf file: >>>>>>>> - New file location for VmgExitVcHandler.c >>>>>>>> - Add additional Packages and LibraryClasses >>>>>>>> - Introduce a header file to hold the #VC instruction parsing rel= ated >>>>>>>> definitions >>>>>>>> - Include additional #defines for instruction decoding to repla= ce >>>>>>>> hard coded values for things like instruction prefixes and es= capes. >>>>>>>> - Replace hardcoded CPUID values with values from existing header= files >>>>>>>> and use existing CR4 definition for accessing CR4 data. >>>>>>>> - Change the type used for obtaining data addresses in the instru= ction >>>>>>>> parsing >>>>>>>> - Switch from INTN to UINT64 and use compiler conversions and c= asting >>>>>>>> to perform the correct address calculation >>>>>>>> - ResetVector code: >>>>>>>> - Revert some inadvertant changes introduced in v7 for reservin= g the >>>>>>>> SEV-ES work area memory and for checking the status of SEV-ES= . >>>>>>>> - AP Booting >>>>>>>> - Provide support for non-broadcast INIT-SIPI-SIPI AP boot (min= imize >>>>>>>> code duplication by creating a function to set the AP jump ta= ble >>>>>>>> vector address). >>>>>>>> - Fix file/directory entry in maintainer changes. >>>>>>>> - Various coding style fixes >>>>>>>> - Commenting, if statements, etc. >>>>>>>> - Various documentation style fixes >>>>>>>> >>>>>>>> Changes since v7: >>>>>>>> - Reserve the SEV-ES workarea when S3 is enabled >>>>>>>> - Fix warnings issued by the Visual Studio compiler >>>>>>>> - Create a NULL VmgExitLib instance that is used for VMGEXIT >>>>>>>> related operations as well as #VC handling. Then create the ful= l >>>>>>>> VmgExitLib support only in OvmfPkg - where it will be used. Thi= s >>>>>>>> removes a bunch of implementation code from platforms that will >>>>>>>> not be using the functionality. >>>>>>>> - Remove single use interfaces from the VmgExitLib (VmgMmioWrite >>>>>>>> and VmgSetApJumpTable) >>>>>>>> >>>>>>>> Changes since v6: >>>>>>>> - Add function comments to all functions, including local functio= ns >>>>>>>> - Add function parameter direction to all functions (in/out) >>>>>>>> - Add support for MMIO MOVZX/MOVSX instructions >>>>>>>> - Ensure the per-CPU variable page remains encrypted >>>>>>>> - Coding-style fixes as identified by Ecc >>>>>>>> >>>>>>>> Changes since v5: >>>>>>>> - Remove extraneous VmgExitLib usage >>>>>>>> - Miscellaneous changes to address feedback (coding style, etc.) >>>>>>>> >>>>>>>> Changes since v4: >>>>>>>> - Move the SEV-ES protocol negotiation out of the SEC exception h= andler >>>>>>>> and into the SecMain.c file. As a result: >>>>>>>> - Move the SecGhcb related PCDs out of UefiCpuPkg and into Ovmf= Pkg >>>>>>>> - Combine SecAMDSevVcHandler.c and PeiDxeAMDSevVcHandler.c into= a >>>>>>>> single AMDSevVcHandler.c >>>>>>>> - Consolidate VmgExitLib usage into common LibraryClasses section= s >>>>>>>> - Add documentation comments to the VmgExitLib functions >>>>>>>> >>>>>>>> Changes since v3: >>>>>>>> - Remove the need for the MP library finalization routine. The AP >>>>>>>> jump table address will be held by the hypervisor rather than >>>>>>>> communicated via the GHCB MSR. This removes some fragility arou= nd >>>>>>>> the UEFI to OS transition. >>>>>>>> - Rename the SEV-ES RIP reset area to SEV-ES workarea and use it = to >>>>>>>> communicate the SEV-ES status, so that SEC CPU exception handli= ng is >>>>>>>> only established for an SEV-ES guest. >>>>>>>> - Fix SMM build breakageAdd around QemuFlashPtrWrite(). >>>>>>>> - Fix SMM build breakage by adding VC exception support the SMM C= PU >>>>>>>> exception handling. >>>>>>>> - Add memory fencing around the invocation of AsmVmgExit(). >>>>>>>> - Clarify comments around the SEV-ES AP reset RIP values and usag= e. >>>>>>>> - Move some PCD definitions from MdeModulePkg to UefiCpuPkg. >>>>>>>> - Remove the 16-bit code selector definition from MdeModulePkg >>>>>>>> >>>>>>>> Changes since v2: >>>>>>>> - Added a way to locate the SEV-ES fixed AP RIP address for start= ing >>>>>>>> AP's to avoid updating the actual flash image (build time locat= ion >>>>>>>> that is identified with a GUID value). >>>>>>>> - Create a VmgExit library to replace static inline functions. >>>>>>>> - Move some PCDs to the appropriate packages >>>>>>>> - Add support for writing to QEMU flash under SEV-ES >>>>>>>> - Add additional MMIO opcode support >>>>>>>> - Cleaned up the GHCB MSR CPUID protocol support >>>>>>>> >>>>>>>> Changes since v1: >>>>>>>> - Patches reworked to be more specific to the component/area bein= g updated >>>>>>>> and order of definition/usage >>>>>>>> - Created a library for VMGEXIT-related functions to replace use = of inline >>>>>>>> functions >>>>>>>> - Allocation method for GDT changed from AllocatePool to >>>>>>>> AllocatePages >>>>>>>> - Early caching only enabled for SEV-ES guests >>>>>>>> - Ensure AP loop mode set to halt loop mode for SEV-ES guests >>>>>>>> - Reserved SEC GHCB-related memory areas when S3 is enabled >>>>>>>> >>>>>>>> Tom Lendacky (46): >>>>>>>> MdeModulePkg: Create PCDs to be used in support of SEV-ES >>>>>>>> UefiCpuPkg: Create PCD to be used in support of SEV-ES >>>>>>>> MdePkg: Add the MSR definition for the GHCB register >>>>>>>> MdePkg: Add a structure definition for the GHCB >>>>>>>> MdeModulePkg/DxeIplPeim: Support GHCB pages when creating page = tables >>>>>>>> MdePkg/BaseLib: Add support for the XGETBV instruction >>>>>>>> MdePkg/BaseLib: Add support for the VMGEXIT instruction >>>>>>>> UefiCpuPkg: Implement library support for VMGEXIT >>>>>>>> OvmfPkg: Prepare OvmfPkg to use the VmgExitLib library >>>>>>>> UefiPayloadPkg: Prepare UefiPayloadPkg to use the VmgExitLib li= brary >>>>>>>> UefiCpuPkg/CpuExceptionHandler: Add base support for the #VC ex= ception >>>>>>>> OvmfPkg/VmgExitLib: Implement library support for VmgExitLib in= OVMF >>>>>>>> OvmfPkg/VmgExitLib: Add support for IOIO_PROT NAE events >>>>>>>> OvmfPkg/VmgExitLib: Support string IO for IOIO_PROT NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for CPUID NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for MSR_PROT NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for NPF NAE events (MMIO) >>>>>>>> OvmfPkg/VmgExitLib: Add support for WBINVD NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for RDTSC NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for RDPMC NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for INVD NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for VMMCALL NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for RDTSCP NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for MONITOR/MONITORX NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for MWAIT/MWAITX NAE events >>>>>>>> OvmfPkg/VmgExitLib: Add support for DR7 Read/Write NAE events >>>>>>>> OvmfPkg/MemEncryptSevLib: Add an SEV-ES guest indicator functio= n >>>>>>>> OvmfPkg: Add support to perform SEV-ES initialization >>>>>>>> OvmfPkg: Create a GHCB page for use during Sec phase >>>>>>>> OvmfPkg/PlatformPei: Reserve GHCB-related areas if S3 is suppor= ted >>>>>>>> OvmfPkg: Create GHCB pages for use during Pei and Dxe phase >>>>>>>> OvmfPkg/PlatformPei: Move early GDT into ram when SEV-ES is ena= bled >>>>>>>> UefiCpuPkg: Create an SEV-ES workarea PCD >>>>>>>> OvmfPkg: Reserve a page in memory for the SEV-ES usage >>>>>>>> OvmfPkg/PlatformPei: Reserve SEV-ES work area if S3 is supporte= d >>>>>>>> OvmfPkg/ResetVector: Add support for a 32-bit SEV check >>>>>>>> OvmfPkg/Sec: Add #VC exception handling for Sec phase >>>>>>>> OvmfPkg/Sec: Enable cache early to speed up booting >>>>>>>> OvmfPkg/QemuFlashFvbServicesRuntimeDxe: Bypass flash detection = with >>>>>>>> SEV-ES >>>>>>>> UefiCpuPkg: Add a 16-bit protected mode code segment descriptor >>>>>>>> UefiCpuPkg/MpInitLib: Add CPU MP data flag to indicate if SEV-E= S is >>>>>>>> enabled >>>>>>>> UefiCpuPkg: Allow AP booting under SEV-ES >>>>>>>> OvmfPkg: Use the SEV-ES work area for the SEV-ES AP reset vecto= r >>>>>>>> OvmfPkg: Move the GHCB allocations into reserved memory >>>>>>>> UefiCpuPkg/MpInitLib: Prepare SEV-ES guest APs for OS use >>>>>>>> Maintainers.txt: Add reviewers for the OvmfPkg SEV-related file= s >>>>>>>> >>>>>>>> MdeModulePkg/MdeModulePkg.dec | 9 + >>>>>>>> OvmfPkg/OvmfPkg.dec | 9 + >>>>>>>> UefiCpuPkg/UefiCpuPkg.dec | 17 + >>>>>>>> OvmfPkg/OvmfPkgIa32.dsc | 6 + >>>>>>>> OvmfPkg/OvmfPkgIa32X64.dsc | 6 + >>>>>>>> OvmfPkg/OvmfPkgX64.dsc | 6 + >>>>>>>> OvmfPkg/OvmfXen.dsc | 1 + >>>>>>>> UefiCpuPkg/UefiCpuPkg.dsc | 2 + >>>>>>>> UefiPayloadPkg/UefiPayloadPkgIa32.dsc | 2 + >>>>>>>> UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc | 2 + >>>>>>>> OvmfPkg/OvmfPkgX64.fdf | 9 + >>>>>>>> MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf | 2 + >>>>>>>> MdePkg/Library/BaseLib/BaseLib.inf | 4 + >>>>>>>> OvmfPkg/Library/VmgExitLib/VmgExitLib.inf | 36 + >>>>>>>> OvmfPkg/PlatformPei/PlatformPei.inf | 9 + >>>>>>>> .../FvbServicesRuntimeDxe.inf | 2 + >>>>>>>> OvmfPkg/ResetVector/ResetVector.inf | 8 + >>>>>>>> OvmfPkg/Sec/SecMain.inf | 4 + >>>>>>>> .../DxeCpuExceptionHandlerLib.inf | 1 + >>>>>>>> .../PeiCpuExceptionHandlerLib.inf | 1 + >>>>>>>> .../SecPeiCpuExceptionHandlerLib.inf | 1 + >>>>>>>> .../SmmCpuExceptionHandlerLib.inf | 1 + >>>>>>>> .../Xcode5SecPeiCpuExceptionHandlerLib.inf | 1 + >>>>>>>> UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 4 + >>>>>>>> UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 4 + >>>>>>>> .../Library/VmgExitLibNull/VmgExitLibNull.inf | 27 + >>>>>>>> .../Core/DxeIplPeim/X64/VirtualMemory.h | 12 +- >>>>>>>> MdePkg/Include/Library/BaseLib.h | 31 + >>>>>>>> MdePkg/Include/Register/Amd/Fam17Msr.h | 46 + >>>>>>>> MdePkg/Include/Register/Amd/Ghcb.h | 166 ++ >>>>>>>> .../IndustryStandard/InstructionParsing.h | 83 + >>>>>>>> OvmfPkg/Include/Library/MemEncryptSevLib.h | 12 + >>>>>>>> .../QemuFlash.h | 13 + >>>>>>>> UefiCpuPkg/CpuDxe/CpuGdt.h | 4 +- >>>>>>>> UefiCpuPkg/Include/Library/VmgExitLib.h | 103 + >>>>>>>> UefiCpuPkg/Library/MpInitLib/MpLib.h | 68 +- >>>>>>>> .../Core/DxeIplPeim/Ia32/DxeLoadFunc.c | 4 +- >>>>>>>> .../Core/DxeIplPeim/X64/DxeLoadFunc.c | 11 +- >>>>>>>> .../Core/DxeIplPeim/X64/VirtualMemory.c | 57 +- >>>>>>>> .../MemEncryptSevLibInternal.c | 75 +- >>>>>>>> OvmfPkg/Library/VmgExitLib/VmgExitLib.c | 159 ++ >>>>>>>> OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c | 1716 +++++++++++= ++++++ >>>>>>>> OvmfPkg/PlatformPei/AmdSev.c | 89 + >>>>>>>> OvmfPkg/PlatformPei/MemDetect.c | 43 + >>>>>>>> .../QemuFlash.c | 23 +- >>>>>>>> .../QemuFlashDxe.c | 40 + >>>>>>>> .../QemuFlashSmm.c | 16 + >>>>>>>> OvmfPkg/Sec/SecMain.c | 188 +- >>>>>>>> UefiCpuPkg/CpuDxe/CpuGdt.c | 8 +- >>>>>>>> .../CpuExceptionCommon.c | 10 +- >>>>>>>> .../PeiDxeSmmCpuException.c | 20 +- >>>>>>>> .../SecPeiCpuException.c | 19 + >>>>>>>> UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 120 +- >>>>>>>> UefiCpuPkg/Library/MpInitLib/MpLib.c | 337 +++- >>>>>>>> UefiCpuPkg/Library/MpInitLib/PeiMpLib.c | 19 + >>>>>>>> .../Library/VmgExitLibNull/VmgExitLibNull.c | 121 ++ >>>>>>>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c | 2 +- >>>>>>>> Maintainers.txt | 10 + >>>>>>>> MdeModulePkg/MdeModulePkg.uni | 8 + >>>>>>>> MdePkg/Library/BaseLib/Ia32/VmgExit.nasm | 38 + >>>>>>>> MdePkg/Library/BaseLib/Ia32/XGetBv.nasm | 31 + >>>>>>>> MdePkg/Library/BaseLib/X64/VmgExit.nasm | 32 + >>>>>>>> MdePkg/Library/BaseLib/X64/XGetBv.nasm | 34 + >>>>>>>> OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm | 100 + >>>>>>>> OvmfPkg/ResetVector/Ia32/PageTables64.asm | 351 +++- >>>>>>>> OvmfPkg/ResetVector/ResetVector.nasmb | 20 + >>>>>>>> .../X64/ExceptionHandlerAsm.nasm | 17 + >>>>>>>> .../X64/Xcode5ExceptionHandlerAsm.nasm | 17 + >>>>>>>> UefiCpuPkg/Library/MpInitLib/Ia32/MpEqu.inc | 2 +- >>>>>>>> .../Library/MpInitLib/Ia32/MpFuncs.nasm | 20 +- >>>>>>>> UefiCpuPkg/Library/MpInitLib/X64/MpEqu.inc | 4 +- >>>>>>>> UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm | 369 +++- >>>>>>>> .../Library/VmgExitLibNull/VmgExitLibNull.uni | 15 + >>>>>>>> .../ResetVector/Vtf0/Ia16/Real16ToFlat32.asm | 9 + >>>>>>>> UefiCpuPkg/UefiCpuPkg.uni | 11 + >>>>>>>> 75 files changed, 4777 insertions(+), 100 deletions(-) create m= ode >>>>>>>> 100644 OvmfPkg/Library/VmgExitLib/VmgExitLib.inf >>>>>>>> create mode 100644 >>>>>>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf >>>>>>>> create mode 100644 MdePkg/Include/Register/Amd/Ghcb.h >>>>>>>> create mode 100644 >>>>>>>> OvmfPkg/Include/IndustryStandard/InstructionParsing.h >>>>>>>> create mode 100644 UefiCpuPkg/Include/Library/VmgExitLib.h >>>>>>>> create mode 100644 OvmfPkg/Library/VmgExitLib/VmgExitLib.c >>>>>>>> create mode 100644 OvmfPkg/Library/VmgExitLib/VmgExitVcHandler.c >>>>>>>> create mode 100644 >>>>>>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.c >>>>>>>> create mode 100644 MdePkg/Library/BaseLib/Ia32/VmgExit.nasm >>>>>>>> create mode 100644 MdePkg/Library/BaseLib/Ia32/XGetBv.nasm >>>>>>>> create mode 100644 MdePkg/Library/BaseLib/X64/VmgExit.nasm >>>>>>>> create mode 100644 MdePkg/Library/BaseLib/X64/XGetBv.nasm >>>>>>>> create mode 100644 OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm >>>>>>>> create mode 100644 >>>>>>>> UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.uni >>>>>>>> >>>>>>> >>>>>>> For all patches except #10 ("UefiPayloadPkg: Prepare UefiPayloadPk= g to use the VmgExitLib library") and #46 ("Maintainers.txt: >>>> Add reviewers for the OvmfPkg SEV-related files"): >>>>>>> >>>>>>> Regression-tested-by: Laszlo Ersek >>>>>>> >>>>>>> Thanks >>>>>>> Laszlo >>>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >> >>=20 >=20