+ def _GetFvStatement(self, CapsuleObj, FMPCapsule = False):\r
+ if not self._IsKeyword(BINARY_FILE_TYPE_FV):\r
+ return False\r
+\r
+ if not self._IsToken(TAB_EQUAL_SPLIT):\r
+ raise Warning.ExpectedEquals(self.FileName, self.CurrentLineNumber)\r
+\r
+ if not self._GetNextToken():\r
+ raise Warning.Expected("FV name", self.FileName, self.CurrentLineNumber)\r
+\r
+ if self._Token.upper() not in self.Profile.FvDict:\r
+ raise Warning("FV name does not exist", self.FileName, self.CurrentLineNumber)\r
+\r
+ myCapsuleFv = CapsuleFv()\r
+ myCapsuleFv.FvName = self._Token\r
+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(myCapsuleFv)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(myCapsuleFv)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(myCapsuleFv)\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
+ if not self._IsKeyword("FD"):\r
+ return False\r
+\r
+ if not self._IsToken(TAB_EQUAL_SPLIT):\r
+ raise Warning.ExpectedEquals(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:\r
+ raise Warning("FD name does not exist", self.FileName, self.CurrentLineNumber)\r
+\r
+ myCapsuleFd = CapsuleFd()\r
+ myCapsuleFd.FdName = self._Token\r
+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(myCapsuleFd)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(myCapsuleFd)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(myCapsuleFd)\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(TAB_EQUAL_SPLIT):\r
+ raise Warning.ExpectedEquals(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(TAB_EQUAL_SPLIT):\r
+ raise Warning.ExpectedEquals(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
+ if not os.path.isabs(AnyFileName):\r
+ AnyFileName = mws.join(GenFdsGlobalVariable.WorkSpaceDir, 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
+ myCapsuleAnyFile = CapsuleAnyFile()\r
+ myCapsuleAnyFile.FileName = AnyFileName\r
+ if FMPCapsule:\r
+ if not CapsuleObj.ImageFile:\r
+ CapsuleObj.ImageFile.append(myCapsuleAnyFile)\r
+ else:\r
+ CapsuleObj.VendorCodeFile.append(myCapsuleAnyFile)\r
+ else:\r
+ CapsuleObj.CapsuleDataList.append(myCapsuleAnyFile)\r
+ return True\r