From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: hao.a.wu@intel.com) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by groups.io with SMTP; Sun, 05 May 2019 18:22:42 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 May 2019 18:22:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,435,1549958400"; d="scan'208";a="148863926" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga007.fm.intel.com with ESMTP; 05 May 2019 18:22:39 -0700 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 5 May 2019 18:22:38 -0700 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by FMSMSX125.amr.corp.intel.com (10.18.125.40) with Microsoft SMTP Server (TLS) id 14.3.408.0; Sun, 5 May 2019 18:22:38 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.33]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.150]) with mapi id 14.03.0415.000; Mon, 6 May 2019 09:22:36 +0800 From: "Wu, Hao A" To: "devel@edk2.groups.io" , "Bi, Dandan" CC: "Gao, Liming" Subject: Re: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage Thread-Topic: [edk2-devel] [patch 04/11] MdeModulePkg/Core: Remove PcdFrameworkCompatibilitySupport usage Thread-Index: AQHU/jGaqa0qnw5aC0u4ePCTFKpqaaZdV0yw Date: Mon, 6 May 2019 01:22:35 +0000 Message-ID: References: <20190429021607.11304-1-dandan.bi@intel.com> <20190429021607.11304-5-dandan.bi@intel.com> In-Reply-To: <20190429021607.11304-5-dandan.bi@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: hao.a.wu@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----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 >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1464 >=20 > Currently Framework compatibility is not needed and > PcdFrameworkCompatibilitySupport will be removed from edk2. > So remove the usage of this PCD firstly. >=20 > Cc: Liming Gao > Signed-off-by: Dandan Bi > --- > 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(-) >=20 > 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. > +# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved. > # SPDX-License-Identifier: BSD-2-Clause-Patent > # > ## >=20 > [Defines] > @@ -130,11 +130,10 @@ >=20 > [Protocols] > ## PRODUCES > ## SOMETIMES_CONSUMES > gEfiDecompressProtocolGuid > - gEfiLoadPeImageProtocolGuid ## SOMETIMES_PRODUCES = # > Produces when PcdFrameworkCompatibilitySupport is set A couple of questions. Is '#include ' 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 > 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 >=20 > -[FeaturePcd] > - gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport > ## CONSUMES > - > [Pcd] >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNu > mber ## SOMETIMES_CONSUMES >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNum > 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. >=20 > -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ >=20 > #include "DxeMain.h" > @@ -12,19 +12,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > // > // Module Globals > // > LOADED_IMAGE_PRIVATE_DATA *mCurrentImage =3D NULL; >=20 > -LOAD_PE32_IMAGE_PRIVATE_DATA mLoadPe32PrivateData =3D { > - 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); >=20 > InitializeListHead (&mAvailableEmulators); >=20 > - if (FeaturePcdGet (PcdFrameworkCompatibilitySupport)) { > - // > - // Export DXE Core PE Loader functionality for backward compatibili= ty. > - // > - Status =3D CoreInstallProtocolInterface ( > - &mLoadPe32PrivateData.Handle, > - &gEfiLoadPeImageProtocolGuid, > - EFI_NATIVE_INTERFACE, > - &mLoadPe32PrivateData.Pe32Image > - ); > - } > - > ProtectUefiImage (&Image->Info, Image->LoadedImageDevicePath); >=20 > return Status; > } >=20 > @@ -1564,96 +1543,10 @@ CoreLoadImage ( > PERF_LOAD_IMAGE_END (Handle); >=20 > return Status; > } >=20 > - > - > -/** > - 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 o= f the > - image by caller if not NULL. For outp= ut, > - specifies the actual space size neede= d. > - @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 t= he > device > - path cannot be parsed to locate the p= roper > - protocol for loading the file. > - @retval EFI_OUT_OF_RESOURCES Image was not loaded due to insuffici= ent > - resources. > - @retval EFI_LOAD_ERROR Image was not loaded because the imag= e > format was corrupt or not > - understood. > - @retval EFI_DEVICE_ERROR Image was not loaded because the devi= ce > returned a read error. > - @retval EFI_ACCESS_DENIED Image was not loaded because the plat= form > policy prohibits the > - image from being loaded. NULL is retu= rned in > *ImageHandle. > - @retval EFI_SECURITY_VIOLATION Image was loaded and an ImageHandle > was created with a > - valid EFI_LOADED_IMAGE_PROTOCOL. Howe= ver, the > current > - platform policy specifies that the im= age 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 =3D CoreLoadImageCommon ( > - TRUE, > - ParentImageHandle, > - FilePath, > - SourceBuffer, > - SourceSize, > - DstBuffer, > - NumberOfPages, > - ImageHandle, > - EntryPoint, > - Attribute > - ); > - > - Handle =3D NULL; > - if (!EFI_ERROR (Status)) { > - // > - // ImageHandle will be valid only Status is success. > - // > - Handle =3D *ImageHandle; > - } > - > - PERF_LOAD_IMAGE_END (Handle); > - > - return Status; > -} > - > - > /** > Transfer control to a loaded image's entry point. >=20 > @param ImageHandle Handle of image to be started. > @param ExitDataSize Pointer of the size to ExitData > @@ -2010,28 +1903,5 @@ CoreUnloadImage ( > } >=20 > 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 imag= e. > - @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. >=20 > -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
> +Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
> SPDX-License-Identifier: BSD-2-Clause-Patent >=20 > **/ >=20 >=20 > #ifndef _IMAGE_H_ > #define _IMAGE_H_ >=20 > -#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; >=20 > -/** > - 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 o= f the > - image by caller if not NULL. For outp= ut, > - specifies the actual space size neede= d. > - @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 t= he > device > - path cannot be parsed to locate the p= roper > - protocol for loading the file. > - @retval EFI_OUT_OF_RESOURCES Image was not loaded due to insuffici= ent > - resources. > - @retval EFI_LOAD_ERROR Image was not loaded because the imag= e > format was corrupt or not > - understood. > - @retval EFI_DEVICE_ERROR Image was not loaded because the devi= ce > returned a read error. > - @retval EFI_ACCESS_DENIED Image was not loaded because the plat= form > policy prohibits the > - image from being loaded. NULL is retu= rned in > *ImageHandle. > - @retval EFI_SECURITY_VIOLATION Image was loaded and an ImageHandle > was created with a > - valid EFI_LOADED_IMAGE_PROTOCOL. Howe= ver, the > current > - platform policy specifies that the im= age 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 imag= e. > - @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; >=20 > CoreFvHandle =3D FvHandleToCoreHandle (FvHandle); >=20 > - // > - // To make backward compatiblity, if can not find corresponding the h= andle > of FV > - // then treat FV as build-in FFS2/FFS3 format and memory mapped FV th= at FV > handle is pointed > - // to the address of first byte of FV. > - // > - if ((CoreFvHandle =3D=3D NULL) && FeaturePcdGet > (PcdFrameworkCompatibilitySupport)) { > - return FindFileEx (FvHandle, NULL, SearchType, FileHandle, NULL); > - } > - > if ((CoreFvHandle =3D=3D NULL) || CoreFvHandle->FvPpi =3D=3D NULL) { > return EFI_NOT_FOUND; > } >=20 > 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 =3D (EFI_HOB_FIRMWARE_VOLUME *)GetFirstHob (EFI_HOB_TYPE_FV); > - while (FvHob !=3D NULL) { > - // > - // Search whether FvHob has been installed into PeiCore's FV data= base. > - // If found, no need install new FvInfoPpi for it. > - // > - for (Index =3D 0, Match =3D FALSE; Index < Private->FvCount; Inde= x++) { > - if ((EFI_PEI_FV_HANDLE)(UINTN)FvHob->BaseAddress =3D=3D Private= - > >Fv[Index].FvHeader) { > - Match =3D 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 =3D 0; Index < Private->UnknownFvInfoCount; Index ++= ) { > - if ((UINTN)FvHob->BaseAddress =3D=3D (UINTN)Private- > >UnknownFvInfo[Index].FvInfo) { > - Match =3D TRUE; > - break; > - } > - } > - } > - > - // > - // If the Fv in FvHob has not been installed into PeiCore's FV da= tabase 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 =3D (EFI_HOB_FIRMWARE_VOLUME *)GetNextHob > (EFI_HOB_TYPE_FV, (VOID *)((UINTN)FvHob + FvHob->Header.HobLength)); > - } > - } > - > if (Instance >=3D Private->FvCount) { > return NULL; > } >=20 > 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 >=20 > [Pcd] > gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize > ## CONSUMES >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreImageLoaderSearchTeSectionFi > rst ## CONSUMES > - gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport > ## CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressPeiCodePageNumber > ## SOMETIMES_CONSUMES >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNu > mber ## SOMETIMES_CONSUMES >=20 > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNum > ber ## SOMETIMES_CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable > ## CONSUMES > gEfiMdeModulePkgTokenSpaceGuid.PcdShadowPeimOnS3Boot > ## CONSUMES > -- > 2.18.0.windows.1 >=20 >=20 >=20