comments below

On 06/26/15 10:37, Star Zeng wrote:
> Cc: Laszlo Ersek <ler...@redhat.com>
> Cc: Ard Biesheuvel <ard.biesheu...@linaro.org>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Star Zeng <star.z...@intel.com>
> ---
>  ArmVirtPkg/ArmVirtQemu.dsc | 30 ++++++++++--------------------
>  ArmVirtPkg/ArmVirtQemu.fdf |  9 ++-------
>  2 files changed, 12 insertions(+), 27 deletions(-)
> 
> diff --git a/ArmVirtPkg/ArmVirtQemu.dsc b/ArmVirtPkg/ArmVirtQemu.dsc
> index b49389c..60f7a06 100644
> --- a/ArmVirtPkg/ArmVirtQemu.dsc
> +++ b/ArmVirtPkg/ArmVirtQemu.dsc
> @@ -239,14 +239,7 @@
>    ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
>    ArmPkg/Drivers/CpuPei/CpuPei.inf
>  
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  SecurityPkg/VariableAuthenticated/Pei/VariablePei.inf {
> -    <LibraryClasses>
> -      BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf
> -  }
> -!else
>    MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
> -!endif

I'm a bit confused here. I assume that
"MdeModulePkg/Universal/Variable/Pei/VariablePei.inf", when it is built
with Secure Boot support, will *still* depend on BaseCryptLib. Maybe not
directly, but indirectly.

However, at the end of the patch set, I cannot find any BaseCryptLib
resolution (either in the dsc or in the dsc.inf file) that would point
to PeiCryptLib.inf.

So either I'm wrong about the merged "VariablePei.inf" driver needing
BaseCryptLib, or this is an error in the patch.

>  
>    MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
>      <LibraryClasses>
> @@ -267,22 +260,11 @@
>    #
>    ArmPkg/Drivers/CpuDxe/CpuDxe.inf
>    MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
> -    <LibraryClasses>
> -      
> NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
> -  }

Okay, the patch preserves (re-adds) this lower down.

> -  SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf {
> -    <LibraryClasses>
> -      BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> -      OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf
> -  }

Yes, this should be removed. Good.

> -  
> SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf

Preserved lower down again. Good.

> -!else
> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf

Preserved lower down as well (without the DxeImageVerificationLib hook),
good.

>    MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
>      <LibraryClasses>
>  !if $(SECURE_BOOT_ENABLE) == TRUE
> +      BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
> +      OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf

These should not be added. They are already resolved in
"ArmVirtPkg/ArmVirt.dsc.inc".

(Yes, they were superfluously resolved for
"SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf" as
well.)

>        
> TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
>        AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf

And I commented on these at the earlier ArmVirtPkg patch.

>  !else
> @@ -290,6 +272,14 @@
>        
> AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
>  !endif
>    }
> +!if $(SECURE_BOOT_ENABLE) == TRUE
> +  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
> +    <LibraryClasses>
> +      
> NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
> +  }
> +  
> SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
> +!else
> +  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
>  !endif

Good.

>    MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
>    MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
> diff --git a/ArmVirtPkg/ArmVirtQemu.fdf b/ArmVirtPkg/ArmVirtQemu.fdf
> index 73d088a..e822fdf 100644
> --- a/ArmVirtPkg/ArmVirtQemu.fdf
> +++ b/ArmVirtPkg/ArmVirtQemu.fdf
> @@ -1,6 +1,7 @@
>  #
>  #  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
>  #  Copyright (c) 2014, Linaro Limited. All rights reserved.
> +#  Copyright (c) 2015, Intel Corporation. All rights reserved.
>  #
>  #  This program and the accompanying materials
>  #  are licensed and made available under the terms and conditions of the BSD 
> License
> @@ -116,11 +117,9 @@ READ_LOCK_STATUS   = TRUE
>    INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
>    INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
>    INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
> +  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>  !if $(SECURE_BOOT_ENABLE) == TRUE
> -  INF SecurityPkg/VariableAuthenticated/RuntimeDxe/VariableRuntimeDxe.inf
>    INF 
> SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
> -!else
> -  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>  !endif
>    INF 
> MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
>    INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf

Good.

> @@ -264,11 +263,7 @@ READ_LOCK_STATUS   = TRUE
>    INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
>    INF ArmPkg/Drivers/CpuPei/CpuPei.inf
>    INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
> -!if $(SECURE_BOOT_ENABLE) == TRUE
> -  INF SecurityPkg/VariableAuthenticated/Pei/VariablePei.inf
> -!else
>    INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
> -!endif
>    INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf

Makes sense.

>  
>    FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
> 

Summary:

(1) The

      BaseCryptLib|CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf

    resolution seems to be missing for the merged

      MdeModulePkg/Universal/Variable/Pei/VariablePei.inf

    PEIM in the secure boot case. Please add it to the

      [LibraryClasses.common.PEIM]

    section, conditionally, in the "ArmVirtPkg/ArmVirt.dsc.inc" file.

(2) No need to spell out

      BaseCryptLib|CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf
      OpensslLib|CryptoPkg/Library/OpensslLib/OpensslLib.inf

    for the merged

      MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf

    driver; they are already handled by the dsc.inc file.

Hm... Actually, I just built the tree at the end of this series, with:

  build -a AARCH64 -t GCC48 -p ArmVirtPkg/ArmVirtQemu.dsc \
    --report-file=.../build.aa64virt.report -b DEBUG \
    -D DEBUG_PRINT_ERROR_LEVEL=0x8040004F \
    -D SECURE_BOOT_ENABLE -D INTEL_BDS

and then I checked the build report for any BaseCryptLib resolutions.
The merged "VariablePei.inf" does *not* depend on BaseCryptLib. So that
part of the patch is correct.

So, the only thing to fix in this patch is (2).

Thanks!
Laszlo

------------------------------------------------------------------------------
Monitor 25 network devices or servers for free with OpManager!
OpManager is web-based network management software that monitors 
network devices and physical & virtual servers, alerts via email & sms 
for fault. Monitor 25 devices for free with no restriction. Download now
http://ad.doubleclick.net/ddm/clk/292181274;119417398;o
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to