Reviewed-by: Star Zeng <star.z...@intel.com> > -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of > Chiu, Chasel > Sent: Thursday, September 5, 2019 12:27 PM > To: devel@edk2.groups.io > Cc: Dong, Eric <eric.d...@intel.com>; Ni, Ray <ray...@intel.com>; Laszlo > Ersek <ler...@redhat.com> > Subject: [edk2-devel] [PATCH v2] UefiCpuPkg: support single > EFI_PEI_CORE_FV_LOCATION_PPI in PpiList > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2153 > > Current logic will skip searching EFI_PEI_CORE_FV_LOCATION_PPI when the > PPI in PpiList having EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST flag, but > platform may pass single PPI in PpiList that should be supported. > > Changed the logic to verify PpiList first before checking > EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST flag. > > Test: Verified both single EFI_PEI_CORE_FV_LOCATION_PPI and multiple > PPIs in PpiList cases and both can boot with the PeiCore > specified by EFI_PEI_CORE_FV_LOCATION_PPI. > > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Signed-off-by: Chasel Chiu <chasel.c...@intel.com> > --- > UefiCpuPkg/SecCore/SecMain.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/UefiCpuPkg/SecCore/SecMain.c > b/UefiCpuPkg/SecCore/SecMain.c index 66c952b897..5d5e7f17dc 100644 > --- a/UefiCpuPkg/SecCore/SecMain.c > +++ b/UefiCpuPkg/SecCore/SecMain.c > @@ -238,9 +238,8 @@ SecStartupPhase2( > // is enabled. > // > if (PpiList != NULL) { > - for (Index = 0; > - (PpiList[Index].Flags & EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) != > EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST; > - Index++) { > + Index = 0; > + do { > if (CompareGuid (PpiList[Index].Guid, &gEfiPeiCoreFvLocationPpiGuid) > && > (((EFI_PEI_CORE_FV_LOCATION_PPI *) PpiList[Index].Ppi)- > >PeiCoreFvLocation != 0) > ) { > @@ -256,12 +255,12 @@ SecStartupPhase2( > break; > } else { > // > - // PeiCore not found > + // Invalid PeiCore FV provided by platform > // > CpuDeadLoop (); > } > } > - } > + } while ((PpiList[Index++].Flags & > + EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST) != > + EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST); > } > // > // If EFI_PEI_CORE_FV_LOCATION_PPI not found, try to locate PeiCore > from BFV. > -- > 2.13.3.windows.1 > > >
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#46869): https://edk2.groups.io/g/devel/message/46869 Mute This Topic: https://groups.io/mt/33150264/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-