On 11/20/15 07:02, Jordan Justen wrote:
> Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com>

Thank you! But, I think you reviewed this one earlier:

http://thread.gmane.org/gmane.comp.bios.edk2.devel/3788/focus=4205

In that message, you wrote:

    With those move into a new patch, or into patch 14

    13-14 Reviewed-by: Jordan Justen <jordan.l.justen <at> intel.com>

and patch 14 is exactly this one. (I complied with your suggestion for v5.)

(This is why I prefer to give my R-b explicitly for each patch in
separation. It means more emails but is clearer down the road.)

Thanks again!
Laszlo


> 
> On 2015-11-03 13:00:50, Laszlo Ersek wrote:
>> During DXE, drivers save data in the LockBox. A save operation is layered
>> as follows:
>>
>> - The unprivileged driver wishing to store data in the LockBox links
>>   against the "MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf"
>>   library instance.
>>
>>   The library allows the unprivileged driver to format requests for the
>>   privileged SMM LockBox driver (see below), and to parse responses.
>>
>>   We apply this resolution for DXE_DRIVER modules.
>>
>> - The privileged SMM LockBox driver is built from
>>   "MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf". This driver
>>   has module type DXE_SMM_DRIVER and can access SMRAM.
>>
>>   The driver delegates command parsing and response formatting to
>>   "MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf".
>>
>>   Therefore we include this DXE_SMM_DRIVER in the build, and apply said
>>   resolution specifically to it.
>>
>>   (Including the driver requires us to resolve a few of other library
>>   classes for DXE_SMM_DRIVER modules.)
>>
>> - In PEI, the S3 Resume PEIM (UefiCpuPkg/Universal/Acpi/S3Resume2Pei)
>>   retrieves data from the LockBox. It is capable of searching SMRAM
>>   itself.
>>
>>   We resolve LockBoxLib to
>>   "MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf" specifically
>>   for this one PEIM.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
>> ---
>>  OvmfPkg/OvmfPkgIa32.dsc    | 16 ++++++++++++++++
>>  OvmfPkg/OvmfPkgIa32X64.dsc | 16 ++++++++++++++++
>>  OvmfPkg/OvmfPkgX64.dsc     | 16 ++++++++++++++++
>>  OvmfPkg/OvmfPkgIa32.fdf    |  1 +
>>  OvmfPkg/OvmfPkgIa32X64.fdf |  1 +
>>  OvmfPkg/OvmfPkgX64.fdf     |  1 +
>>  6 files changed, 51 insertions(+)
>>
>> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
>> index 6cfd58e..a19d4e2 100644
>> --- a/OvmfPkg/OvmfPkgIa32.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32.dsc
>> @@ -106,7 +106,9 @@ [LibraryClasses]
>>    QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
>>    VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>>    LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf
>> +!if $(SMM_REQUIRE) == FALSE
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf
>> +!endif
>>    
>> CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
>>  
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>> @@ -272,7 +274,11 @@ [LibraryClasses.common.DXE_DRIVER]
>>    DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
>>    PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
>>    
>> CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
>> +!else
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf
>> +!endif
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>>    DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
>>  !endif
>> @@ -292,6 +298,9 @@ [LibraryClasses.common.UEFI_APPLICATION]
>>  [LibraryClasses.common.DXE_SMM_DRIVER]
>>    PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>>    TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
>> +  
>> MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
>> +  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
>> +  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
>>    
>> SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
>>  !ifdef $(DEBUG_ON_SERIAL_PORT)
>>    DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
>> @@ -461,6 +470,9 @@ [Components]
>>    UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {
>>      <LibraryClasses>
>>        PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
>> +!endif
>>    }
>>  !if $(SMM_REQUIRE) == TRUE
>>    OvmfPkg/SmmAccess/SmmAccessPei.inf {
>> @@ -708,4 +720,8 @@ [Components]
>>    # Privileged drivers (DXE_SMM_DRIVER modules)
>>    #
>>    UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {
>> +    <LibraryClasses>
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
>> +  }
>>  !endif
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
>> index 6679e8a..d177154 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
>> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
>> @@ -111,7 +111,9 @@ [LibraryClasses]
>>    QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
>>    VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>>    LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf
>> +!if $(SMM_REQUIRE) == FALSE
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf
>> +!endif
>>    
>> CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
>>  
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>> @@ -277,7 +279,11 @@ [LibraryClasses.common.DXE_DRIVER]
>>    DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
>>    PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
>>    
>> CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
>> +!else
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf
>> +!endif
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>>    DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
>>  !endif
>> @@ -297,6 +303,9 @@ [LibraryClasses.common.UEFI_APPLICATION]
>>  [LibraryClasses.common.DXE_SMM_DRIVER]
>>    PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>>    TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
>> +  
>> MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
>> +  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
>> +  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
>>    
>> SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
>>  !ifdef $(DEBUG_ON_SERIAL_PORT)
>>    DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
>> @@ -467,6 +476,9 @@ [Components.IA32]
>>    UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {
>>      <LibraryClasses>
>>        PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
>> +!endif
>>    }
>>  !if $(SMM_REQUIRE) == TRUE
>>    OvmfPkg/SmmAccess/SmmAccessPei.inf {
>> @@ -715,4 +727,8 @@ [Components.X64]
>>    # Privileged drivers (DXE_SMM_DRIVER modules)
>>    #
>>    UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {
>> +    <LibraryClasses>
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
>> +  }
>>  !endif
>> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
>> index 2651042..7908a31 100644
>> --- a/OvmfPkg/OvmfPkgX64.dsc
>> +++ b/OvmfPkg/OvmfPkgX64.dsc
>> @@ -111,7 +111,9 @@ [LibraryClasses]
>>    QemuFwCfgLib|OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf
>>    VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>>    LoadLinuxLib|OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib.inf
>> +!if $(SMM_REQUIRE) == FALSE
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf
>> +!endif
>>    
>> CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
>>  
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>> @@ -277,7 +279,11 @@ [LibraryClasses.common.DXE_DRIVER]
>>    DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
>>    PlatformBdsLib|OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf
>>    
>> CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +  LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxDxeLib.inf
>> +!else
>>    LockBoxLib|OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf
>> +!endif
>>  !ifdef $(SOURCE_DEBUG_ENABLE)
>>    DebugAgentLib|SourceLevelDebugPkg/Library/DebugAgent/DxeDebugAgentLib.inf
>>  !endif
>> @@ -297,6 +303,9 @@ [LibraryClasses.common.UEFI_APPLICATION]
>>  [LibraryClasses.common.DXE_SMM_DRIVER]
>>    PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>>    TimerLib|OvmfPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf
>> +  
>> MemoryAllocationLib|MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf
>> +  HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
>> +  SmmMemLib|MdePkg/Library/SmmMemLib/SmmMemLib.inf
>>    
>> SmmServicesTableLib|MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf
>>  !ifdef $(DEBUG_ON_SERIAL_PORT)
>>    DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
>> @@ -466,6 +475,9 @@ [Components]
>>    UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume2Pei.inf {
>>      <LibraryClasses>
>>        PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
>> +!if $(SMM_REQUIRE) == TRUE
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.inf
>> +!endif
>>    }
>>  !if $(SMM_REQUIRE) == TRUE
>>    OvmfPkg/SmmAccess/SmmAccessPei.inf {
>> @@ -713,4 +725,8 @@ [Components]
>>    # Privileged drivers (DXE_SMM_DRIVER modules)
>>    #
>>    UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf {
>> +    <LibraryClasses>
>> +      LockBoxLib|MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf
>> +  }
>>  !endif
>> diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf
>> index e908198..53ddae3 100644
>> --- a/OvmfPkg/OvmfPkgIa32.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32.fdf
>> @@ -361,6 +361,7 @@ [FV.DXEFV]
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
>>  INF  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +INF  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
>>  !endif
>>  
>>  
>> ################################################################################
>> diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf
>> index 5300a71..bb7ca6e 100644
>> --- a/OvmfPkg/OvmfPkgIa32X64.fdf
>> +++ b/OvmfPkg/OvmfPkgIa32X64.fdf
>> @@ -361,6 +361,7 @@ [FV.DXEFV]
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
>>  INF  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +INF  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf
>>  !endif
>>  
>>  
>> ################################################################################
>> diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf
>> index 94a77d6..bceab15 100644
>> --- a/OvmfPkg/OvmfPkgX64.fdf
>> +++ b/OvmfPkg/OvmfPkgX64.fdf
>> @@ -361,6 +361,7 @@ [FV.DXEFV]
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmIpl.inf
>>  INF  MdeModulePkg/Core/PiSmmCore/PiSmmCore.inf
>>  INF  UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf
>> +INF  MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.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

Reply via email to