Laszlo, Reviewed-by: Michael Kinney <michael.d.kin...@intel.com>
Mike > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Laszlo > Ersek > Sent: Tuesday, November 3, 2015 1:01 PM > To: edk2-de...@ml01.01.org > Cc: Paolo Bonzini <pbonz...@redhat.com> > Subject: [edk2] [PATCH v4 26/41] OvmfPkg: build PiSmmCpuDxeSmm for -D > SMM_REQUIRE > > At this point we can enable building PiSmmCpuDxeSmm. > > CPU specific features, like SMRR detection, and functions that are used to > initialize SMM and process SMIs, are abstracted through the > SmmCpuFeaturesLib class for the PiSmmCpuDxeSmm module. Resolve it to our > own implementation under OvmfPkg -- it allows PiSmmCpuDxeSmm to work with > QEMU's and KVM's 64-bit state save map format, which follows the > definition from AMD's programmer manual. > > SmmCpuPlatformHookLib provides platform specific functions that are used > to initialize SMM and process SMIs. Resolve it to the one Null instance > provided by UefiCpuPkg, which is expected to work for most platforms. > > PiSmmCpuDxeSmm is not yet intended to function correctly with regard to > S3; the upcoming, trimmed down CpuMpDxe port (under the name CpuS3DataDxe) > will be necessary for that. > > Cc: Paolo Bonzini <pbonz...@redhat.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <ler...@redhat.com> > [pbonz...@redhat.com: resolve the SmmCpuFeaturesLib class to OVMF's own > instance] > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > > Notes: > v4: > - Drop the SmmLib resolution from the DSC files, and the matching > paragraph from the commit message. Starting with SVN r18673 / git > f40577c3563f ("UefiCpuPkg: PiSmmCpuDxeSmm: Remove unused references to > SmmLib"), PiSmmCpuDxeSmm depends on SmmLib no more. > > v3: > - resolve SmmCpuFeaturesLib to OvmfPkg's own instance [Paolo] > > v2: > - The module builds now for X64 too, thanks to Intel for open sourcing > the X64 SMM entry vector (huge kudos). Update the commit message > accordingly. > - Thanks to Mike, PiSmmCpuDxeSmm and SmmCpuPlatformHookLibNull are now > under UefiCpuPkg; update pathnames in the DSC / FDF files accordingly. > - Version 2 of this patch also obviates "OvmfPkg: PiSmmCpuDxeSmm: > eliminate SmmLib dependency" from v1. > - Resolve SmmCpuFeaturesLib. This abstraction is new in Mike's > PiSmmCpuDxeSmm module; Quark used to have similar code in > "SmmFeatures.c" non-separably. > > OvmfPkg/OvmfPkgIa32.dsc | 5 +++++ > OvmfPkg/OvmfPkgIa32X64.dsc | 5 +++++ > OvmfPkg/OvmfPkgX64.dsc | 5 +++++ > OvmfPkg/OvmfPkgIa32.fdf | 1 + > OvmfPkg/OvmfPkgIa32X64.fdf | 1 + > OvmfPkg/OvmfPkgX64.fdf | 1 + > 6 files changed, 18 insertions(+) > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index f9b7af7..d6d7253 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -741,4 +741,9 @@ [Components] > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > + UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > + <LibraryClasses> > + > SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf > + > SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf > + } > !endif > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index 028c21a..cea39c6 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -748,4 +748,9 @@ [Components.X64] > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > + UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > + <LibraryClasses> > + > SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf > + > SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf > + } > !endif > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 5ee17ff..98a0133 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -746,4 +746,9 @@ [Components] > <LibraryClasses> > LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf > } > + UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf { > + <LibraryClasses> > + > SmmCpuPlatformHookLib|UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf > + > SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf > + } > !endif > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf > index 53ddae3..7f9e201 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -362,6 +362,7 @@ [FV.DXEFV] > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > +INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > !endif > > > ################################################################################ > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index bb7ca6e..d70736e 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -362,6 +362,7 @@ [FV.DXEFV] > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > +INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > !endif > > > ################################################################################ > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf > index bceab15..b9fee36 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -362,6 +362,7 @@ [FV.DXEFV] > INF MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf > INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf > INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf > +INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf > !endif > > > ################################################################################ > -- > 1.8.3.1 > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel