equilivant is a typo? > -----Original Message----- > From: Desimone, Nathaniel L <[email protected]> > Sent: Wednesday, May 20, 2020 12:12 PM > To: Chiu, Chasel <[email protected]>; [email protected] > Cc: Ma, Maurice <[email protected]>; Zeng, Star <[email protected]> > Subject: RE: [PATCH] IntelFsp2Pkg: Add FunctionParametePtr to > FspGlobalData. > > Reviewed-by: Nate DeSimone <[email protected]> > > > -----Original Message----- > > From: Chiu, Chasel <[email protected]> > > Sent: Tuesday, May 19, 2020 8:34 PM > > To: [email protected] > > Cc: Ma, Maurice <[email protected]>; Desimone, Nathaniel L > > <[email protected]>; Zeng, Star <[email protected]> > > Subject: [PATCH] IntelFsp2Pkg: Add FunctionParametePtr to FspGlobalData. > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2726 > > > > When FSP switching stack and calling bootloader functions, the > > function parameter in stack may not be accessible easily. > > We can store the function parameter pointer to FspGlobalData and > > retrieve it after stack switched. > > > > Also need to add Loader2PeiSwitchStack () to header file as public > > function for platform FSP code to consume. > > > > Cc: Maurice Ma <[email protected]> > > Cc: Nate DeSimone <[email protected]> > > Cc: Star Zeng <[email protected]> > > Signed-off-by: Chasel Chiu <[email protected]> > > --- > > IntelFsp2Pkg/Include/FspGlobalData.h | 12 ++++++++++-- > > IntelFsp2Pkg/Include/Library/FspSwitchStackLib.h | 18 > > +++++++++++++++++- > > 2 files changed, 27 insertions(+), 3 deletions(-) > > > > diff --git a/IntelFsp2Pkg/Include/FspGlobalData.h > > b/IntelFsp2Pkg/Include/FspGlobalData.h > > index 5bde316893..dba9b48e1a 100644 > > --- a/IntelFsp2Pkg/Include/FspGlobalData.h > > +++ b/IntelFsp2Pkg/Include/FspGlobalData.h > > @@ -52,12 +52,20 @@ typedef struct { > > VOID *MemoryInitUpdPtr; > > VOID *SiliconInitUpdPtr; > > UINT8 ApiIdx; > > - UINT8 FspMode; // 0: FSP in API mode; 1: FSP in > DISPATCH mode > > + /// > > + /// 0: FSP in API mode; 1: FSP in DISPATCH mode > > + /// > > + UINT8 FspMode; > > UINT8 OnSeparateStack; > > UINT8 Reserved3; > > UINT32 NumberOfPhases; > > UINT32 PhasesExecuted; > > - UINT8 Reserved4[20]; > > + /// > > + /// To store function parameters pointer > > + /// so it can be retrieved after stack switched. > > + /// > > + VOID *FunctionParameterPtr; > > + UINT8 Reserved4[16]; > > UINT32 PerfSig; > > UINT16 PerfLen; > > UINT16 Reserved5; > > diff --git a/IntelFsp2Pkg/Include/Library/FspSwitchStackLib.h > > b/IntelFsp2Pkg/Include/Library/FspSwitchStackLib.h > > index 0c76e9f022..bed2a5d677 100644 > > --- a/IntelFsp2Pkg/Include/Library/FspSwitchStackLib.h > > +++ b/IntelFsp2Pkg/Include/Library/FspSwitchStackLib.h > > @@ -1,6 +1,6 @@ > > /** @file > > > > - Copyright (c) 2014, Intel Corporation. All rights reserved.<BR> > > + Copyright (c) 2014 - 2020, Intel Corporation. All rights > > + reserved.<BR> > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > **/ > > @@ -36,4 +36,20 @@ Pei2LoaderSwitchStack ( > > VOID > > ); > > > > +/** > > + > > + This function is equilivant to Pei2LoaderSwitchStack () but just > > + indicates the stack after switched is FSP stack. > > + > > + @return ReturnKey After switching to the saved stack, > > + this value will be saved in eax before > returning. > > + > > + > > +**/ > > +UINT32 > > +EFIAPI > > +Loader2PeiSwitchStack ( > > + VOID > > + ); > > + > > #endif > > -- > > 2.13.3.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#59933): https://edk2.groups.io/g/devel/message/59933 Mute This Topic: https://groups.io/mt/74342444/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
