]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFsp2Pkg/Tools/GenCfgOpt.py
IntelFsp2Pkg/FspSecCore: Add FSP-I API for SMM support.
[mirror_edk2.git] / IntelFsp2Pkg / Tools / GenCfgOpt.py
index c4fb1f1bb24013c59a35dca9b98ea23da6e32e22..128b8965926caf390c8a0aca8297c6e65a42773e 100644 (file)
@@ -953,8 +953,8 @@ EndList
         return NoFileChange\r
 \r
     def CreateSplitUpdTxt (self, UpdTxtFile):\r
-        GuidList = ['FSP_T_UPD_TOOL_GUID','FSP_M_UPD_TOOL_GUID','FSP_S_UPD_TOOL_GUID']\r
-        SignatureList = ['0x545F', '0x4D5F','0x535F']        #  _T, _M, and _S signature for FSPT, FSPM, FSPS\r
+        GuidList = ['FSP_T_UPD_TOOL_GUID','FSP_M_UPD_TOOL_GUID','FSP_S_UPD_TOOL_GUID','FSP_I_UPD_TOOL_GUID']\r
+        SignatureList = ['0x545F', '0x4D5F','0x535F','0x495F']        #  _T, _M, _S and _I signature for FSPT, FSPM, FSPS, FSPI\r
         for Index in range(len(GuidList)):\r
             UpdTxtFile = ''\r
             FvDir = self._FvDir\r
@@ -1288,19 +1288,21 @@ EndList
                    Chars.append(chr(Value & 0xFF))\r
                    Value = Value >> 8\r
                SignatureStr = ''.join(Chars)\r
-               # Signature will be _T / _M / _S for FSPT / FSPM / FSPS accordingly\r
+               # Signature will be _T / _M / _S / _I for FSPT / FSPM / FSPS /FSPI accordingly\r
                if '_T' in SignatureStr[6:6+2]:\r
                    TxtBody.append("#define FSPT_UPD_SIGNATURE               %s        /* '%s' */\n\n" % (Item['value'], SignatureStr))\r
                elif '_M' in SignatureStr[6:6+2]:\r
                    TxtBody.append("#define FSPM_UPD_SIGNATURE               %s        /* '%s' */\n\n" % (Item['value'], SignatureStr))\r
                elif '_S' in SignatureStr[6:6+2]:\r
                    TxtBody.append("#define FSPS_UPD_SIGNATURE               %s        /* '%s' */\n\n" % (Item['value'], SignatureStr))\r
+               elif '_I' in SignatureStr[6:6+2]:\r
+                   TxtBody.append("#define FSPI_UPD_SIGNATURE               %s        /* '%s' */\n\n" % (Item['value'], SignatureStr))\r
         TxtBody.append("\n")\r
 \r
         for Region in ['UPD']:\r
             UpdOffsetTable = []\r
-            UpdSignature = ['0x545F', '0x4D5F', '0x535F']   #['_T', '_M', '_S'] signature for FSPT, FSPM, FSPS\r
-            UpdStructure = ['FSPT_UPD', 'FSPM_UPD', 'FSPS_UPD']\r
+            UpdSignature = ['0x545F', '0x4D5F', '0x535F', '0x495F']   #['_T', '_M', '_S', '_I'] signature for FSPT, FSPM, FSPS, FSPI\r
+            UpdStructure = ['FSPT_UPD', 'FSPM_UPD', 'FSPS_UPD', 'FSPI_UPD']\r
             for Item in self._CfgItemList:\r
                 if Item["cname"] == 'Signature' and Item["value"][0:6] in UpdSignature:\r
                     Item["offset"] = 0 # re-initialize offset to 0 when new UPD structure starting\r
@@ -1393,11 +1395,12 @@ EndList
         HeaderTFileName = 'FsptUpd.h'\r
         HeaderMFileName = 'FspmUpd.h'\r
         HeaderSFileName = 'FspsUpd.h'\r
+        HeaderIFileName = 'FspiUpd.h'\r
 \r
-        UpdRegionCheck = ['FSPT', 'FSPM', 'FSPS']     # FSPX_UPD_REGION\r
-        UpdConfigCheck = ['FSP_T', 'FSP_M', 'FSP_S']  # FSP_X_CONFIG, FSP_X_TEST_CONFIG, FSP_X_RESTRICTED_CONFIG\r
-        UpdSignatureCheck = ['FSPT_UPD_SIGNATURE', 'FSPM_UPD_SIGNATURE', 'FSPS_UPD_SIGNATURE']\r
-        ExcludedSpecificUpd = ['FSPT_ARCH_UPD', 'FSPM_ARCH_UPD', 'FSPS_ARCH_UPD']\r
+        UpdRegionCheck = ['FSPT', 'FSPM', 'FSPS', 'FSPI']     # FSPX_UPD_REGION\r
+        UpdConfigCheck = ['FSP_T', 'FSP_M', 'FSP_S', 'FSP_I']  # FSP_X_CONFIG, FSP_X_TEST_CONFIG, FSP_X_RESTRICTED_CONFIG\r
+        UpdSignatureCheck = ['FSPT_UPD_SIGNATURE', 'FSPM_UPD_SIGNATURE', 'FSPS_UPD_SIGNATURE', 'FSPI_UPD_SIGNATURE']\r
+        ExcludedSpecificUpd = ['FSPT_ARCH_UPD', 'FSPM_ARCH_UPD', 'FSPS_ARCH_UPD', 'FSPI_ARCH_UPD']\r
         ExcludedSpecificUpd1 = ['FSPT_ARCH2_UPD', 'FSPM_ARCH2_UPD', 'FSPS_ARCH2_UPD']\r
 \r
         IncLines = []\r
@@ -1420,6 +1423,9 @@ EndList
             elif UpdRegionCheck[item] == 'FSPS':\r
                 HeaderFd = open(os.path.join(FvDir, HeaderSFileName), "w")\r
                 FileBase = os.path.basename(os.path.join(FvDir, HeaderSFileName))\r
+            elif UpdRegionCheck[item] == 'FSPI':\r
+                HeaderFd = open(os.path.join(FvDir, HeaderIFileName), "w")\r
+                FileBase = os.path.basename(os.path.join(FvDir, HeaderIFileName))\r
             FileName = FileBase.replace(".", "_").upper()\r
             HeaderFd.write("%s\n"   % (__copyright_h__ % date.today().year))\r
             HeaderFd.write("#ifndef __%s__\n"   % FileName)\r
@@ -1696,7 +1702,7 @@ EndList
 \r
 \r
 def Usage():\r
-    print ("GenCfgOpt Version 0.57")\r
+    print ("GenCfgOpt Version 0.58")\r
     print ("Usage:")\r
     print ("    GenCfgOpt  UPDTXT  PlatformDscFile BuildFvDir                 [-D Macros]")\r
     print ("    GenCfgOpt  HEADER  PlatformDscFile BuildFvDir  InputHFile     [-D Macros]")\r