* [PATCH] IntelFsp2Pkg: FSPI_UPD is not mandatory.
@ 2022-07-27 23:27 Chiu, Chasel
0 siblings, 0 replies; only message in thread
From: Chiu, Chasel @ 2022-07-27 23:27 UTC (permalink / raw)
To: devel; +Cc: Chasel Chiu, Nate DeSimone, Star Zeng
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 | 5 +++--
IntelFsp2Pkg/Tools/GenCfgOpt.py | 14 ++++++++++----
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/IntelFsp2Pkg/Include/FspGlobalData.h b/IntelFsp2Pkg/Include/FspGlobalData.h
index cf94f7b6a5..d1b3dfbfc4 100644
--- a/IntelFsp2Pkg/Include/FspGlobalData.h
+++ b/IntelFsp2Pkg/Include/FspGlobalData.h
@@ -76,15 +76,15 @@ typedef struct {
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;
+ VOID *SmmInitUpdPtr;
UINTN Reserved5;
///
/// End of UINTN and pointer section
@@ -94,6 +94,7 @@ typedef struct {
UINT16 PerfLen;
UINT16 Reserved7;
UINT32 PerfIdx;
+ UINT32 Reserved8;
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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-27 23:27 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-27 23:27 [PATCH] IntelFsp2Pkg: FSPI_UPD is not mandatory Chiu, Chasel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox