On 10/26/15 08:04, Jordan Justen wrote:
> 47-50 Reviewed-by: Jordan Justen <[email protected]>
Thanks! I applied the tag to the patches in question.
> But, I think only 49/52: "OvmfPkg: consolidate variable driver stack
> in DSC and FDF files" should be committed now.
>
> I think the others should wait for the rest of the SMM pieces to fall
> in place. (Maybe... I guess we can discuss this.)
I agree that from the four you named, only patch v3 49/52 would be a
good candidate for committing right now.
However, I'd like to keep even v3 49/52 in my tree for now. The reason
is that the DSC / FDF files undergo a "suprising" amount of churn in
this series (= many gradual additions), and those patches actually cause
quite a few (context) conflicts whenever I reorder them.
Plus, "OvmfPkg: consolidate variable driver stack in DSC and FDF files"
is a direct prerequisite / preparation patch for the one after it
("OvmfPkg: pull in SMM-based variable driver stack"). I think it makes
sense to keep those two close to each other.
So, I've picked up your R-b's (thanks again for them!), but if you don't
mind, I'd like to hang on to v3 49/52 until the SMM stuff converges and
gets committed first.
Thanks!
Laszlo
>
> -Jordan
>
> On 2015-10-14 15:26:46, Laszlo Ersek wrote:
>> When -D SMM_REQUIRE is given, replace both
>> - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf and
>> - OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
>> with
>> - OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf.
>>
>> The outermost (= runtime DXE driver) VariableSmmRuntimeDxe enters SMM, and
>> the rest:
>> - the privileged half of the variable driver, VariableSmm,
>> - the fault tolerant write driver, FaultTolerantWriteSmm,
>> - and the FVB driver, FvbServicesSmm,
>> work in SMM purely.
>>
>> We also resolve the BaseCryptLib class for DXE_SMM_DRIVER modules, for the
>> authenticated VariableSmm driver's sake.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Laszlo Ersek <[email protected]>
>> ---
>>
>> Notes:
>> v2:
>> - hook VarCheckUefiLib into VariableSmm
>>
>> <http://news.gmane.org/[email protected]>
>>
>> OvmfPkg/OvmfPkgIa32.dsc | 18 ++++++++++++++++--
>> OvmfPkg/OvmfPkgIa32X64.dsc | 18 ++++++++++++++++--
>> OvmfPkg/OvmfPkgX64.dsc | 18 ++++++++++++++++--
>> OvmfPkg/OvmfPkgIa32.fdf | 16 ++++++++++++++--
>> OvmfPkg/OvmfPkgIa32X64.fdf | 16 ++++++++++++++--
>> OvmfPkg/OvmfPkgX64.fdf | 16 ++++++++++++++--
>> 6 files changed, 90 insertions(+), 12 deletions(-)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
>> index b119c77..9040bdc 100644
>> --- a/OvmfPkg/OvmfPkgIa32.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32.dsc
>> @@ -312,6 +312,7 @@ [LibraryClasses.common.DXE_SMM_DRIVER]
>> !ifdef $(SOURCE_DEBUG_ENABLE)
>> DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
>> !endif
>> + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
>>
>> [LibraryClasses.common.SMM_CORE]
>> PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>> @@ -731,10 +732,22 @@ [Components]
>> SmmLib|MdePkg/Library/SmmLibNull/SmmLibNull.inf
>>
>> SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
>> }
>> -!endif
>>
>> #
>> - # Variable driver stack
>> + # Variable driver stack (SMM)
>> + #
>> + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
>> + <LibraryClasses>
>> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> + }
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> + #
>> + # Variable driver stack (non-SMM)
>> #
>> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
>> @@ -746,3 +759,4 @@ [Components]
>> <LibraryClasses>
>> NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> }
>> +!endif
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
>> index a4f287b..4aa7ba5 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
>> @@ -317,6 +317,7 @@ [LibraryClasses.common.DXE_SMM_DRIVER]
>> !ifdef $(SOURCE_DEBUG_ENABLE)
>> DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
>> !endif
>> + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
>>
>> [LibraryClasses.common.SMM_CORE]
>> PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>> @@ -738,10 +739,22 @@ [Components.X64]
>> SmmLib|MdePkg/Library/SmmLibNull/SmmLibNull.inf
>>
>> SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
>> }
>> -!endif
>>
>> #
>> - # Variable driver stack
>> + # Variable driver stack (SMM)
>> + #
>> + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
>> + <LibraryClasses>
>> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> + }
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> + #
>> + # Variable driver stack (non-SMM)
>> #
>> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
>> @@ -753,3 +766,4 @@ [Components.X64]
>> <LibraryClasses>
>> NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> }
>> +!endif
>> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
>> index 3f5f94d..6ea135d 100644
>> --- a/OvmfPkg/OvmfPkgX64.dsc
>> +++ b/OvmfPkg/OvmfPkgX64.dsc
>> @@ -317,6 +317,7 @@ [LibraryClasses.common.DXE_SMM_DRIVER]
>> !ifdef $(SOURCE_DEBUG_ENABLE)
>> DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/SmmDebugAgentLib.inf
>> !endif
>> + BaseCryptLib|CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf
>>
>> [LibraryClasses.common.SMM_CORE]
>> PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>> @@ -736,10 +737,22 @@ [Components]
>> SmmLib|MdePkg/Library/SmmLibNull/SmmLibNull.inf
>>
>> SmmCpuFeaturesLib|OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf
>> }
>> -!endif
>>
>> #
>> - # Variable driver stack
>> + # Variable driver stack (SMM)
>> + #
>> + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf {
>> + <LibraryClasses>
>> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> + }
>> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> + #
>> + # Variable driver stack (non-SMM)
>> #
>> OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf {
>> @@ -751,3 +764,4 @@ [Components]
>> <LibraryClasses>
>> NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> }
>> +!endif
>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>> index 5b829d4..a0233bf 100644
>> --- a/OvmfPkg/OvmfPkgIa32.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32.fdf
>> @@ -199,7 +199,9 @@ [FV.DXEFV]
>> APRIORI DXE {
>> INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
>> INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
>> +!if $(SMM_REQUIRE) == FALSE
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> +!endif
>> }
>>
>> #
>> @@ -360,15 +362,25 @@ [FV.DXEFV]
>> INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
>> INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
>> -!endif
>>
>> #
>> -# Variable driver stack
>> +# Variable driver stack (SMM)
>> +#
>> +INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> +#
>> +# Variable driver stack (non-SMM)
>> #
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
>> INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
>> INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>> +!endif
>>
>>
>> ################################################################################
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>> index e215372..e381f79 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>> @@ -199,7 +199,9 @@ [FV.DXEFV]
>> APRIORI DXE {
>> INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
>> INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
>> +!if $(SMM_REQUIRE) == FALSE
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> +!endif
>> }
>>
>> #
>> @@ -360,15 +362,25 @@ [FV.DXEFV]
>> INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
>> INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
>> -!endif
>>
>> #
>> -# Variable driver stack
>> +# Variable driver stack (SMM)
>> +#
>> +INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> +#
>> +# Variable driver stack (non-SMM)
>> #
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
>> INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
>> INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>> +!endif
>>
>>
>> ################################################################################
>>
>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>> index 6d6d4a2..bad6c38 100644
>> --- a/OvmfPkg/OvmfPkgX64.fdf
>> +++ b/OvmfPkg/OvmfPkgX64.fdf
>> @@ -199,7 +199,9 @@ [FV.DXEFV]
>> APRIORI DXE {
>> INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
>> INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
>> +!if $(SMM_REQUIRE) == FALSE
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> +!endif
>> }
>>
>> #
>> @@ -360,15 +362,25 @@ [FV.DXEFV]
>> INF UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> INF MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
>> INF UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf
>> -!endif
>>
>> #
>> -# Variable driver stack
>> +# Variable driver stack (SMM)
>> +#
>> +INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesSmm.inf
>> +INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
>> +INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmmRuntimeDxe.inf
>> +
>> +!else
>> +
>> +#
>> +# Variable driver stack (non-SMM)
>> #
>> INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
>> INF OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
>> INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
>> INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>> +!endif
>>
>>
>> ################################################################################
>>
>> --
>> 1.8.3.1
>>
>>
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel