From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.77]) by mx.groups.io with SMTP id smtpd.web11.349.1585773750945916860 for ; Wed, 01 Apr 2020 13:42:31 -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=07M1PTIQ; spf=none, err=SPF record not found (domain: amd.com, ip: 40.107.92.77, mailfrom: thomas.lendacky@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JrcY/Z0+EgLU65z+hxqjAmEZ4Xmevd8tvXplONmeZCq8XgclH/vtDVkGTzCC0F80JVVgXdCWiS55r6WmZr/21EMK33J0GrSV/a3eDNd2BNS/H4/mhUzrqru3ejKeiHAMu2osE2YnrYoDvhnrYstPZGD/7l1acV6C+HDsHffZkM0kcvjhzgGiQEtQbdJnzOFBz9byAPh98lj+3fqWH6GGYzZ/CBYslq4ZsAarMSGRZsPZFrRJgjGesuf2LXtl6GbseBbFAlniJY/t0lCS2eJciYdwydL4NujQtuK0mtrBt0o0sv52KSq1hENQIFpfMJEIDUxBCrh0QhzkOnVHfWW7IQ== 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=Ao4o0c74Ih79fSz7alfbBxwwck+0KHR/utPxd6PCve4=; b=EvN1Rv3V9l+J29ajuzOMiFTLt5LHNLlf9/hhY6AGTz9wEN1OTFkfhMu5BWet6u8lHLMsp/DuFRs+0SynNd6k6/D3Jr6+eH8owhzOxR8FYOJ9inbwPXRiqLtC05R+nz7mfTh7NrDyMcLpNTygRj4wochIDBfD2gn2JjfQHdENAtK2Jiytzfx6JOrAS4jmdF50/sSU/jHcXYpry1MvRfTz2zWijlJrpVqNq3AqenLpgMHFK0ofUGNGa2bkHI4whwhB5P+KKX5MpBz9O50OpLOYUrLC6aLHyQRYC1IDYdpGnIzheolMdho/CQhoH/Aocr92X9CHTZgwvm4UwFbbPHeICg== 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=Ao4o0c74Ih79fSz7alfbBxwwck+0KHR/utPxd6PCve4=; b=07M1PTIQi2N+5QFK31od3BvJVBtzGIiSv3lVTa51sPD3spAFgnR0HXCJRvBjrMr8dBSiOYSjQIXvy4F7yRIJoTfj5MzqCsqU3+tkkoyQoPePI0Jo2ZkCMcdpv8nVSluVdGLLmooLalH99bu9zmzYk+DDuT5sovXlgH2jMRwbVRU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:15e::26) by DM6PR12MB3290.namprd12.prod.outlook.com (2603:10b6:5:189::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19; Wed, 1 Apr 2020 20:42:27 +0000 Received: from DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::f0f9:a88f:f840:2733]) by DM6PR12MB3163.namprd12.prod.outlook.com ([fe80::f0f9:a88f:f840:2733%7]) with mapi id 15.20.2856.019; Wed, 1 Apr 2020 20:42:27 +0000 Subject: Re: [edk2-devel] [PATCH v6 00/42] SEV-ES guest support To: "Dong, Eric" , "devel@edk2.groups.io" CC: "Justen, Jordan L" , Laszlo Ersek , Ard Biesheuvel , "Kinney, Michael D" , "Gao, Liming" , "Ni, Ray" , Brijesh Singh , "You, Benjamin" , "Bi, Dandan" , "Dong, Guo" , "Wu, Hao A" , "Wang, Jian J" , "Ma, Maurice" References: From: "Lendacky, Thomas" Message-ID: <08f76458-2df2-5e08-3731-8a32dc6454e0@amd.com> Date: Wed, 1 Apr 2020 15:42:25 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 In-Reply-To: X-ClientProxiedBy: SN4PR0201CA0031.namprd02.prod.outlook.com (2603:10b6:803:2e::17) To DM6PR12MB3163.namprd12.prod.outlook.com (2603:10b6:5:15e::26) Return-Path: thomas.lendacky@amd.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from office-linux.texastahm.com (67.79.209.213) by SN4PR0201CA0031.namprd02.prod.outlook.com (2603:10b6:803:2e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.15 via Frontend Transport; Wed, 1 Apr 2020 20:42:26 +0000 X-Originating-IP: [67.79.209.213] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 08fbb9d9-7912-49d3-3d1a-08d7d67d30c8 X-MS-TrafficTypeDiagnostic: DM6PR12MB3290:|DM6PR12MB3290: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-Forefront-PRVS: 03607C04F0 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB3163.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(10009020)(4636009)(346002)(136003)(39860400002)(396003)(366004)(376002)(4326008)(19627235002)(316002)(66946007)(956004)(66556008)(66476007)(478600001)(8936002)(45080400002)(186003)(31686004)(2906002)(52116002)(53546011)(966005)(6512007)(30864003)(36756003)(26005)(110136005)(5660300002)(81166006)(54906003)(7416002)(6486002)(86362001)(8676002)(2616005)(31696002)(6506007)(16526019)(81156014);DIR:OUT;SFP:1101; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bbyxBhOUMNrE6T+Ro9nqp2VXe3wFl3HLvWSwBTOfjJm6Fj91jhuYv3+6ovJ79/+iPC+H1UM31t6xIOFkj3Dico3pTK/aIlY22P7OrLnX5dnPhAAmvKbX18if1T4vXE9D4T+PIAhznm3IKtmpQK0j2mLGAXt3Krds+VTdO/Coow3pIsQRiJBR3NLbmv7UTExsWiiUXE5xd1oau7grOnPxxOUhfeRoxRjgGV3h8ShE/oS4GBZMgy5CoCEUn+EIONGyO5OpT3ApAOalm4DAahKFrf1tboGRSLfbxpniaPBtmGsVeCUP+hjWvHtSYS3UcMHPUhaIj0uLMxnQS3BIPipl7XEC/eCbowFXT03WVJDO+vPwEksTXYAueUQTYZJ+wJhorK1CL5LuMD28ihpY+uPN6fsID0G5InIXPbQCMAnaiBafKM/g6T7ZOF4ID5zQfjygaNQXZCpUOSprACrnqZb0tvlKO6AExxVArPkHwJjYIV2IQdpp/vChzGEChvYRbNQVHyT7ey+0t+JAvF1HO8IvXQ== X-MS-Exchange-AntiSpam-MessageData: AhnXZJKJbIr50nOQiFgmPOd76rlKqRui9c7yAM+Wcew1rCg/+4e5dU2Mv/yRF6m/vLMjSVNsjS2Ut50TToton7BMDsBpJPzAfDapeyIhxLw85ouEzov0ciReiHRqEtbsopBtlx+4VuI6mV5iK4Y0Cg== X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08fbb9d9-7912-49d3-3d1a-08d7d67d30c8 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2020 20:42:27.6668 (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: GzzAbo0GG/tqyT36hNXYpADgK3gUA6aMKvUmYOE0PiekAb+k1SQKRiFgxuyL6DxCnDedX1VW/wtMCXUydl2rVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3290 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 3/30/20 7:47 PM, Dong, Eric wrote: > Hi Tom, >=20 > Sorry for late response. It=E2=80=99s a huge patch, please give me two m= ore weeks=20 > to detail review them. >=20 > I have rough go through these patches and have some basic comments for= =20 > them now: >=20 > 1.It=E2=80=99s better to spit patch if changes files not in same package= . Like=20 > patch 1/42. Ok, will do. >=20 > 2.All functions need to have comments for them. Miss comments in patch= =20 > 10/42 and others. Just external functions or both external and internal (STATIC) functions, = too? Thanks, Tom >=20 > Please update patches to fix above basic checks first. >=20 > Thanks, >=20 > Eric >=20 > *From:*devel@edk2.groups.io [mailto:devel@edk2.groups.io] *On Behalf Of= =20 > *Lendacky, Thomas > *Sent:* Tuesday, March 31, 2020 12:54 AM > *To:* devel@edk2.groups.io > *Cc:* Justen, Jordan L ; Laszlo Ersek=20 > ; Ard Biesheuvel ; Kinney,= = =20 > Michael D ; Gao, Liming=20 > ; Dong, Eric ; Ni, Ray=20 > ; Brijesh Singh ; You, Benjamin= = =20 > ; Bi, Dandan ; Dong, Guo=20 > ; Wu, Hao A ; Wang, Jian J=20 > ; Ma, Maurice > *Subject:* Re: [edk2-devel] [PATCH v6 00/42] SEV-ES guest support >=20 > I've=C2=A0gotten=C2=A0some=C2=A0nice=C2=A0feedback=C2=A0from=C2=A0Laszlo= ,=C2=A0especially=C2=A0on=C2=A0the=C2=A0OvmfPkg=C2=A0side > of=C2=A0this=C2=A0patchset,=C2=A0but=C2=A0haven't=C2=A0seen=C2=A0much=C2= = =A0response=C2=A0from=C2=A0the=C2=A0other > maintainers.=C2=A0Is=C2=A0there=C2=A0any=C2=A0feedback=C2=A0on=C2=A0the= =C2=A0MdePkg,=C2=A0MdeModulePkg=C2=A0and > UefiCpuPkg=C2=A0changes=C2=A0that=C2=A0needs=C2=A0to=C2=A0be=C2=A0addres= sed=C2=A0in=C2=A0order=C2=A0to=C2=A0merge=C2=A0this? >=20 > I=C2=A0do=C2=A0have=C2=A0some=C2=A0minor=C2=A0changes=C2=A0on=C2=A0ensur= ing=C2=A0the=C2=A0per-CPU=C2=A0variable=C2=A0page=C2=A0stays > encrypted,=C2=A0but=C2=A0not=C2=A0much=C2=A0beyond=C2=A0that.=C2=A0Those= = =C2=A0changes=C2=A0can=C2=A0be=C2=A0submitted > afterwards=C2=A0or=C2=A0as=C2=A0a=C2=A0new=C2=A0version=C2=A0before=C2= =A0inclusion. >=20 > Thanks, > Tom >=20 > On=C2=A03/24/20=C2=A012:40=C2=A0PM,=C2=A0Tom=C2=A0Lendacky=C2=A0wrote: >>=C2=A0This=C2=A0patch=C2=A0series=C2=A0provides=C2=A0support=C2=A0for=C2= = =A0running=C2=A0EDK2/OVMF=C2=A0under=C2=A0SEV-ES. >>=20 >>=C2=A0Secure=C2=A0Encrypted=C2=A0Virtualization=C2=A0-=C2=A0Encrypted=C2= = =A0State=C2=A0(SEV-ES)=C2=A0expands=C2=A0on=C2=A0the >>=C2=A0SEV=C2=A0support=C2=A0to=C2=A0protect=C2=A0the=C2=A0guest=C2=A0reg= ister=C2=A0state=C2=A0from=C2=A0the=C2=A0hypervisor.=C2=A0See >>=C2=A0"AMD64=C2=A0Architecture=C2=A0Programmer's=C2=A0Manual=C2=A0Volume= = =C2=A02:=C2=A0System=C2=A0Programming", >>=C2=A0section=C2=A0"15.35=C2=A0Encrypted=C2=A0State=C2=A0(SEV-ES)"=C2=A0= [1]. >>=20 >>=C2=A0In=C2=A0order=C2=A0to=C2=A0allow=C2=A0a=C2=A0hypervisor=C2=A0to=C2= = =A0perform=C2=A0functions=C2=A0on=C2=A0behalf=C2=A0of=C2=A0a=C2=A0guest, >>=C2=A0there=C2=A0is=C2=A0architectural=C2=A0support=C2=A0for=C2=A0notify= ing=C2=A0a=C2=A0guest's=C2=A0operating=C2=A0system >>=C2=A0when=C2=A0certain=C2=A0types=C2=A0of=C2=A0VMEXITs=C2=A0are=C2=A0ab= out=C2=A0to=C2=A0occur.=C2=A0This=C2=A0allows=C2=A0the=C2=A0guest=C2=A0to >>=C2=A0selectively=C2=A0share=C2=A0information=C2=A0with=C2=A0the=C2=A0hy= pervisor=C2=A0to=C2=A0satisfy=C2=A0the=C2=A0requested >>=C2=A0function.=C2=A0The=C2=A0notification=C2=A0is=C2=A0performed=C2=A0u= sing=C2=A0a=C2=A0new=C2=A0exception,=C2=A0the=C2=A0VMM >>=C2=A0Communication=C2=A0exception=C2=A0(#VC).=C2=A0The=C2=A0information= = =C2=A0is=C2=A0shared=C2=A0through=C2=A0the >>=C2=A0Guest-Hypervisor=C2=A0Communication=C2=A0Block=C2=A0(GHCB)=C2=A0us= ing=C2=A0the=C2=A0VMGEXIT=C2=A0instruction. >>=C2=A0The=C2=A0GHCB=C2=A0format=C2=A0and=C2=A0the=C2=A0protocol=C2=A0for= = =C2=A0using=C2=A0it=C2=A0is=C2=A0documented=C2=A0in=C2=A0"SEV-ES >>=C2=A0Guest-Hypervisor=C2=A0Communication=C2=A0Block=C2=A0Standardizatio= n"=C2=A0[2]. >>=20 >>=C2=A0The=C2=A0main=C2=A0areas=C2=A0of=C2=A0the=C2=A0EDK2=C2=A0code=C2= =A0that=C2=A0are=C2=A0updated=C2=A0to=C2=A0support=C2=A0SEV-ES=C2=A0are >>=C2=A0around=C2=A0the=C2=A0exception=C2=A0handling=C2=A0support=C2=A0and= = =C2=A0the=C2=A0AP=C2=A0boot=C2=A0support. >>=20 >>=C2=A0Exception=C2=A0support=C2=A0is=C2=A0required=C2=A0starting=C2=A0in= = =C2=A0Sec,=C2=A0continuing=C2=A0through=C2=A0Pei >>=C2=A0and=C2=A0into=C2=A0Dxe=C2=A0in=C2=A0order=C2=A0to=C2=A0handle=C2= =A0#VC=C2=A0exceptions=C2=A0that=C2=A0are=C2=A0generated.=C2=A0=C2=A0Each >>=C2=A0AP=C2=A0requires=C2=A0it's=C2=A0own=C2=A0GHCB=C2=A0page=C2=A0as=C2= = =A0well=C2=A0as=C2=A0a=C2=A0page=C2=A0to=C2=A0hold=C2=A0values=C2=A0specif= ic >>=C2=A0to=C2=A0that=C2=A0AP. >>=20 >>=C2=A0AP=C2=A0booting=C2=A0poses=C2=A0some=C2=A0interesting=C2=A0challen= ges.=C2=A0The=C2=A0INIT-SIPI-SIPI=C2=A0sequence >>=C2=A0is=C2=A0typically=C2=A0used=C2=A0to=C2=A0boot=C2=A0the=C2=A0APs.= =C2=A0However,=C2=A0the=C2=A0hypervisor=C2=A0is=C2=A0not=C2=A0allowed >>=C2=A0to=C2=A0update=C2=A0the=C2=A0guest=C2=A0registers.=C2=A0The=C2=A0G= HCB=C2=A0document=C2=A0[2]=C2=A0talks=C2=A0about=C2=A0how=C2=A0SMP >>=C2=A0booting=C2=A0under=C2=A0SEV-ES=C2=A0is=C2=A0performed. >>=20 >>=C2=A0Since=C2=A0the=C2=A0GHCB=C2=A0page=C2=A0must=C2=A0be=C2=A0a=C2=A0s= hared=C2=A0(unencrypted)=C2=A0page,=C2=A0the=C2=A0processor >>=C2=A0must=C2=A0be=C2=A0running=C2=A0in=C2=A0long=C2=A0mode=C2=A0in=C2= =A0order=C2=A0for=C2=A0the=C2=A0guest=C2=A0and=C2=A0hypervisor=C2=A0to >>=C2=A0communicate=C2=A0with=C2=A0each=C2=A0other.=C2=A0As=C2=A0a=C2=A0re= sult,=C2=A0SEV-ES=C2=A0is=C2=A0only=C2=A0supported=C2=A0under >>=C2=A0the=C2=A0X64=C2=A0architecture. >>=20 >>=C2=A0[1] https://www.amd.com/system/files/TechDocs/24593.pdf=20 > >>=C2=A0[2] https://developer.amd.com/wp-content/resources/56421.pdf=20 > >>=20 >>=C2=A0--- >>=20 >>=C2=A0These=C2=A0patches=C2=A0are=C2=A0based=C2=A0on=C2=A0commit: >>=C2=A02f524a745e23=C2=A0("BaseTools:Fix=C2=A0build=C2=A0tools=C2=A0print= = =C2=A0traceback=C2=A0info=C2=A0issue") >>=20 >>=C2=A0Proper=C2=A0execution=C2=A0of=C2=A0SEV-ES=C2=A0relies=C2=A0on=C2= =A0Bugzilla=C2=A02340=C2=A0being=C2=A0fixed. >>=20 >>=C2=A0A=C2=A0version=C2=A0of=C2=A0the=C2=A0tree=C2=A0(with=C2=A0an=C2=A0= extra=C2=A0patch=C2=A0to=C2=A0workaround=C2=A0Bugzilla=C2=A02340)=C2=A0can >>=C2=A0be=C2=A0found=C2=A0at: >> https://github.com/AMDESE/ovmf/tree/sev-es-v13=20 > >>=20 >>=C2=A0Cc:=C2=A0Ard=C2=A0Biesheuvel=C2=A0> >>=C2=A0Cc:=C2=A0Benjamin=C2=A0You=C2=A0> >>=C2=A0Cc:=C2=A0Dandan=C2=A0Bi=C2=A0> >>=C2=A0Cc:=C2=A0Eric=C2=A0Dong=C2=A0> >>=C2=A0Cc:=C2=A0Guo=C2=A0Dong=C2=A0> >>=C2=A0Cc:=C2=A0Hao=C2=A0A=C2=A0Wu=C2=A0> >>=C2=A0Cc:=C2=A0Jian=C2=A0J=C2=A0Wang=C2=A0> >>=C2=A0Cc:=C2=A0Jordan=C2=A0Justen=C2=A0> >>=C2=A0Cc:=C2=A0Laszlo=C2=A0Ersek=C2=A0> >>=C2=A0Cc:=C2=A0Liming=C2=A0Gao=C2=A0> >>=C2=A0Cc:=C2=A0Maurice=C2=A0Ma=C2=A0> >>=C2=A0Cc:=C2=A0Michael=C2=A0D=C2=A0Kinney=C2=A0> >>=C2=A0Cc:=C2=A0Ray=C2=A0Ni=C2=A0> >>=20 >>=C2=A0Changes=C2=A0since=C2=A0v5: >>=C2=A0-=C2=A0Remove=C2=A0extraneous=C2=A0VmgExitLib=C2=A0usage >>=C2=A0-=C2=A0Miscellaneous=C2=A0changes=C2=A0to=C2=A0address=C2=A0feedba= ck=C2=A0(coding=C2=A0style,=C2=A0etc.) >>=20 >>=C2=A0Changes=C2=A0since=C2=A0v4: >>=C2=A0-=C2=A0Move=C2=A0the=C2=A0SEV-ES=C2=A0protocol=C2=A0negotiation=C2= = =A0out=C2=A0of=C2=A0the=C2=A0SEC=C2=A0exception=C2=A0handler >>=C2=A0=C2=A0=C2=A0=C2=A0and=C2=A0into=C2=A0the=C2=A0SecMain.c=C2=A0file.= = =C2=A0As=C2=A0a=C2=A0result: >>=C2=A0=C2=A0=C2=A0=C2=A0-=C2=A0Move=C2=A0the=C2=A0SecGhcb=C2=A0related= =C2=A0PCDs=C2=A0out=C2=A0of=C2=A0UefiCpuPkg=C2=A0and=C2=A0into=C2=A0OvmfPk= g >>=C2=A0=C2=A0=C2=A0=C2=A0-=C2=A0Combine=C2=A0SecAMDSevVcHandler.c=C2=A0an= d=C2=A0PeiDxeAMDSevVcHandler.c=C2=A0into=C2=A0a >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0single=C2=A0AMDSevVcHandler.c >>=C2=A0-=C2=A0Consolidate=C2=A0VmgExitLib=C2=A0usage=C2=A0into=C2=A0commo= n=C2=A0LibraryClasses=C2=A0sections >>=C2=A0-=C2=A0Add=C2=A0documentation=C2=A0comments=C2=A0to=C2=A0the=C2=A0= VmgExitLib=C2=A0functions >>=20 >>=C2=A0Changes=C2=A0since=C2=A0v3: >>=C2=A0-=C2=A0Remove=C2=A0the=C2=A0need=C2=A0for=C2=A0the=C2=A0MP=C2=A0li= brary=C2=A0finalization=C2=A0routine.=C2=A0The=C2=A0AP >>=C2=A0=C2=A0=C2=A0=C2=A0jump=C2=A0table=C2=A0address=C2=A0will=C2=A0be= =C2=A0held=C2=A0by=C2=A0the=C2=A0hypervisor=C2=A0rather=C2=A0than >>=C2=A0=C2=A0=C2=A0=C2=A0communicated=C2=A0via=C2=A0the=C2=A0GHCB=C2=A0MS= R.=C2=A0This=C2=A0removes=C2=A0some=C2=A0fragility=C2=A0around >>=C2=A0=C2=A0=C2=A0=C2=A0the=C2=A0UEFI=C2=A0to=C2=A0OS=C2=A0transition. >>=C2=A0-=C2=A0Rename=C2=A0the=C2=A0SEV-ES=C2=A0RIP=C2=A0reset=C2=A0area= =C2=A0to=C2=A0SEV-ES=C2=A0workarea=C2=A0and=C2=A0use=C2=A0it=C2=A0to >>=C2=A0=C2=A0=C2=A0=C2=A0communicate=C2=A0the=C2=A0SEV-ES=C2=A0status,=C2= = =A0so=C2=A0that=C2=A0SEC=C2=A0CPU=C2=A0exception=C2=A0handling=C2=A0is >>=C2=A0=C2=A0=C2=A0=C2=A0only=C2=A0established=C2=A0for=C2=A0an=C2=A0SEV-= ES=C2=A0guest. >>=C2=A0-=C2=A0Fix=C2=A0SMM=C2=A0build=C2=A0breakageAdd=C2=A0around=C2=A0Q= emuFlashPtrWrite(). >>=C2=A0-=C2=A0Fix=C2=A0SMM=C2=A0build=C2=A0breakage=C2=A0by=C2=A0adding= =C2=A0VC=C2=A0exception=C2=A0support=C2=A0the=C2=A0SMM=C2=A0CPU >>=C2=A0=C2=A0=C2=A0=C2=A0exception=C2=A0handling. >>=C2=A0-=C2=A0Add=C2=A0memory=C2=A0fencing=C2=A0around=C2=A0the=C2=A0invo= cation=C2=A0of=C2=A0AsmVmgExit(). >>=C2=A0-=C2=A0Clarify=C2=A0comments=C2=A0around=C2=A0the=C2=A0SEV-ES=C2= =A0AP=C2=A0reset=C2=A0RIP=C2=A0values=C2=A0and=C2=A0usage. >>=C2=A0-=C2=A0Move=C2=A0some=C2=A0PCD=C2=A0definitions=C2=A0from=C2=A0Mde= ModulePkg=C2=A0to=C2=A0UefiCpuPkg. >>=C2=A0-=C2=A0Remove=C2=A0the=C2=A016-bit=C2=A0code=C2=A0selector=C2=A0de= finition=C2=A0from=C2=A0MdeModulePkg >>=20 >>=C2=A0Changes=C2=A0since=C2=A0v2: >>=C2=A0-=C2=A0Added=C2=A0a=C2=A0way=C2=A0to=C2=A0locate=C2=A0the=C2=A0SEV= -ES=C2=A0fixed=C2=A0AP=C2=A0RIP=C2=A0address=C2=A0for=C2=A0starting >>=C2=A0=C2=A0=C2=A0=C2=A0AP's=C2=A0to=C2=A0avoid=C2=A0updating=C2=A0the= =C2=A0actual=C2=A0flash=C2=A0image=C2=A0(build=C2=A0time=C2=A0location >>=C2=A0=C2=A0=C2=A0=C2=A0that=C2=A0is=C2=A0identified=C2=A0with=C2=A0a=C2= = =A0GUID=C2=A0value). >>=C2=A0-=C2=A0Create=C2=A0a=C2=A0VmgExit=C2=A0library=C2=A0to=C2=A0replac= e=C2=A0static=C2=A0inline=C2=A0functions. >>=C2=A0-=C2=A0Move=C2=A0some=C2=A0PCDs=C2=A0to=C2=A0the=C2=A0appropriate= =C2=A0packages >>=C2=A0-=C2=A0Add=C2=A0support=C2=A0for=C2=A0writing=C2=A0to=C2=A0QEMU=C2= = =A0flash=C2=A0under=C2=A0SEV-ES >>=C2=A0-=C2=A0Add=C2=A0additional=C2=A0MMIO=C2=A0opcode=C2=A0support >>=C2=A0-=C2=A0Cleaned=C2=A0up=C2=A0the=C2=A0GHCB=C2=A0MSR=C2=A0CPUID=C2= =A0protocol=C2=A0support >>=20 >>=C2=A0Changes=C2=A0since=C2=A0v1: >>=C2=A0-=C2=A0Patches=C2=A0reworked=C2=A0to=C2=A0be=C2=A0more=C2=A0specif= ic=C2=A0to=C2=A0the=C2=A0component/area=C2=A0being=C2=A0updated >>=C2=A0=C2=A0=C2=A0=C2=A0and=C2=A0order=C2=A0of=C2=A0definition/usage >>=C2=A0-=C2=A0Created=C2=A0a=C2=A0library=C2=A0for=C2=A0VMGEXIT-related= =C2=A0functions=C2=A0to=C2=A0replace=C2=A0use=C2=A0of=C2=A0inline >>=C2=A0=C2=A0=C2=A0=C2=A0functions >>=C2=A0-=C2=A0Allocation=C2=A0method=C2=A0for=C2=A0GDT=C2=A0changed=C2=A0= from=C2=A0AllocatePool=C2=A0to=C2=A0AllocatePages >>=C2=A0-=C2=A0Early=C2=A0caching=C2=A0only=C2=A0enabled=C2=A0for=C2=A0SEV= -ES=C2=A0guests >>=C2=A0-=C2=A0Ensure=C2=A0AP=C2=A0loop=C2=A0mode=C2=A0set=C2=A0to=C2=A0ha= lt=C2=A0loop=C2=A0mode=C2=A0for=C2=A0SEV-ES=C2=A0guests >>=C2=A0-=C2=A0Reserved=C2=A0SEC=C2=A0GHCB-related=C2=A0memory=C2=A0areas= =C2=A0when=C2=A0S3=C2=A0is=C2=A0enabled >>=20 >>=C2=A0Tom=C2=A0Lendacky=C2=A0(42): >>=C2=A0=C2=A0=C2=A0=C2=A0MdePkg:=C2=A0Create=C2=A0PCDs=C2=A0to=C2=A0be=C2= = =A0used=C2=A0in=C2=A0support=C2=A0of=C2=A0SEV-ES >>=C2=A0=C2=A0=C2=A0=C2=A0MdePkg:=C2=A0Add=C2=A0the=C2=A0MSR=C2=A0definiti= on=C2=A0for=C2=A0the=C2=A0GHCB=C2=A0register >>=C2=A0=C2=A0=C2=A0=C2=A0MdePkg:=C2=A0Add=C2=A0a=C2=A0structure=C2=A0defi= nition=C2=A0for=C2=A0the=C2=A0GHCB >>=C2=A0=C2=A0=C2=A0=C2=A0MdeModulePkg/DxeIplPeim:=C2=A0Support=C2=A0GHCB= =C2=A0pages=C2=A0when=C2=A0creating=C2=A0page=C2=A0tables >>=C2=A0=C2=A0=C2=A0=C2=A0MdePkg/BaseLib:=C2=A0Add=C2=A0support=C2=A0for= =C2=A0the=C2=A0XGETBV=C2=A0instruction >>=C2=A0=C2=A0=C2=A0=C2=A0MdePkg/BaseLib:=C2=A0Add=C2=A0support=C2=A0for= =C2=A0the=C2=A0VMGEXIT=C2=A0instruction >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg:=C2=A0Implement=C2=A0library=C2=A0sup= port=C2=A0for=C2=A0VMGEXIT >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Prepare=C2=A0OvmfPkg=C2=A0to=C2=A0= use=C2=A0the=C2=A0VmgExitLib=C2=A0library >>=C2=A0=C2=A0=C2=A0=C2=A0UefiPayloadPkg:=C2=A0Prepare=C2=A0UefiPayloadPkg= = =C2=A0to=C2=A0use=C2=A0the=C2=A0VmgExitLib=C2=A0library >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0ba= se=C2=A0support=C2=A0for=C2=A0the=C2=A0#VC=C2=A0exception >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0IOIO_PROT=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Support=C2= =A0string=C2=A0IO=C2=A0for=C2=A0IOIO_PROT=C2=A0NAE >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0CPUID=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0MSR_PROT=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0NPF=C2=A0NAE=C2=A0events=C2=A0(MMIO) >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0WBINVD=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0RDTSC=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0RDPMC=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0INVD=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0VMMCALL=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0RDTSCP=C2=A0NAE=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0MONITOR/MONITORX=C2=A0NAE >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0MWAIT/MWAITX=C2=A0NAE >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuExceptionHandler:=C2=A0Add=C2=A0su= pport=C2=A0for=C2=A0DR7=C2=A0Read/Write=C2=A0NAE >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0events >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/MemEncryptSevLib:=C2=A0Add=C2=A0an=C2=A0= SEV-ES=C2=A0guest=C2=A0indicator=C2=A0function >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Add=C2=A0support=C2=A0to=C2=A0perf= orm=C2=A0SEV-ES=C2=A0initialization >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Create=C2=A0a=C2=A0GHCB=C2=A0page= =C2=A0for=C2=A0use=C2=A0during=C2=A0Sec=C2=A0phase >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/PlatformPei:=C2=A0Reserve=C2=A0GHCB-rela= ted=C2=A0areas=C2=A0if=C2=A0S3=C2=A0is=C2=A0supported >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Create=C2=A0GHCB=C2=A0pages=C2=A0f= or=C2=A0use=C2=A0during=C2=A0Pei=C2=A0and=C2=A0Dxe=C2=A0phase >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/PlatformPei:=C2=A0Move=C2=A0early=C2=A0G= DT=C2=A0into=C2=A0ram=C2=A0when=C2=A0SEV-ES=C2=A0is=C2=A0enabled >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg:=C2=A0Create=C2=A0an=C2=A0SEV-ES=C2= =A0workarea=C2=A0PCD >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Reserve=C2=A0a=C2=A0page=C2=A0in= =C2=A0memory=C2=A0for=C2=A0the=C2=A0SEV-ES=C2=A0usage >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/ResetVector:=C2=A0Add=C2=A0support=C2=A0= for=C2=A0a=C2=A032-bit=C2=A0SEV=C2=A0check >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/Sec:=C2=A0Add=C2=A0#VC=C2=A0exception=C2= = =A0handling=C2=A0for=C2=A0Sec=C2=A0phase >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/Sec:=C2=A0Enable=C2=A0cache=C2=A0early= =C2=A0to=C2=A0speed=C2=A0up=C2=A0booting >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg/QemuFlashFvbServicesRuntimeDxe:=C2=A0Byp= ass=C2=A0flash=C2=A0detection=C2=A0with >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0SEV-ES=C2=A0is=C2=A0enabled >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg:=C2=A0Add=C2=A0a=C2=A016-bit=C2=A0pro= tected=C2=A0mode=C2=A0code=C2=A0segment=C2=A0descriptor >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/MpInitLib:=C2=A0Add=C2=A0CPU=C2=A0MP= =C2=A0data=C2=A0flag=C2=A0to=C2=A0indicate=C2=A0if=C2=A0SEV-ES=C2=A0is >>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0enabled >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg:=C2=A0Allow=C2=A0AP=C2=A0booting=C2= =A0under=C2=A0SEV-ES >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Use=C2=A0the=C2=A0SEV-ES=C2=A0work= = =C2=A0area=C2=A0for=C2=A0the=C2=A0SEV-ES=C2=A0AP=C2=A0reset=C2=A0vector >>=C2=A0=C2=A0=C2=A0=C2=A0OvmfPkg:=C2=A0Move=C2=A0the=C2=A0GHCB=C2=A0alloc= ations=C2=A0into=C2=A0reserved=C2=A0memory >>=C2=A0=C2=A0=C2=A0=C2=A0UefiCpuPkg/MpInitLib:=C2=A0Prepare=C2=A0SEV-ES= =C2=A0guest=C2=A0APs=C2=A0for=C2=A0OS=C2=A0use >>=20 >>=C2=A0=C2=A0=C2=A0MdeModulePkg/MdeModulePkg.dec=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0|=C2=A0=C2=A0=C2=A0=C2=A09=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfPkg.dec=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2= =A0=C2=A09=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/UefiCpuPkg.dec=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A017=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfPkgIa32.dsc=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A06=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfPkgIa32X64.dsc=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A06=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfPkgX64.dsc=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A06=C2=A0= + >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfXen.dsc=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2= =A0=C2=A01=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/UefiCpuPkg.dsc=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiPayloadPkg/UefiPayloadPkgIa32.dsc=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiPayloadPkg/UefiPayloadPkgIa32X64.dsc=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/OvmfPkgX64.fdf=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A09=C2=A0= + >>=C2=A0=C2=A0=C2=A0MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/BaseLib.inf=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0= =C2=A04=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/PlatformPei/PlatformPei.inf=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A07= = =C2=A0+ >>=C2=A0=C2=A0=C2=A0.../FvbServicesRuntimeDxe.inf=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/ResetVector/ResetVector.inf=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A08= = =C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/Sec/SecMain.inf=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../DxeCpuExceptionHandlerLib.inf=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2= =A0=C2=A05=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../PeiCpuExceptionHandlerLib.inf=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2= =A0=C2=A05=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../SecPeiCpuExceptionHandlerLib.inf=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A05=C2=A0= + >>=C2=A0=C2=A0=C2=A0.../SmmCpuExceptionHandlerLib.inf=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2= =A0=C2=A05=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf=C2=A0|= =C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf=C2=A0|= =C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/VmgExitLib/VmgExitLib.inf=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A033=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../Core/DxeIplPeim/X64/VirtualMemory.h=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A012=C2=A0+- >>=C2=A0=C2=A0=C2=A0MdePkg/Include/Library/BaseLib.h=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2= =A0=C2=A031=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Include/Register/Amd/Fam17Msr.h=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A042=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Include/Register/Amd/Ghcb.h=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0136=C2= =A0++ >>=C2=A0=C2=A0=C2=A0OvmfPkg/Include/Library/MemEncryptSevLib.h=C2=A0=C2=A0= = =C2=A0=C2=A0|=C2=A0=C2=A0=C2=A012=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../QemuFlash.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A0=C2=A06=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuDxe/CpuGdt.h=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Include/Library/VmgExitLib.h=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0111=C2=A0++ >>=C2=A0=C2=A0=C2=A0.../CpuExceptionHandlerLib/AMDSevVcCommon.h=C2=A0=C2= =A0=C2=A0|=C2=A0=C2=A0=C2=A026=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../CpuExceptionCommon.h=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/MpLib.h=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A068=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../Core/DxeIplPeim/Ia32/DxeLoadFunc.c=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../Core/DxeIplPeim/X64/DxeLoadFunc.c=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A011=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../Core/DxeIplPeim/X64/VirtualMemory.c=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A049=C2=A0+- >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/Ia32/GccInline.c=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A045=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/X64/GccInline.c=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A047=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../MemEncryptSevLibInternal.c=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|= =C2=A0=C2=A0=C2=A075=C2=A0+- >>=C2=A0=C2=A0=C2=A0OvmfPkg/PlatformPei/AmdSev.c=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0|=C2=A0=C2=A0=C2=A082=C2=A0++ >>=C2=A0=C2=A0=C2=A0OvmfPkg/PlatformPei/MemDetect.c=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2= =A0=C2=A0=C2=A023=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../QemuFlash.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A023=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../QemuFlashDxe.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0= =C2=A015=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../QemuFlashSmm.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0= =C2=A0=C2=A09=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/Sec/SecMain.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0160=C2=A0++- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/CpuDxe/CpuGdt.c=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A08=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../CpuExceptionHandlerLib/AMDSevVcHandler.c=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A029=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../CpuExceptionCommon.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../Ia32/ArchAMDSevVcHandler.c=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|= =C2=A0=C2=A0=C2=A024=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../PeiDxeSmmCpuException.c=C2=A0=C2=A0=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A016=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../SecPeiCpuException.c=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A016=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../X64/ArchAMDSevVcHandler.c=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0|=C2=A01237=C2=A0+++++++++++++++++ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/DxeMpLib.c=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0114=C2=A0+- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/MpLib.c=C2=A0=C2=A0=C2=A0= = =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0257=C2=A0+++- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/PeiMpLib.c=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A019=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/VmgExitLib/VmgExitLib.c=C2=A0=C2=A0= = =C2=A0=C2=A0|=C2=A0=C2=A0249=C2=A0++++ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmFuncsArch.c=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+- >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/Ia32/VmgExit.nasm=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A037=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/Ia32/XGetBv.nasm=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A031=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/X64/VmgExit.nasm=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A032=C2=A0+ >>=C2=A0=C2=A0=C2=A0MdePkg/Library/BaseLib/X64/XGetBv.nasm=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A034=C2=A0+ >>=C2=A0=C2=A0=C2=A0OvmfPkg/ResetVector/Ia16/ResetVectorVtf0.asm=C2=A0=C2= =A0|=C2=A0=C2=A0100=C2=A0++ >>=C2=A0=C2=A0=C2=A0OvmfPkg/ResetVector/Ia32/PageTables64.asm=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0351=C2=A0++++- >>=C2=A0=C2=A0=C2=A0OvmfPkg/ResetVector/ResetVector.nasmb=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A020=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../X64/ExceptionHandlerAsm.nasm=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2= =A0=C2=A017=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/Ia32/MpEqu.inc=C2=A0=C2= =A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A02=C2=A0+- >>=C2=A0=C2=A0=C2=A0.../Library/MpInitLib/Ia32/MpFuncs.nasm=C2=A0=C2=A0=C2= = =A0=C2=A0=C2=A0=C2=A0=C2=A0|=C2=A0=C2=A0=C2=A015=C2=A0+ >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/X64/MpEqu.inc=C2=A0=C2=A0= = =C2=A0=C2=A0|=C2=A0=C2=A0=C2=A0=C2=A04=C2=A0+- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm=C2=A0|= =C2=A0=C2=A0370=C2=A0++++- >>=C2=A0=C2=A0=C2=A0UefiCpuPkg/Library/VmgExitLib/VmgExitLib.uni=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A015=C2=A0+ >>=C2=A0=C2=A0=C2=A0.../ResetVector/Vtf0/Ia16/Real16ToFlat32.asm=C2=A0=C2= =A0|=C2=A0=C2=A0=C2=A0=C2=A09=C2=A0+ >>=C2=A0=C2=A0=C2=A073=C2=A0files=C2=A0changed,=C2=A04061=C2=A0insertions(= +),=C2=A099=C2=A0deletions(-) >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/V= mgExitLib/VmgExitLib.inf >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0MdePkg/Include/Regis= ter/Amd/Ghcb.h >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Include/L= ibrary/VmgExitLib.h >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/C= puExceptionHandlerLib/AMDSevVcCommon.h >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/C= puExceptionHandlerLib/AMDSevVcHandler.c >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/C= puExceptionHandlerLib/Ia32/ArchAMDSevVcHandler.c >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/C= puExceptionHandlerLib/X64/ArchAMDSevVcHandler.c >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/V= mgExitLib/VmgExitLib.c >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0MdePkg/Library/BaseL= ib/Ia32/VmgExit.nasm >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0MdePkg/Library/BaseL= ib/Ia32/XGetBv.nasm >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0MdePkg/Library/BaseL= ib/X64/VmgExit.nasm >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0MdePkg/Library/BaseL= ib/X64/XGetBv.nasm >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0OvmfPkg/ResetVector/= Ia16/ResetVectorVtf0.asm >>=C2=A0=C2=A0=C2=A0create=C2=A0mode=C2=A0100644=C2=A0UefiCpuPkg/Library/V= mgExitLib/VmgExitLib.uni >>=20 >=20 >=20 >=20