self.__UndoToken()\r
self.__GetRegionFileType( RegionObj)\r
\r
- else:\r
+ elif self.__Token == "DATA":\r
self.__UndoToken()\r
self.__GetRegionDataType( RegionObj)\r
+ else:\r
+ raise Warning("A valid region type was not found. "\r
+ "Valid types are [SET, FV, CAPSULE, FILE, DATA]. This error occurred",\r
+ self.FileName, self.CurrentLineNumber)\r
\r
return True\r
\r
self.__GetSetStatements(FvObj)\r
\r
self.__GetFvBaseAddress(FvObj)\r
+ \r
+ self.__GetFvForceRebase(FvObj)\r
\r
self.__GetFvAlignment(FvObj)\r
\r
IsValidBaseAddrValue = re.compile('^0[x|X][0-9a-fA-F]+')\r
\r
if not IsValidBaseAddrValue.match(self.__Token.upper()):\r
- raise Warning("Unknown alignment value '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
+ raise Warning("Unknown FV base address value '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
Obj.FvBaseAddress = self.__Token\r
return True \r
\r
+ ## __GetFvForceRebase() method\r
+ #\r
+ # Get FvForceRebase for FV\r
+ #\r
+ # @param self The object pointer\r
+ # @param Obj for whom FvForceRebase is got\r
+ # @retval True Successfully find a FvForceRebase statement\r
+ # @retval False Not able to find a FvForceRebase statement\r
+ #\r
+ def __GetFvForceRebase(self, Obj):\r
+\r
+ if not self.__IsKeyword("FvForceRebase"):\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 FvForceRebase value", self.FileName, self.CurrentLineNumber)\r
\r
+ if self.__Token.upper() not in ["TRUE", "FALSE", "0", "0X0", "0X00", "1", "0X1", "0X01"]:\r
+ raise Warning("Unknown FvForceRebase value '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
+ \r
+ if self.__Token.upper() in ["TRUE", "1", "0X1", "0X01"]:\r
+ Obj.FvForceRebase = True\r
+ elif self.__Token.upper() in ["FALSE", "0", "0X0", "0X00"]:\r
+ Obj.FvForceRebase = False\r
+ else:\r
+ Obj.FvForceRebase = None\r
+ \r
+ return True\r
+ \r
## __GetFvAttributes() method\r
#\r
# Get attributes for FV\r
ffsInf.KeepReloc = True\r
else:\r
raise Warning("Unknown reloc strip flag '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
-\r
+ \r
+ ffsInf.CurrentLineNum = self.CurrentLineNumber\r
+ ffsInf.CurrentLineContent = self.__CurrentLine()\r
+ \r
if ForCapsule:\r
capsuleFfs = CapsuleData.CapsuleFfs()\r
capsuleFfs.Ffs = ffsInf\r
self.__Token = 'PCD('+PcdPair[1]+'.'+PcdPair[0]+')'\r
\r
FfsFileObj.NameGuid = self.__Token\r
-\r
+ \r
+ FfsFileObj.CurrentLineNum = self.CurrentLineNumber\r
+ FfsFileObj.CurrentLineContent = self.__CurrentLine()\r
+ \r
self.__GetFilePart( FfsFileObj, MacroDict.copy())\r
\r
if ForCapsule:\r
Overrides.PciRevision = self.__Token\r
continue\r
\r
- if self.__IsKeyword( "COMPRESS"):\r
+ if self.__IsKeyword( "PCI_COMPRESS"):\r
if not self.__IsToken( "="):\r
raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
if not self.__GetNextToken():\r