No issue, I will remove UINT32 casting. Thanks!
> -----Original Message----- > From: Wang, Jian J > Sent: Wednesday, February 13, 2019 9:14 AM > To: Chiu, Chasel <chasel.c...@intel.com>; edk2-devel@lists.01.org > Cc: Wu, Hao A <hao.a...@intel.com>; Ni, Ray <ray...@intel.com>; Zeng, Star > <star.z...@intel.com>; Gao, Liming <liming....@intel.com> > Subject: RE: [PATCH 2/3] MdeModulePkg/PeiMain: Support > EFI_PEI_CORE_FV_LOCATION_PPI > > Chasel, > > > > -----Original Message----- > > From: Chiu, Chasel > > Sent: Tuesday, February 12, 2019 9:20 PM > > To: edk2-devel@lists.01.org > > Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A > > <hao.a...@intel.com>; Ni, Ray <ray...@intel.com>; Zeng, Star > > <star.z...@intel.com>; Gao, Liming <liming....@intel.com>; Chiu, > > Chasel <chasel.c...@intel.com> > > Subject: [PATCH 2/3] MdeModulePkg/PeiMain: Support > > EFI_PEI_CORE_FV_LOCATION_PPI > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1524 > > > > When shadowing PeiCore the EFI_PEI_CORE_FV_LOCATION_PPI should be > > checked to see if PeiCore not in BFV, otherwise just shadowing PeiCore > > from BFV. > > > > Test: Verified on internal platform and booting successfully. > > > > Cc: Jian J Wang <jian.j.w...@intel.com> > > Cc: Hao Wu <hao.a...@intel.com> > > Cc: Ray Ni <ray...@intel.com> > > Cc: Star Zeng <star.z...@intel.com> > > Cc: Liming Gao <liming....@intel.com> > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Chasel Chiu <chasel.c...@intel.com> > > --- > > MdeModulePkg/Core/Pei/PeiMain/PeiMain.c | 58 > > +++++++++++++++++++++++++++++++++++++++++++++------------- > > MdeModulePkg/Core/Pei/PeiMain.h | 3 ++- > > MdeModulePkg/Core/Pei/PeiMain.inf | 3 ++- > > 3 files changed, 49 insertions(+), 15 deletions(-) > > > > diff --git a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c > > b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c > > index 4da80a8222..408f24c216 100644 > > --- a/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c > > +++ b/MdeModulePkg/Core/Pei/PeiMain/PeiMain.c > > @@ -1,7 +1,7 @@ > > /** @file > > Pei Core Main Entry Point > > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights > > reserved.<BR> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights > > +reserved.<BR> > > This program and the accompanying materials are licensed and made > > available under the terms and conditions of the BSD License which > > accompanies this distribution. The full text of the license may be > > found at @@ -80,23 +80,55 @@ ShadowPeiCore ( > > IN PEI_CORE_INSTANCE *PrivateData > > ) > > { > > - EFI_PEI_FILE_HANDLE PeiCoreFileHandle; > > - EFI_PHYSICAL_ADDRESS EntryPoint; > > - EFI_STATUS Status; > > - UINT32 AuthenticationState; > > + EFI_PEI_FILE_HANDLE PeiCoreFileHandle; > > + EFI_PHYSICAL_ADDRESS EntryPoint; > > + EFI_STATUS Status; > > + UINT32 AuthenticationState; > > + UINTN Index; > > + EFI_PEI_CORE_FV_LOCATION_PPI *PeiCoreFvLocationPpi; > > > > PeiCoreFileHandle = NULL; > > > > // > > - // Find the PEI Core in the BFV > > + // Find the PEI Core either from EFI_PEI_CORE_FV_LOCATION_PPI > > + indicated > > FV or BFV > > // > > - Status = PrivateData->Fv[0].FvPpi->FindFileByType ( > > - PrivateData->Fv[0].FvPpi, > > - EFI_FV_FILETYPE_PEI_CORE, > > - PrivateData->Fv[0].FvHandle, > > - &PeiCoreFileHandle > > - ); > > - ASSERT_EFI_ERROR (Status); > > + Status = PeiServicesLocatePpi ( > > + &gEfiPeiCoreFvLocationPpiGuid, > > + 0, > > + NULL, > > + (VOID **) &PeiCoreFvLocationPpi > > + ); > > + if (!EFI_ERROR (Status) && (PeiCoreFvLocationPpi->PeiCoreFvLocation > > + != > > NULL)) { > > + // > > + // If PeiCoreFvLocation present, the PEI Core should be found > > + from indicated > > FV. > > + // > > + for (Index = 0; Index < PrivateData->FvCount; Index ++) { > > + if ((UINT32) PrivateData->Fv[Index].FvHandle != (UINT32) > > PeiCoreFvLocationPpi->PeiCoreFvLocation) { > > I think the UINT32 type cast is not necessary. FvHandle and PeiCoreFvLocation > are actually type of VOID*. Do you encounter any compiler error here? > > Regards, > Jian > > > + continue; > > + } > > + Status = PrivateData->Fv[Index].FvPpi->FindFileByType ( > > + > > PrivateData->Fv[Index].FvPpi, > > + EFI_FV_FILETYPE_PEI_CORE, > > + > > PrivateData->Fv[Index].FvHandle, > > + &PeiCoreFileHandle > > + ); > > + if (!EFI_ERROR (Status)) { > > + break; > > + } > > + } > > + ASSERT (Index < PrivateData->FvCount); } else { > > + // > > + // Find PEI Core from BFV > > + // > > + Status = PrivateData->Fv[0].FvPpi->FindFileByType ( > > + PrivateData->Fv[0].FvPpi, > > + EFI_FV_FILETYPE_PEI_CORE, > > + PrivateData->Fv[0].FvHandle, > > + &PeiCoreFileHandle > > + ); > > + ASSERT_EFI_ERROR (Status); > > + } > > > > // > > // Shadow PEI Core into memory so it will run faster diff --git > > a/MdeModulePkg/Core/Pei/PeiMain.h > b/MdeModulePkg/Core/Pei/PeiMain.h > > index 322e7cd845..38542ab072 100644 > > --- a/MdeModulePkg/Core/Pei/PeiMain.h > > +++ b/MdeModulePkg/Core/Pei/PeiMain.h > > @@ -1,7 +1,7 @@ > > /** @file > > Definition of Pei Core Structures and Services > > > > -Copyright (c) 2006 - 2018, Intel Corporation. All rights > > reserved.<BR> > > +Copyright (c) 2006 - 2019, Intel Corporation. All rights > > +reserved.<BR> > > This program and the accompanying materials are licensed and made > > available under the terms and conditions of the BSD License which > > accompanies this distribution. The full text of the license may be > > found at @@ -49,6 +49,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS > OF > > ANY KIND, EITHER EXPRESS OR IMPLIED. > > #include <Guid/FirmwareFileSystem2.h> #include > > <Guid/FirmwareFileSystem3.h> #include <Guid/AprioriFileName.h> > > +#include <Ppi/PeiCoreFvLocation.h> > > > > /// > > /// It is an FFS type extension used for PeiFindFileEx. It indicates > > current diff --git a/MdeModulePkg/Core/Pei/PeiMain.inf > > b/MdeModulePkg/Core/Pei/PeiMain.inf > > index 140c4444b1..5bab2aab8c 100644 > > --- a/MdeModulePkg/Core/Pei/PeiMain.inf > > +++ b/MdeModulePkg/Core/Pei/PeiMain.inf > > @@ -6,7 +6,7 @@ > > # 2) Dispatch PEIM from discovered FV. > > # 3) Handoff control to DxeIpl to load DXE core and enter DXE phase. > > # > > -# Copyright (c) 2006 - 2018, Intel Corporation. All rights > > reserved.<BR> > > +# Copyright (c) 2006 - 2019, Intel Corporation. All rights > > +reserved.<BR> > > # > > # This program and the accompanying materials # are licensed and > > made available under the terms and conditions of the BSD License @@ > > -102,6 +102,7 @@ > > gEfiTemporaryRamDonePpiGuid ## > SOMETIMES_CONSUMES > > gEfiPeiReset2PpiGuid ## SOMETIMES_CONSUMES > > gEfiSecHobDataPpiGuid ## SOMETIMES_CONSUMES > > + gEfiPeiCoreFvLocationPpiGuid ## SOMETIMES_CONSUMES > > > > [Pcd] > > gEfiMdeModulePkgTokenSpaceGuid.PcdPeiCoreMaxPeiStackSize > ## > > CONSUMES > > -- > > 2.13.3.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel