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

Reply via email to