public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Chiu, Chasel" <chasel.chiu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Chiu, Chasel" <chasel.chiu@intel.com>
Cc: "Desimone, Nathaniel L" <nathaniel.l.desimone@intel.com>,
	"Zeng, Star" <star.zeng@intel.com>
Subject: Re: [edk2-devel] [PATCH v2] IntelFsp2Pkg: FSPI_UPD is not mandatory.
Date: Thu, 28 Jul 2022 16:46:04 +0000	[thread overview]
Message-ID: <BN9PR11MB54830D4E1D7CCA35ADA4A4DBE6969@BN9PR11MB5483.namprd11.prod.outlook.com> (raw)
In-Reply-To: <1705E66000A71BDC.1380@groups.io>


Patch merged: https://github.com/tianocore/edk2/commit/3eca64f157c340f9bbf552d89a69698a3090c080

Thanks,
Chasel


> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chiu, Chasel
> Sent: Wednesday, July 27, 2022 10:15 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>; Zeng, Star <star.zeng@intel.com>
> Subject: [edk2-devel] [PATCH v2] IntelFsp2Pkg: FSPI_UPD is not mandatory.
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3993
> FSPI_UPD is required only When platforms implemented FSP_I component.
> Updated the scripts to allow FSPI_UPD not present scenario.
> Also fixed FSP_GLOBAL_DATA structure alignment issue and unnecessary non-
> backward compatibility change in previous FSP_I patch.
> 
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> ---
>  IntelFsp2Pkg/Include/FspGlobalData.h | 43 +++++++++++++++++++++-------------
> ---------
>  IntelFsp2Pkg/Tools/GenCfgOpt.py      | 14 ++++++++++----
>  2 files changed, 31 insertions(+), 26 deletions(-)
> 
> diff --git a/IntelFsp2Pkg/Include/FspGlobalData.h
> b/IntelFsp2Pkg/Include/FspGlobalData.h
> index cf94f7b6a5..32c6d460e4 100644
> --- a/IntelFsp2Pkg/Include/FspGlobalData.h
> +++ b/IntelFsp2Pkg/Include/FspGlobalData.h
> @@ -42,58 +42,57 @@ typedef struct  {
>  #define FSP_PERFORMANCE_DATA_TIMER_MASK  0xFFFFFFFFFFFFFF  typedef
> struct  {-  UINT32    Signature;-  UINT8     Version;-  UINT8     Reserved1[3];+
> UINT32             Signature;+  UINT8              Version;+  UINT8              Reserved1[3];
> ///   /// Offset 0x08   ///-  UINTN     CoreStack;-  UINTN     Reserved2;+  UINTN
> CoreStack;+  VOID               *SmmInitUpdPtr;   ///   /// IA32: Offset 0x10; X64:
> Offset 0x18   ///-  UINT32    StatusCode;-  UINT8     ApiIdx;+  UINT32
> StatusCode;+  UINT8              ApiIdx;   ///   /// 0: FSP in API mode; 1: FSP in
> DISPATCH mode   ///-  UINT8     FspMode;-  UINT8     OnSeparateStack;-  UINT8
> Reserved3;-  UINT32    NumberOfPhases;-  UINT32    PhasesExecuted;-  UINT32
> Reserved4[8];+  UINT8              FspMode;+  UINT8              OnSeparateStack;+
> UINT8              Reserved2;+  UINT32             NumberOfPhases;+  UINT32
> PhasesExecuted;+  UINT32             Reserved3[8];   ///   /// IA32: Offset 0x40; X64:
> Offset 0x48   /// Start of UINTN and pointer section-  /// All UINTN and pointer
> members must be put in this section-  /// except CoreStack and Reserved2. In
> addition, the number of-  /// UINTN and pointer members must be even for
> natural alignment-  /// in both IA32 and X64.+  /// All UINTN and pointer
> members are put in this section+  /// for maintaining natural alignment for both
> IA32 and X64 builds.   ///   FSP_PLAT_DATA      PlatformData;   VOID
> *TempRamInitUpdPtr;   VOID               *MemoryInitUpdPtr;   VOID
> *SiliconInitUpdPtr;-  VOID               *SmmInitUpdPtr;   ///-  /// IA32: Offset 0x68;
> X64: Offset 0x98+  /// IA32: Offset 0x64; X64: Offset 0x90   /// To store function
> parameters pointer   /// so it can be retrieved after stack switched.   ///   VOID
> *FunctionParameterPtr;   FSP_INFO_HEADER    *FspInfoHeader;   VOID
> *UpdDataPtr;-  UINTN              Reserved5;   ///   /// End of UINTN and pointer
> section+  /// At this point, next field offset must be either *0h or *8h to+  ///
> meet natural alignment requirement.   ///-  UINT8              Reserved6[16];+
> UINT8              Reserved4[16];   UINT32             PerfSig;   UINT16             PerfLen;-
> UINT16             Reserved7;+  UINT16             Reserved5;   UINT32             PerfIdx;+
> UINT32             Reserved6;   UINT64             PerfData[32]; } FSP_GLOBAL_DATA;
> diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py
> b/IntelFsp2Pkg/Tools/GenCfgOpt.py
> index 128b896592..71c48f10e0 100644
> --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py
> +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py
> @@ -959,8 +959,13 @@ EndList
>              UpdTxtFile = ''             FvDir = self._FvDir             if GuidList[Index] not in
> self._MacroDict:-                self.Error = "%s definition is missing in DSC file" %
> (GuidList[Index])-                return 1+                NoFSPI = False+                if
> GuidList[Index] == 'FSP_I_UPD_TOOL_GUID':+                    NoFSPI = True+
> continue+                else:+                    self.Error = "%s definition is missing in DSC
> file" % (GuidList[Index])+                    return 1              if UpdTxtFile == '':
> UpdTxtFile = os.path.join(FvDir, self._MacroDict[GuidList[Index]] + '.txt')@@ -
> 1296,7 +1301,8 @@ EndList
>                 elif '_S' in SignatureStr[6:6+2]:                    TxtBody.append("#define
> FSPS_UPD_SIGNATURE               %s        /* '%s' */\n\n" % (Item['value'],
> SignatureStr))                elif '_I' in SignatureStr[6:6+2]:-
> TxtBody.append("#define FSPI_UPD_SIGNATURE               %s        /* '%s' */\n\n"
> % (Item['value'], SignatureStr))+                   if NoFSPI == True:+
> TxtBody.append("#define FSPI_UPD_SIGNATURE               %s        /* '%s' */\n\n"
> % (Item['value'], SignatureStr))         TxtBody.append("\n")          for Region in
> ['UPD']:@@ -1702,7 +1708,7 @@ EndList
>    def Usage():-    print ("GenCfgOpt Version 0.58")+    print ("GenCfgOpt Version
> 0.59")     print ("Usage:")     print ("    GenCfgOpt  UPDTXT  PlatformDscFile
> BuildFvDir                 [-D Macros]")     print ("    GenCfgOpt  HEADER
> PlatformDscFile BuildFvDir  InputHFile     [-D Macros]")--
> 2.35.0.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#91933): https://edk2.groups.io/g/devel/message/91933
> Mute This Topic: https://groups.io/mt/92665008/1777047
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [chasel.chiu@intel.com] -=-
> =-=-=-=-=
> 


           reply	other threads:[~2022-07-28 16:46 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <1705E66000A71BDC.1380@groups.io>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BN9PR11MB54830D4E1D7CCA35ADA4A4DBE6969@BN9PR11MB5483.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox