]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools: Add a keyword FvNameString in FDF
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index ffc54abc847f80d9742d3958e20584f38cbc22ed..83d3e1935e371e179e5dc73d615f5910060b5668 100644 (file)
@@ -2068,9 +2068,12 @@ class FdfParser:
             if not (self.__GetBlockStatement(FvObj) or self.__GetFvBaseAddress(FvObj) or \r
                 self.__GetFvForceRebase(FvObj) or self.__GetFvAlignment(FvObj) or \r
                 self.__GetFvAttributes(FvObj) or self.__GetFvNameGuid(FvObj) or \r
-                self.__GetFvExtEntryStatement(FvObj)):\r
+                self.__GetFvExtEntryStatement(FvObj) or self.__GetFvNameString(FvObj)):\r
                 break\r
 \r
+        if FvObj.FvNameString == 'TRUE' and not FvObj.FvNameGuid:\r
+            raise Warning("FvNameString found but FvNameGuid was not found", self.FileName, self.CurrentLineNumber)\r
+\r
         self.__GetAprioriSection(FvObj, FvObj.DefineVarDict.copy())\r
         self.__GetAprioriSection(FvObj, FvObj.DefineVarDict.copy())\r
 \r
@@ -2225,6 +2228,21 @@ class FdfParser:
 \r
         return True\r
 \r
+    def __GetFvNameString(self, FvObj):\r
+\r
+        if not self.__IsKeyword( "FvNameString"):\r
+            return False\r
+\r
+        if not self.__IsToken( "="):\r
+            raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+\r
+        if not self.__GetNextToken() or self.__Token not in ('TRUE', 'FALSE'):\r
+            raise Warning("expected TRUE or FALSE for FvNameString", self.FileName, self.CurrentLineNumber)\r
+\r
+        FvObj.FvNameString = self.__Token\r
+\r
+        return True\r
+\r
     def __GetFvExtEntryStatement(self, FvObj):\r
 \r
         if not self.__IsKeyword( "FV_EXT_ENTRY"):\r