+ Liming

Since it is an issue https://bugzilla.tianocore.org/show_bug.cgi?id=3835 in 
RC1, I assume we need merge it soon.

Please double confirm.

Thank you
Yao, Jiewen


> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Yao, Jiewen
> Sent: Wednesday, February 16, 2022 10:52 AM
> To: Brijesh Singh <brijesh.si...@amd.com>; devel@edk2.groups.io
> Cc: James Bottomley <j...@linux.ibm.com>; Xu, Min M <min.m...@intel.com>;
> Tom Lendacky <thomas.lenda...@amd.com>; Justen, Jordan L
> <jordan.l.jus...@intel.com>; Ard Biesheuvel <ardb+tianoc...@kernel.org>;
> Aktas, Erdem <erdemak...@google.com>; Michael Roth
> <michael.r...@amd.com>; Gerd Hoffmann <kra...@redhat.com>; Aaron
> Young <aaron.yo...@oracle.com>; Dann Frazier
> <dann.fraz...@canonical.com>; Michael Roth <michael.r...@amd.com>
> Subject: Re: [edk2-devel] [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the
> VmgExitLibNull
> 
> Reviewed-by: Jiewen Yao <jiewen....@intel.com>
> 
> > -----Original Message-----
> > From: Brijesh Singh <brijesh.si...@amd.com>
> > Sent: Tuesday, February 15, 2022 11:17 PM
> > To: devel@edk2.groups.io
> > Cc: James Bottomley <j...@linux.ibm.com>; Xu, Min M
> <min.m...@intel.com>;
> > Yao, Jiewen <jiewen....@intel.com>; Tom Lendacky
> > <thomas.lenda...@amd.com>; Justen, Jordan L <jordan.l.jus...@intel.com>;
> > Ard Biesheuvel <ardb+tianoc...@kernel.org>; Aktas, Erdem
> > <erdemak...@google.com>; Michael Roth <michael.r...@amd.com>; Gerd
> > Hoffmann <kra...@redhat.com>; Brijesh Singh <brijesh.si...@amd.com>;
> > Aaron Young <aaron.yo...@oracle.com>; Dann Frazier
> > <dann.fraz...@canonical.com>; Michael Roth <michael.r...@amd.com>
> > Subject: [PATCH 1/1] OvmfPkg/FvbServicesSmm: use the VmgExitLibNull
> >
> > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3835
> >
> > The commit ade62c18f4742301bbef474ac10518bde5972fba caused a boot
> > failure
> > when OVMF is build with SECURE_BOOT/SMM enabled.
> >
> > This happen because the above commit extended the
> > BaseMemEncryptSevLib.inf
> > to include VmgExitLib. The FvbServicesSmm uses the functions provided
> > by the MemEncryptSevLib to clear the memory encryption mask from the
> > page table. It created a dependency, as shown below
> >
> > OvmfPkg/FvbServicesSmm.inf
> >  ---> MemEncryptSevLib                   class
> >  ---> "OvmfPkg/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf"  instance
> >  ---> VmgExitLib
> >  ---> "OvmfPkg/VmgExitLib"    instance
> >  ---> LocalApicLib                       class
> >  ---> UefiCpuPkg/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf    instance
> >  ---> TimerLib                           class
> >  ---> "OvmfPkg/AcpiTimerLib/DxeAcpiTimerLib.inf"              instance
> >  ---> PciLib                             class
> >  ---> "OvmfPkg/DxePciLibI440FxQ35/DxePciLibI440FxQ35.inf"     instance
> >
> > The LocalApicLib provides a constructor, execution of the constructor
> > causes an exception. The SEV-ES and SEV-SNP do not support the SMM, so
> > skip including the VmgExitLib chain. Use the module override to use the
> > VmgExitLibNull to avoid the inclusion of unneeded LocalApicLib dependency
> > chain in FvbServicesSmm. We ran similar issue for AmdSevDxe driver,
> > see commit 19914edc5a0202cc7830f819ffac7e7b2368166a
> >
> > After the patch, the dependency look like this:
> >
> > OvmfPkg/FvbServicesSmm.inf
> >  ---> MemEncryptSevLib                   class
> >  ---> "OvmfPkg/BaseMemEncryptSevLib/DxeMemEncryptSevLib.inf"  instance
> >  ---> VmgExitLib
> >  ---> "UefiCpuPkg/Library/VmgExitLibNull"    instance
> >
> > Fixes: ade62c18f4742301bbef474ac10518bde5972fba
> > Reported-by: Aaron Young <aaron.yo...@oracle.com>
> > Cc: Dann Frazier <dann.fraz...@canonical.com>
> > Cc: Michael Roth <michael.r...@amd.com>
> > Cc: James Bottomley <j...@linux.ibm.com>
> > Cc: Min Xu <min.m...@intel.com>
> > Cc: Jiewen Yao <jiewen....@intel.com>
> > Cc: Tom Lendacky <thomas.lenda...@amd.com>
> > Cc: Jordan Justen <jordan.l.jus...@intel.com>
> > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
> > Cc: Erdem Aktas <erdemak...@google.com>
> > Cc: Gerd Hoffmann <kra...@redhat.com>
> > Signed-off-by: Brijesh Singh <brijesh.si...@amd.com>
> > ---
> >  OvmfPkg/CloudHv/CloudHvX64.dsc | 5 ++++-
> >  OvmfPkg/OvmfPkgIa32.dsc        | 5 ++++-
> >  OvmfPkg/OvmfPkgIa32X64.dsc     | 5 ++++-
> >  OvmfPkg/OvmfPkgX64.dsc         | 5 ++++-
> >  4 files changed, 16 insertions(+), 4 deletions(-)
> >
> > diff --git a/OvmfPkg/CloudHv/CloudHvX64.dsc
> > b/OvmfPkg/CloudHv/CloudHvX64.dsc
> > index 8ac9227c5f50..3172100310b1 100644
> > --- a/OvmfPkg/CloudHv/CloudHvX64.dsc
> > +++ b/OvmfPkg/CloudHv/CloudHvX64.dsc
> > @@ -906,7 +906,10 @@ [Components]
> >    #
> >    # Variable driver stack (SMM)
> >    #
> > -  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
> > +  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf {
> > +    <LibraryClasses>
> > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > +  }
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> >      <LibraryClasses>
> > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
> > index 29eea82571c5..85abed24c1a7 100644
> > --- a/OvmfPkg/OvmfPkgIa32.dsc
> > +++ b/OvmfPkg/OvmfPkgIa32.dsc
> > @@ -956,7 +956,10 @@ [Components]
> >    #
> >    # Variable driver stack (SMM)
> >    #
> > -  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
> > +  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf {
> > +    <LibraryClasses>
> > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > +  }
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> >      <LibraryClasses>
> > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
> > index 56d3c49ab21a..a9c1daecc1a8 100644
> > --- a/OvmfPkg/OvmfPkgIa32X64.dsc
> > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
> > @@ -974,7 +974,10 @@ [Components.X64]
> >    #
> >    # Variable driver stack (SMM)
> >    #
> > -  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
> > +  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf {
> > +    <LibraryClasses>
> > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > +  }
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> >      <LibraryClasses>
> > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
> > index f0924c0f9d0a..718399299f57 100644
> > --- a/OvmfPkg/OvmfPkgX64.dsc
> > +++ b/OvmfPkg/OvmfPkgX64.dsc
> > @@ -971,7 +971,10 @@ [Components]
> >    #
> >    # Variable driver stack (SMM)
> >    #
> > -  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
> > +  OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf {
> > +    <LibraryClasses>
> > +    VmgExitLib|UefiCpuPkg/Library/VmgExitLibNull/VmgExitLibNull.inf
> > +  }
> >
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> >    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
> >      <LibraryClasses>
> > --
> > 2.25.1
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86692): https://edk2.groups.io/g/devel/message/86692
Mute This Topic: https://groups.io/mt/89162799/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to