Hi Chasel, There is a spelling error in your commit message. IntelFsp2WrapprPkg should be IntelFsp2WrapperPkg. Please fix this during the push. No need to send a 2nd review.
With that change... Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > -----Original Message----- > From: Chiu, Chasel <chasel.c...@intel.com> > Sent: Tuesday, October 25, 2022 1:56 PM > To: devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Zeng, Star <star.z...@intel.com> > Subject: [PATCH] IntelFsp2WrapprPkg: Check header revision for MultiPhase > support. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4119 > > Earlier version of FSP header may not have MultiPhase fields present in the > FspInfoHeader so the handler should verify header revision before accessing > the MultiPhase fields from the header. > > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > Signed-off-by: Chasel Chiu <chasel.c...@intel.com> > --- > > IntelFsp2WrapperPkg/Library/FspWrapperMultiPhaseProcessLib/PeiFspWrapperMultiPhaseProcessLib.c > | 30 ++++++++++++++++++++++++------ > 1 file changed, 24 insertions(+), 6 deletions(-) > > diff --git > a/IntelFsp2WrapperPkg/Library/FspWrapperMultiPhaseProcessLib/PeiFspWrapperMultiPhaseProcessLib.c > > b/IntelFsp2WrapperPkg/Library/FspWrapperMultiPhaseProcessLib/PeiFspWrapperMultiPhaseProcessLib.c > index 1248accf87..0f524910d5 100644 > --- > a/IntelFsp2WrapperPkg/Library/FspWrapperMultiPhaseProcessLib/PeiFspWrapperMultiPhaseProcessLib.c > +++ > b/IntelFsp2WrapperPkg/Library/FspWrapperMultiPhaseProcessLib/PeiFspWrapperMultiPhaseProcessLib.c > @@ -73,15 +73,27 @@ CallFspMultiPhaseEntry ( > // > // FSP_MULTI_PHASE_INIT and FSP_MULTI_PHASE_SI_INIT API functions having > same prototype. > // > - UINTN FspMultiPhaseApiEntry; > - UINTN FspMultiPhaseApiOffset; > - EFI_STATUS Status; > - BOOLEAN InterruptState; > + UINTN FspMultiPhaseApiEntry; > + UINTN FspMultiPhaseApiOffset; > + EFI_STATUS Status; > + BOOLEAN InterruptState; > + BOOLEAN IsVariableServiceRequest; > + FSP_MULTI_PHASE_PARAMS *FspMultiPhaseParamsPtr; > + > + FspMultiPhaseParamsPtr = (FSP_MULTI_PHASE_PARAMS *)FspMultiPhaseParams; > + IsVariableServiceRequest = FALSE; > + if ((FspMultiPhaseParamsPtr->MultiPhaseAction == > EnumMultiPhaseGetVariableRequestInfo) || > + (FspMultiPhaseParamsPtr->MultiPhaseAction == > EnumMultiPhaseCompleteVariableRequest)) > + { > + IsVariableServiceRequest = TRUE; > + } > > if (ComponentIndex == FspMultiPhaseMemInitApiIndex) { > FspHeader = (FSP_INFO_HEADER *)FspFindFspHeader (PcdGet32 > (PcdFspmBaseAddress)); > if (FspHeader == NULL) { > return EFI_DEVICE_ERROR; > + } else if (FspHeader->SpecVersion < 0x24) { > + return EFI_UNSUPPORTED; > } > > FspMultiPhaseApiOffset = FspHeader->FspMultiPhaseMemInitEntryOffset; > @@ -89,6 +101,10 @@ CallFspMultiPhaseEntry ( > FspHeader = (FSP_INFO_HEADER *)FspFindFspHeader (PcdGet32 > (PcdFspsBaseAddress)); > if (FspHeader == NULL) { > return EFI_DEVICE_ERROR; > + } else if (FspHeader->SpecVersion < 0x22) { > + return EFI_UNSUPPORTED; > + } else if ((FspHeader->SpecVersion < 0x24) && (IsVariableServiceRequest > == TRUE)) { > + return EFI_UNSUPPORTED; > } > > FspMultiPhaseApiOffset = FspHeader->FspMultiPhaseSiInitEntryOffset; > @@ -120,7 +136,8 @@ CallFspMultiPhaseEntry ( > @param[in] FspHobListPtr - Pointer to FSP HobList (valid after > FSP-M completed) > @param[in] ComponentIndex - FSP Component which executing MultiPhase > initialization. > > - @retval EFI_UNSUPPORTED FSP Wrapper cannot support the specific variable > request > + @retval EFI_UNSUPPORTED FSP Wrapper cannot support the specific variable > request, > + or FSP does not support VariableService > @retval EFI_STATUS Return FSP returned status > > **/ > @@ -287,7 +304,8 @@ FspWrapperVariableRequestHandler ( > @param[in] FspHobListPtr - Pointer to FSP HobList (valid after > FSP-M completed) > @param[in] ComponentIndex - FSP Component which executing MultiPhase > initialization. > > - @retval EFI_STATUS Always return EFI_SUCCESS > + @retval EFI_UNSUPPORTED Specific MultiPhase action was not supported. > + @retval EFI_SUCCESS MultiPhase action were completed successfully. > > **/ > EFI_STATUS > -- > 2.35.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#95572): https://edk2.groups.io/g/devel/message/95572 Mute This Topic: https://groups.io/mt/94568053/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-