From: "Dandan Bi" <dandan.bi@intel.com>
To: "Wu, Hao A" <hao.a.wu@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Gao, Liming" <liming.gao@intel.com>, "Bi, Dandan" <dandan.bi@intel.com>
Subject: Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage
Date: Tue, 7 May 2019 07:08:11 +0000 [thread overview]
Message-ID: <3C0D5C461C9E904E8F62152F6274C0BB40BD0372@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <B80AF82E9BFB8E4FBD8C89DA810C6A093C8D0751@SHSMSX104.ccr.corp.intel.com>
Hi Hao and Liming,
Any comments for this patch itself?
As for whether delete the header definition of EFI_PE32_IMAGE_PROTOCOL , it is another topic. Liming, do you have any comments on this one?
Thanks,
Dandan
> -----Original Message-----
> From: Wu, Hao A
> Sent: Monday, May 6, 2019 10:55 AM
> To: Bi, Dandan <dandan.bi@intel.com>; devel@edk2.groups.io
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: RE: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove
> PcdFrameworkCompatibilitySupport usage
>
> > -----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_REGISTRA
> TIO
> > 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
> > > >
> > > >
> > > >
next prev parent reply other threads:[~2019-05-07 7:08 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
2019-05-07 7:08 ` Dandan Bi [this message]
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=3C0D5C461C9E904E8F62152F6274C0BB40BD0372@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