Looks good to me. 

Reviewed-by: Giri P Mudusuru <[email protected]>


> -----Original Message-----
> From: Yao, Jiewen
> Sent: Thursday, June 23, 2016 8:21 PM
> To: Yarlagadda, Satya P <[email protected]>; edk2-
> [email protected]
> Cc: Mudusuru, Giri P <[email protected]>
> Subject: RE: [PATCH] IntelFsp2Pkg-BaseFspCommonLib: Add funtion to return
> the reset required status
> 
> Reviewed-by: [email protected]
> 
> > -----Original Message-----
> > From: Yarlagadda, Satya P
> > Sent: Friday, June 24, 2016 10:38 AM
> > To: [email protected]
> > Cc: Mudusuru, Giri P <[email protected]>; Yao, Jiewen
> > <[email protected]>
> > Subject: [PATCH] IntelFsp2Pkg-BaseFspCommonLib: Add funtion to return the
> > reset required status
> >
> > Added new funtion in FSPCommonLib to update the FSP API return status
> > with
> > the requested return status and return the control to the boot loader.
> >
> > Cc: Giri P Mudusuru <[email protected]>
> > Cc: Jiewen Yao <[email protected]>
> > Contributed-under: TianoCore Contribution Agreement 1.0
> > Signed-off-by: Satya Yarlagadda <[email protected]>
> > ---
> >  IntelFsp2Pkg/Include/Library/FspCommonLib.h        | 11 ++++++++
> >  .../Library/BaseFspCommonLib/BaseFspCommonLib.inf  |  1 +
> >  .../Library/BaseFspCommonLib/FspCommonLib.c        | 29
> > ++++++++++++++++++++++
> >  3 files changed, 41 insertions(+)
> >
> > diff --git a/IntelFsp2Pkg/Include/Library/FspCommonLib.h
> > b/IntelFsp2Pkg/Include/Library/FspCommonLib.h
> > index e13d0c3..231f1e4 100644
> > --- a/IntelFsp2Pkg/Include/Library/FspCommonLib.h
> > +++ b/IntelFsp2Pkg/Include/Library/FspCommonLib.h
> > @@ -309,4 +309,15 @@ GetFspCarSize (
> >    VOID
> >    );
> >
> > +/**
> > +  This function updates the return status of the FSP API with requested
> > reset type and returns to Boot Loader.
> > +
> > +  @param[in] FspResetType     Reset type that needs to returned as API
> > return status
> > +
> > +**/
> > +VOID
> > +EFIAPI
> > +FspApiReturnStatusReset (
> > +  IN UINT32   FspResetType
> > +  );
> >  #endif
> > diff --git
> > a/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
> > b/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
> > index 0b0741b..df8803a 100644
> > --- a/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
> > +++ b/IntelFsp2Pkg/Library/BaseFspCommonLib/BaseFspCommonLib.inf
> > @@ -28,6 +28,7 @@
> >
> >  [LibraryClasses]
> >    BaseMemoryLib
> > +  FspSwitchStackLib
> >
> >  [Pcd]
> >    gIntelFsp2PkgTokenSpaceGuid.PcdGlobalDataPointerAddress      ##
> > CONSUMES
> > diff --git a/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c
> > b/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c
> > index 151b189..0c5f0b3 100644
> > --- a/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c
> > +++ b/IntelFsp2Pkg/Library/BaseFspCommonLib/FspCommonLib.c
> > @@ -18,6 +18,7 @@
> >  #include <FspGlobalData.h>
> >  #include <FspEas.h>
> >  #include <FspDataTable.h>
> > +#include <Library/FspSwitchStackLib.h>
> >
> >  #pragma pack(1)
> >
> > @@ -544,3 +545,31 @@ GetFspCarSize (
> >    }
> >    return CarSize;
> >  }
> > +
> > +/**
> > +  This function updates the return status of the FSP API with requested
> > reset type and returns to Boot Loader.
> > +
> > +  @param[in] FspResetType     Reset type that needs to returned as API
> > return status
> > +
> > +**/
> > +VOID
> > +EFIAPI
> > +FspApiReturnStatusReset (
> > +  IN UINT32   FspResetType
> > +  )
> > +{
> > +  volatile BOOLEAN  LoopUntilReset;
> > +
> > +  LoopUntilReset = TRUE;
> > +  DEBUG ((DEBUG_INFO, "FSP returning control to Bootloader with reset
> > required return status %x\n",FspResetType));
> > +  ///
> > +  /// Below code is not an infinite loop.The control will go back to API
> > calling function in BootLoader each time BootLoader
> > +  /// calls the FSP API without honoring the reset request by FSP
> > +  ///
> > +  do {
> > +    SetFspApiReturnStatus ((EFI_STATUS)FspResetType);
> > +    Pei2LoaderSwitchStack ();
> > +    DEBUG ((DEBUG_ERROR, "!!!ERROR: FSP has requested BootLoader
> > for reset. But BootLoader has not honored the reset\n"));
> > +    DEBUG ((DEBUG_ERROR, "!!!ERROR: Please add support in
> > BootLoader to honour the reset request from FSP\n"));
> > +  } while (LoopUntilReset);
> > +}
> > --
> > 2.9.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to