public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Wu, Hao A" <hao.a.wu@intel.com>
To: "Bi, Dandan" <dandan.bi@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Gao, Liming" <liming.gao@intel.com>
Subject: Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
Date: Mon, 6 May 2019 02:54:55 +0000	[thread overview]
Message-ID: <B80AF82E9BFB8E4FBD8C89DA810C6A093C8D0751@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <3C0D5C461C9E904E8F62152F6274C0BB40BCF9F0@SHSMSX104.ccr.corp.intel.com>

> -----Original Message-----
> From: Bi, Dandan
> Sent: Monday, May 06, 2019 10:48 AM
> To: Wu, Hao A; devel@edk2.groups.io
> Cc: Gao, Liming; Bi, Dandan
> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
> 
> > -----Original Message-----
> > From: Wu, Hao A
> > Sent: Monday, May 6, 2019 9:23 AM
> > To: devel@edk2.groups.io; Bi, Dandan <dandan.bi@intel.com>
> > Cc: Gao, Liming <liming.gao@intel.com>
> > Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > PcdFrameworkCompatibilitySupport usage
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > > Dandan Bi
> > > Sent: Monday, April 29, 2019 10:16 AM
> > > To: devel@edk2.groups.io
> > > Cc: Gao, Liming
> > > Subject: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> > > PcdFrameworkCompatibilitySupport usage
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1464
> > >
> > > Currently Framework compatibility is not needed and
> > > PcdFrameworkCompatibilitySupport will be removed from edk2.
> > > So remove the usage of this PCD firstly.
> > >
> > > Cc: Liming Gao <liming.gao@intel.com>
> > > Signed-off-by: Dandan Bi <dandan.bi@intel.com>
> > > ---
> > >  MdeModulePkg/Core/Dxe/DxeMain.inf   |   6 +-
> > >  MdeModulePkg/Core/Dxe/Image/Image.c | 132
> > > +---------------------------  MdeModulePkg/Core/Dxe/Image/Image.h |
> > > 85 +-----------------  MdeModulePkg/Core/Pei/FwVol/FwVol.c |  65 ----------
> > ----
> > >  MdeModulePkg/Core/Pei/PeiMain.inf   |   1 -
> > >  5 files changed, 3 insertions(+), 286 deletions(-)
> > >
> > > diff --git a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > index 8dee5bee0a..61161bee28 100644
> > > --- a/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > +++ b/MdeModulePkg/Core/Dxe/DxeMain.inf
> > > @@ -1,11 +1,11 @@
> > >  ## @file
> > >  #  This is core module in DXE phase.
> > >  #
> > >  #  It provides an implementation of DXE Core that is compliant with DXE
> CIS.
> > >  #
> > > -#  Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +#  Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ##
> > >
> > >  [Defines]
> > > @@ -130,11 +130,10 @@
> > >
> > >  [Protocols]
> > >    ## PRODUCES
> > >    ## SOMETIMES_CONSUMES
> > >    gEfiDecompressProtocolGuid
> > > -  gEfiLoadPeImageProtocolGuid                   ## SOMETIMES_PRODUCES   #
> > > Produces when PcdFrameworkCompatibilitySupport is set
> >
> > A couple of questions.
> >
> > Is '#include <Protocol/LoadPe32Image.h>' in
> > MdeModulePkg\Core\Dxe\DxeMain.h still needed?
> >
> > Can we remove EFI_PE32_IMAGE_PROTOCOL altogether? Seems to me
> > there is no other consumer within edk2.
> >
> > Best Regards,
> > Hao Wu
> 
> Hi Hao,
> 
> 1. Yes,  since following definitions in <Protocol/LoadPe32Image.h> are still used
> in MdeModulePkg\Core\Dxe\Image\Image.c
> #define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION
> 0x01
> #define
> EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATIO
> N  0x02

OK. I overlooked that these definitions are still being used.

> 
> 2. I also think we can remove this protocol, but I prefer a separate patch (not
> covered by this patch series) to remove it and solve the dependency issue in 1
> together. Is it OK to you?

As point 1 mentioned above, I think the protocol should be kept to preserve
the definitions.

Maybe Liming will have some comments on this.

Best Regards,
Hao Wu

> 
> Thanks,
> Dandan
> >
> > >    gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
> > >    gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
> > >    gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
> > >    gEfiBusSpecificDriverOverrideProtocolGuid     ##
> SOMETIMES_CONSUMES
> > >    gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
> > > @@ -171,13 +170,10 @@
> > >    gEfiVariableWriteArchProtocolGuid             ## CONSUMES
> > >    gEfiVariableArchProtocolGuid                  ## CONSUMES
> > >    gEfiCapsuleArchProtocolGuid                   ## CONSUMES
> > >    gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES
> > >
> > > -[FeaturePcd]
> > > -
> > gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > ## CONSUMES
> > > -
> > >  [Pcd]
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > Nu
> > > mber    ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > um
> > > ber     ## SOMETIMES_CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > ## CONSUMES
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress
> > > ## CONSUMES
> > > diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > index de5b8bed27..22a87ecf6d 100644
> > > --- a/MdeModulePkg/Core/Dxe/Image/Image.c
> > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.c
> > > @@ -1,9 +1,9 @@
> > >  /** @file
> > >    Core image handling services to load and unload PeImage.
> > >
> > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > >
> > >  **/
> > >
> > >  #include "DxeMain.h"
> > > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent  //
> > > // Module Globals  //  LOADED_IMAGE_PRIVATE_DATA  *mCurrentImage
> > =
> > > NULL;
> > >
> > > -LOAD_PE32_IMAGE_PRIVATE_DATA  mLoadPe32PrivateData = {
> > > -  LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE,
> > > -  NULL,
> > > -  {
> > > -    CoreLoadImageEx,
> > > -    CoreUnloadImageEx
> > > -  }
> > > -};
> > > -
> > >  typedef struct {
> > >    LIST_ENTRY                            Link;
> > >    EDKII_PECOFF_IMAGE_EMULATOR_PROTOCOL  *Emulator;
> > >    UINT16                                MachineType;
> > >  } EMULATOR_ENTRY;
> > > @@ -274,22 +265,10 @@ CoreInitializeImageServices (
> > >               );
> > >    ASSERT_EFI_ERROR(Status);
> > >
> > >    InitializeListHead (&mAvailableEmulators);
> > >
> > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > -    //
> > > -    // Export DXE Core PE Loader functionality for backward compatibility.
> > > -    //
> > > -    Status = CoreInstallProtocolInterface (
> > > -               &mLoadPe32PrivateData.Handle,
> > > -               &gEfiLoadPeImageProtocolGuid,
> > > -               EFI_NATIVE_INTERFACE,
> > > -               &mLoadPe32PrivateData.Pe32Image
> > > -               );
> > > -  }
> > > -
> > >    ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath);
> > >
> > >    return Status;
> > >  }
> > >
> > > @@ -1564,96 +1543,10 @@ CoreLoadImage (
> > >    PERF_LOAD_IMAGE_END (Handle);
> > >
> > >    return Status;
> > >  }
> > >
> > > -
> > > -
> > > -/**
> > > -  Loads an EFI image into memory and returns a handle to the image
> > > with extended parameters.
> > > -
> > > -  @param  This                    Calling context
> > > -  @param  ParentImageHandle       The caller's image handle.
> > > -  @param  FilePath                The specific file path from which the image is
> > > -                                  loaded.
> > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > location
> > > -                                  containing a copy of the image to be loaded.
> > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > -  @param  DstBuffer               The buffer to store the image.
> > > -  @param  NumberOfPages           For input, specifies the space size of the
> > > -                                  image by caller if not NULL. For output,
> > > -                                  specifies the actual space size needed.
> > > -  @param  ImageHandle             Image handle for output.
> > > -  @param  EntryPoint              Image entry point for output.
> > > -  @param  Attribute               The bit mask of attributes to set for the load
> > > -                                  PE image.
> > > -
> > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > > value.
> > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > > device
> > > -                                  path cannot be parsed to locate the proper
> > > -                                  protocol for loading the file.
> > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > insufficient
> > > -                                  resources.
> > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> image
> > > format was corrupt or not
> > > -                                  understood.
> > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > device
> > > returned a read error.
> > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > platform
> > > policy prohibits the
> > > -                                  image from being loaded. NULL is returned in
> > > *ImageHandle.
> > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > ImageHandle
> > > was created with a
> > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > current
> > > -                                  platform policy specifies that the image should not be
> > > started.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreLoadImageEx (
> > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > -  IN  UINTN                            SourceSize,
> > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > -  IN  UINT32                           Attribute
> > > -  )
> > > -{
> > > -  EFI_STATUS    Status;
> > > -  EFI_HANDLE    Handle;
> > > -
> > > -  PERF_LOAD_IMAGE_BEGIN (NULL);
> > > -
> > > -  Status = CoreLoadImageCommon (
> > > -           TRUE,
> > > -           ParentImageHandle,
> > > -           FilePath,
> > > -           SourceBuffer,
> > > -           SourceSize,
> > > -           DstBuffer,
> > > -           NumberOfPages,
> > > -           ImageHandle,
> > > -           EntryPoint,
> > > -           Attribute
> > > -           );
> > > -
> > > -  Handle = NULL;
> > > -  if (!EFI_ERROR (Status)) {
> > > -    //
> > > -    // ImageHandle will be valid only Status is success.
> > > -    //
> > > -    Handle = *ImageHandle;
> > > -  }
> > > -
> > > -  PERF_LOAD_IMAGE_END (Handle);
> > > -
> > > -  return Status;
> > > -}
> > > -
> > > -
> > >  /**
> > >    Transfer control to a loaded image's entry point.
> > >
> > >    @param  ImageHandle             Handle of image to be started.
> > >    @param  ExitDataSize            Pointer of the size to ExitData
> > > @@ -2010,28 +1903,5 @@ CoreUnloadImage (
> > >    }
> > >
> > >  Done:
> > >    return Status;
> > >  }
> > > -
> > > -
> > > -
> > > -/**
> > > -  Unload the specified image.
> > > -
> > > -  @param  This                    Indicates the calling context.
> > > -  @param  ImageHandle             The specified image handle.
> > > -
> > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > image.
> > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreUnloadImageEx (
> > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > -  IN EFI_HANDLE                         ImageHandle
> > > -  )
> > > -{
> > > -  return CoreUnloadImage (ImageHandle); -} diff --git
> > > a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > index 6020a27371..e9c44ab2a7 100644
> > > --- a/MdeModulePkg/Core/Dxe/Image/Image.h
> > > +++ b/MdeModulePkg/Core/Dxe/Image/Image.h
> > > @@ -1,30 +1,17 @@
> > >  /** @file
> > >    Data structure and functions to load and unload PeImage.
> > >
> > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights
> > > reserved.<BR>
> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights
> > > +reserved.<BR>
> > >  SPDX-License-Identifier: BSD-2-Clause-Patent
> > >
> > >  **/
> > >
> > >
> > >  #ifndef _IMAGE_H_
> > >  #define _IMAGE_H_
> > >
> > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE
> > > SIGNATURE_32('l','p','e','i')
> > > -
> > > -typedef struct {
> > > -  UINTN                       Signature;
> > > -  /// Image handle
> > > -  EFI_HANDLE                  Handle;
> > > -  EFI_PE32_IMAGE_PROTOCOL     Pe32Image;
> > > -} LOAD_PE32_IMAGE_PRIVATE_DATA;
> > > -
> > > -#define LOAD_PE32_IMAGE_PRIVATE_DATA_FROM_THIS(a) \
> > > -          CR(a, LOAD_PE32_IMAGE_PRIVATE_DATA, Pe32Image,
> > > LOAD_PE32_IMAGE_PRIVATE_DATA_SIGNATURE)
> > > -
> > > -
> > >  //
> > >  // Private Data Types
> > >  //
> > >  #define IMAGE_FILE_HANDLE_SIGNATURE       SIGNATURE_32('i','m','g','f')
> > >  typedef struct {
> > > @@ -32,76 +19,6 @@ typedef struct {
> > >    BOOLEAN             FreeBuffer;
> > >    VOID                *Source;
> > >    UINTN               SourceSize;
> > >  } IMAGE_FILE_HANDLE;
> > >
> > > -/**
> > > -  Loads an EFI image into memory and returns a handle to the image
> > > with extended parameters.
> > > -
> > > -  @param  This                    Calling context
> > > -  @param  ParentImageHandle       The caller's image handle.
> > > -  @param  FilePath                The specific file path from which the image is
> > > -                                  loaded.
> > > -  @param  SourceBuffer            If not NULL, a pointer to the memory
> > location
> > > -                                  containing a copy of the image to be loaded.
> > > -  @param  SourceSize              The size in bytes of SourceBuffer.
> > > -  @param  DstBuffer               The buffer to store the image.
> > > -  @param  NumberOfPages           For input, specifies the space size of the
> > > -                                  image by caller if not NULL. For output,
> > > -                                  specifies the actual space size needed.
> > > -  @param  ImageHandle             Image handle for output.
> > > -  @param  EntryPoint              Image entry point for output.
> > > -  @param  Attribute               The bit mask of attributes to set for the load
> > > -                                  PE image.
> > > -
> > > -  @retval EFI_SUCCESS             The image was loaded into memory.
> > > -  @retval EFI_NOT_FOUND           The FilePath was not found.
> > > -  @retval EFI_INVALID_PARAMETER   One of the parameters has an invalid
> > > value.
> > > -  @retval EFI_UNSUPPORTED         The image type is not supported, or the
> > > device
> > > -                                  path cannot be parsed to locate the proper
> > > -                                  protocol for loading the file.
> > > -  @retval EFI_OUT_OF_RESOURCES    Image was not loaded due to
> > insufficient
> > > -                                  resources.
> > > -  @retval EFI_LOAD_ERROR          Image was not loaded because the
> image
> > > format was corrupt or not
> > > -                                  understood.
> > > -  @retval EFI_DEVICE_ERROR        Image was not loaded because the
> > device
> > > returned a read error.
> > > -  @retval EFI_ACCESS_DENIED       Image was not loaded because the
> > platform
> > > policy prohibits the
> > > -                                  image from being loaded. NULL is returned in
> > > *ImageHandle.
> > > -  @retval EFI_SECURITY_VIOLATION  Image was loaded and an
> > ImageHandle
> > > was created with a
> > > -                                  valid EFI_LOADED_IMAGE_PROTOCOL. However, the
> > > current
> > > -                                  platform policy specifies that the image should not be
> > > started.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreLoadImageEx (
> > > -  IN  EFI_PE32_IMAGE_PROTOCOL          *This,
> > > -  IN  EFI_HANDLE                       ParentImageHandle,
> > > -  IN  EFI_DEVICE_PATH_PROTOCOL         *FilePath,
> > > -  IN  VOID                             *SourceBuffer       OPTIONAL,
> > > -  IN  UINTN                            SourceSize,
> > > -  IN  EFI_PHYSICAL_ADDRESS             DstBuffer           OPTIONAL,
> > > -  OUT UINTN                            *NumberOfPages      OPTIONAL,
> > > -  OUT EFI_HANDLE                       *ImageHandle,
> > > -  OUT EFI_PHYSICAL_ADDRESS             *EntryPoint         OPTIONAL,
> > > -  IN  UINT32                           Attribute
> > > -  );
> > > -
> > > -
> > > -/**
> > > -  Unload the specified image.
> > > -
> > > -  @param  This                    Indicates the calling context.
> > > -  @param  ImageHandle             The specified image handle.
> > > -
> > > -  @retval EFI_INVALID_PARAMETER   Image handle is NULL.
> > > -  @retval EFI_UNSUPPORTED         Attempt to unload an unsupported
> > image.
> > > -  @retval EFI_SUCCESS             Image successfully unloaded.
> > > -
> > > -**/
> > > -EFI_STATUS
> > > -EFIAPI
> > > -CoreUnloadImageEx (
> > > -  IN EFI_PE32_IMAGE_PROTOCOL  *This,
> > > -  IN EFI_HANDLE                         ImageHandle
> > > -  );
> > >  #endif
> > > diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > index f817ba04e2..709db00694 100644
> > > --- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > +++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
> > > @@ -1092,19 +1092,10 @@ PeiFfsFindNextFile (  {
> > >    PEI_CORE_FV_HANDLE      *CoreFvHandle;
> > >
> > >    CoreFvHandle = FvHandleToCoreHandle (FvHandle);
> > >
> > > -  //
> > > -  // To make backward compatiblity, if can not find corresponding the
> > > handle of FV
> > > -  // then treat FV as build-in FFS2/FFS3 format and memory mapped FV
> > > that FV handle is pointed
> > > -  // to the address of first byte of FV.
> > > -  //
> > > -  if ((CoreFvHandle == NULL) && FeaturePcdGet
> > > (PcdFrameworkCompatibilitySupport)) {
> > > -    return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL);
> > > -  }
> > > -
> > >    if ((CoreFvHandle == NULL) || CoreFvHandle->FvPpi == NULL) {
> > >      return EFI_NOT_FOUND;
> > >    }
> > >
> > >    return CoreFvHandle->FvPpi->FindFileByType (CoreFvHandle->FvPpi,
> > > SearchType, FvHandle, FileHandle); @@ -2109,66 +2100,10 @@
> > > PEI_CORE_FV_HANDLE *  FindNextCoreFvHandle (
> > >    IN PEI_CORE_INSTANCE  *Private,
> > >    IN UINTN              Instance
> > >    )
> > >  {
> > > -  UINTN                    Index;
> > > -  BOOLEAN                  Match;
> > > -  EFI_HOB_FIRMWARE_VOLUME  *FvHob;
> > > -
> > > -  //
> > > -  // Handle Framework FvHob and Install FvInfo Ppi for it.
> > > -  //
> > > -  if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) {
> > > -    //
> > > -    // Loop to search the wanted FirmwareVolume which supports FFS
> > > -    //
> > > -    FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob
> > (EFI_HOB_TYPE_FV);
> > > -    while (FvHob != NULL) {
> > > -      //
> > > -      // Search whether FvHob has been installed into PeiCore's FV database.
> > > -      // If found, no need install new FvInfoPpi for it.
> > > -      //
> > > -      for (Index = 0, Match = FALSE; Index < Private->FvCount; Index++) {
> > > -        if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress == Private-
> > > >Fv[Index].FvHeader) {
> > > -          Match = TRUE;
> > > -          break;
> > > -        }
> > > -      }
> > > -
> > > -      //
> > > -      // Search whether FvHob has been cached into PeiCore's Unknown FV
> > > database.
> > > -      // If found, no need install new FvInfoPpi for it.
> > > -      //
> > > -      if (!Match) {
> > > -        for (Index = 0; Index < Private->UnknownFvInfoCount; Index ++) {
> > > -          if ((UINTN)FvHob->BaseAddress == (UINTN)Private-
> > > >UnknownFvInfo[Index].FvInfo) {
> > > -            Match = TRUE;
> > > -            break;
> > > -          }
> > > -        }
> > > -      }
> > > -
> > > -      //
> > > -      // If the Fv in FvHob has not been installed into PeiCore's FV database
> > and
> > > has
> > > -      // not been cached into PeiCore's Unknown FV database, install a new
> > > FvInfoPpi
> > > -      // for it then PeiCore will dispatch it in callback of FvInfoPpi.
> > > -      //
> > > -      if (!Match) {
> > > -        PeiServicesInstallFvInfoPpi (
> > > -          &(((EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvHob-
> > >BaseAddress)-
> > > >FileSystemGuid),
> > > -          (VOID *)(UINTN)FvHob->BaseAddress,
> > > -          (UINT32)FvHob->Length,
> > > -          NULL,
> > > -          NULL
> > > -          );
> > > -      }
> > > -
> > > -      FvHob = (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob
> > > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob-
> > >Header.HobLength));
> > > -    }
> > > -  }
> > > -
> > >    if (Instance >= Private->FvCount) {
> > >      return NULL;
> > >    }
> > >
> > >    return &Private->Fv[Instance];
> > > diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > index c8a6d5b80b..7c482dacfc 100644
> > > --- a/MdeModulePkg/Core/Pei/PeiMain.inf
> > > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf
> > > @@ -100,11 +100,10 @@
> > >    gEfiPeiCoreFvLocationPpiGuid                  ## SOMETIMES_CONSUMES
> > >
> > >  [Pcd]
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize
> > > ## CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSecti
> > onFi
> > > rst  ## CONSUMES
> > > -
> > gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport
> > > ## CONSUMES
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumb
> > er
> > > ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePage
> > Nu
> > > mber    ## SOMETIMES_CONSUMES
> > >
> > >
> > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageN
> > um
> > > ber     ## SOMETIMES_CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable
> > > ## CONSUMES
> > >    gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot
> > > ## CONSUMES
> > > --
> > > 2.18.0.windows.1
> > >
> > >
> > > 


  reply	other threads:[~2019-05-06  2:55 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-29  2:15 [patch 00/11] Remove PcdFrameworkCompatibilitySupport Dandan Bi
2019-04-29  2:15 ` [patch 01/11] BaseTools/VfrCompile: Remove framework VFR support Dandan Bi
2019-05-07  5:52   ` [edk2-devel] " Bob Feng
2019-05-07  6:00   ` Liming Gao
2019-04-29  2:15 ` [patch 02/11] FatPkg/FatPei: Remove PcdFrameworkCompatibilitySupport usage Dandan Bi
2019-05-05  3:25   ` [edk2-devel] " Ni, Ray
2019-04-29  2:15 ` [patch 03/11] IntelFrameworkModulePkg: " Dandan Bi
2019-05-07  5:59   ` Liming Gao
2019-04-29  2:16 ` [patch 04/11] MdeModulePkg/Core: " Dandan Bi
2019-05-06  1:22   ` [edk2-devel] " Wu, Hao A
2019-05-06  2:48     ` Dandan Bi
2019-05-06  2:54       ` Wu, Hao A [this message]
2019-05-07  7:08         ` Dandan Bi
2019-05-08  8:23           ` Liming Gao
2019-04-29  2:16 ` [patch 05/11] MdeModulePkg/CdExpress: " Dandan Bi
2019-05-06  1:05   ` Wu, Hao A
2019-04-29  2:16 ` [patch 06/11] MdeModulePkg/Setup: " Dandan Bi
2019-05-07  6:13   ` Dong, Eric
2019-04-29  2:16 ` [patch 07/11] QuarkPlatformPkg: " Dandan Bi
2019-05-07  5:58   ` [edk2-devel] " Liming Gao
2019-04-29  2:16 ` [patch 08/11] SignedCapsulePkg: " Dandan Bi
2019-04-29  2:16 ` [patch 09/11] UefiCpuPkg: " Dandan Bi
2019-04-29 15:15   ` Laszlo Ersek
2019-04-29  2:16 ` [patch 10/11] Vlv2TbltDevicePkg: " Dandan Bi
2019-05-07  8:35   ` Sun, Zailiang
2019-04-29  2:16 ` [patch 11/11] MdeModulePkg: Remove PcdFrameworkCompatibilitySupport Dandan Bi
2019-05-06  1:25   ` Wu, Hao A
     [not found] ` <1599D055711F0B7C.4588@groups.io>
     [not found]   ` <3C0D5C461C9E904E8F62152F6274C0BB40BD01BF@SHSMSX104.ccr.corp.intel.com>
2019-05-07  6:02     ` [edk2-devel] [patch 08/11] SignedCapsulePkg: Remove PcdFrameworkCompatibilitySupport usage Yao, Jiewen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=B80AF82E9BFB8E4FBD8C89DA810C6A093C8D0751@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox