+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(CapsuleFv)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(CapsuleFv)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(CapsuleFv)\r
+ return True\r
+\r
+ ## __GetFdStatement() method\r
+ #\r
+ # Get FD for capsule\r
+ #\r
+ # @param self The object pointer\r
+ # @param CapsuleObj for whom FD is got\r
+ # @retval True Successfully find a FD statement\r
+ # @retval False Not able to find a FD statement\r
+ #\r
+ def __GetFdStatement(self, CapsuleObj, FMPCapsule = False):\r
+\r
+ if not self.__IsKeyword("FD"):\r
+ return False\r
+\r
+ if not self.__IsToken("="):\r
+ raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+\r
+ if not self.__GetNextToken():\r
+ raise Warning("expected FD name", self.FileName, self.CurrentLineNumber)\r
+\r
+ if self.__Token.upper() not in self.Profile.FdDict.keys():\r
+ raise Warning("FD name does not exist", self.FileName, self.CurrentLineNumber)\r
+\r
+ CapsuleFd = CapsuleData.CapsuleFd()\r
+ CapsuleFd.FdName = self.__Token\r
+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(CapsuleFd)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(CapsuleFd)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(CapsuleFd)\r
+ return True\r
+\r
+ def __GetFmpStatement(self, CapsuleObj):\r
+ if not self.__IsKeyword("FMP_PAYLOAD"):\r
+ if not self.__IsKeyword("FMP"):\r
+ return False\r
+\r
+ if not self.__IsKeyword("PAYLOAD"):\r
+ self.__UndoToken()\r
+ return False\r
+\r
+ if not self.__IsToken("="):\r
+ raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+\r
+ if not self.__GetNextToken():\r
+ raise Warning("expected payload name after FMP_PAYLOAD =", self.FileName, self.CurrentLineNumber)\r
+ Payload = self.__Token.upper()\r
+ if Payload not in self.Profile.FmpPayloadDict:\r
+ raise Warning("This FMP Payload does not exist: %s" % self.__Token, self.FileName, self.CurrentLineNumber)\r
+ CapsuleObj.FmpPayloadList.append(self.Profile.FmpPayloadDict[Payload])\r
+ return True\r
+\r
+ def __ParseRawFileStatement(self):\r
+ if not self.__IsKeyword("FILE"):\r
+ return None\r
+\r
+ if not self.__IsKeyword("DATA"):\r
+ self.__UndoToken()\r
+ return None\r
+\r
+ if not self.__IsToken("="):\r
+ raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+\r
+ if not self.__GetNextToken():\r
+ raise Warning("expected File name", self.FileName, self.CurrentLineNumber)\r
+ \r
+ AnyFileName = self.__Token\r
+ self.__VerifyFile(AnyFileName)\r
+\r
+ return AnyFileName\r
+\r
+ ## __GetAnyFileStatement() method\r
+ #\r
+ # Get AnyFile for capsule\r
+ #\r
+ # @param self The object pointer\r
+ # @param CapsuleObj for whom AnyFile is got\r
+ # @retval True Successfully find a Anyfile statement\r
+ # @retval False Not able to find a AnyFile statement\r
+ #\r
+ def __GetAnyFileStatement(self, CapsuleObj, FMPCapsule = False):\r
+ AnyFileName = self.__ParseRawFileStatement()\r
+ if not AnyFileName:\r
+ return False\r
+\r
+ CapsuleAnyFile = CapsuleData.CapsuleAnyFile()\r
+ CapsuleAnyFile.FileName = AnyFileName\r
+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(CapsuleAnyFile)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(CapsuleAnyFile)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(CapsuleAnyFile)\r
+ return True\r
+ \r
+ ## __GetAfileStatement() method\r
+ #\r
+ # Get Afile for capsule\r
+ #\r
+ # @param self The object pointer\r
+ # @param CapsuleObj for whom Afile is got\r
+ # @retval True Successfully find a Afile statement\r
+ # @retval False Not able to find a Afile statement\r
+ #\r
+ def __GetAfileStatement(self, CapsuleObj):\r
+\r
+ if not self.__IsKeyword("APPEND"):\r
+ return False\r
+\r
+ if not self.__IsToken("="):\r
+ raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
+\r
+ if not self.__GetNextToken():\r
+ raise Warning("expected Afile name", self.FileName, self.CurrentLineNumber)\r
+ \r
+ AfileName = self.__Token\r
+ AfileBaseName = os.path.basename(AfileName)\r
+ \r
+ if os.path.splitext(AfileBaseName)[1] not in [".bin",".BIN",".Bin",".dat",".DAT",".Dat",".data",".DATA",".Data"]:\r
+ raise Warning('invalid binary file type, should be one of "bin","BIN","Bin","dat","DAT","Dat","data","DATA","Data"', \\r
+ self.FileName, self.CurrentLineNumber)\r
+ \r
+ if not os.path.isabs(AfileName):\r
+ AfileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(AfileName)\r
+ self.__VerifyFile(AfileName)\r
+ else:\r
+ if not os.path.exists(AfileName):\r
+ raise Warning('%s does not exist' % AfileName, self.FileName, self.CurrentLineNumber)\r
+ else:\r
+ pass\r
+\r
+ CapsuleAfile = CapsuleData.CapsuleAfile()\r
+ CapsuleAfile.FileName = AfileName\r
+ CapsuleObj.CapsuleDataList.append(CapsuleAfile)\r