def _GetArch(self):\r
return self._Arch\r
\r
- ## Set architecture\r
- #\r
- # Changing the default ARCH to another may affect all other information\r
- # because all information in a platform may be ARCH-related. That's\r
- # why we need to clear all internal used members, in order to cause all\r
- # information to be re-retrieved.\r
- #\r
- # @param Value The value of ARCH\r
- #\r
- def _SetArch(self, Value):\r
- if self._Arch == Value:\r
- return\r
- self._Arch = Value\r
- self._Clear()\r
-\r
## Retrieve all information in [Defines] section\r
#\r
# (Retriving all [Defines] information in one-shot is just to save time.)\r
if not Valid:\r
EdkLogger.error('build', FORMAT_INVALID, ErrStr, File=self.MetaFile, Line=LineNo,\r
ExtraData="%s.%s" % (TokenSpaceGuid, PcdCName))\r
- if PcdType in (MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT):\r
+ if PcdType in (MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT, MODEL_PCD_FIXED_AT_BUILD, MODEL_PCD_PATCHABLE_IN_MODULE):\r
if self._DecPcds[PcdCName, TokenSpaceGuid].DatumType.strip() != ValueList[1].strip():\r
EdkLogger.error('build', FORMAT_INVALID, "Pcd datumtype used in DSC file is not the same as its declaration in DEC file.", File=self.MetaFile, Line=LineNo,\r
ExtraData="%s.%s|%s" % (TokenSpaceGuid, PcdCName, Setting))\r
if Setting is None:\r
continue\r
PcdValue, DatumType, MaxDatumSize = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)\r
+ if MaxDatumSize:\r
+ if int(MaxDatumSize, 0) > 0xFFFF:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value must not exceed the maximum value of 0xFFFF (UINT16) for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
+ if int(MaxDatumSize, 0) < 0:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value can't be set to negative value for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
if (PcdCName, TokenSpaceGuid) in PcdValueDict:\r
PcdValueDict[PcdCName, TokenSpaceGuid][SkuName] = (PcdValue, DatumType, MaxDatumSize)\r
else:\r
PcdValueDict[PcdCName, TokenSpaceGuid] = {SkuName:(PcdValue, DatumType, MaxDatumSize)}\r
\r
for ((PcdCName, TokenSpaceGuid), PcdSetting) in PcdValueDict.iteritems():\r
- PcdValue = None\r
- DatumType = None\r
- MaxDatumSize = None\r
- if TAB_COMMON in PcdSetting:\r
- PcdValue, DatumType, MaxDatumSize = PcdSetting[TAB_COMMON]\r
- if TAB_DEFAULT in PcdSetting:\r
- PcdValue, DatumType, MaxDatumSize = PcdSetting[TAB_DEFAULT]\r
if self.SkuIdMgr.SystemSkuId in PcdSetting:\r
PcdValue, DatumType, MaxDatumSize = PcdSetting[self.SkuIdMgr.SystemSkuId]\r
+ elif TAB_DEFAULT in PcdSetting:\r
+ PcdValue, DatumType, MaxDatumSize = PcdSetting[TAB_DEFAULT]\r
+ elif TAB_COMMON in PcdSetting:\r
+ PcdValue, DatumType, MaxDatumSize = PcdSetting[TAB_COMMON]\r
+ else:\r
+ PcdValue = None\r
+ DatumType = None\r
+ MaxDatumSize = None\r
\r
Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
PcdCName,\r
continue\r
\r
PcdValue, DatumType, MaxDatumSize = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)\r
+ if MaxDatumSize:\r
+ if int(MaxDatumSize, 0) > 0xFFFF:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value must not exceed the maximum value of 0xFFFF (UINT16) for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
+ if int(MaxDatumSize, 0) < 0:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value can't be set to negative value for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], '', '', '', '', '', PcdValue)\r
if (PcdCName, TokenSpaceGuid) in Pcds:\r
pcdObject = Pcds[PcdCName, TokenSpaceGuid]\r
# until the DEC parser has been called.\r
#\r
VpdOffset, MaxDatumSize, InitialValue = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)\r
+ if MaxDatumSize:\r
+ if int(MaxDatumSize, 0) > 0xFFFF:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value must not exceed the maximum value of 0xFFFF (UINT16) for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
+ if int(MaxDatumSize, 0) < 0:\r
+ EdkLogger.error('build', FORMAT_INVALID, "The size value can't be set to negative value for %s." % ".".join((TokenSpaceGuid, PcdCName)),\r
+ File=self.MetaFile, Line=Dummy4)\r
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], '', '', '', '', VpdOffset, InitialValue)\r
if (PcdCName, TokenSpaceGuid) in Pcds:\r
pcdObject = Pcds[PcdCName, TokenSpaceGuid]\r
self.Modules.append(Module)\r
\r
def _GetToolChainFamily(self):\r
- self._ToolChainFamily = "MSFT"\r
+ self._ToolChainFamily = TAB_COMPILER_MSFT\r
BuildConfigurationFile = os.path.normpath(os.path.join(GlobalData.gConfDirectory, "target.txt"))\r
if os.path.isfile(BuildConfigurationFile) == True:\r
TargetTxt = TargetTxtClassObject()\r
if TAB_TOD_DEFINES_FAMILY not in ToolDefinition \\r
or self._Toolchain not in ToolDefinition[TAB_TOD_DEFINES_FAMILY] \\r
or not ToolDefinition[TAB_TOD_DEFINES_FAMILY][self._Toolchain]:\r
- self._ToolChainFamily = "MSFT"\r
+ self._ToolChainFamily = TAB_COMPILER_MSFT\r
else:\r
self._ToolChainFamily = ToolDefinition[TAB_TOD_DEFINES_FAMILY][self._Toolchain]\r
return self._ToolChainFamily\r
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)\r
return self._DecPcds\r
_Macros = property(_GetMacros)\r
- Arch = property(_GetArch, _SetArch)\r
+ Arch = property(_GetArch)\r
Platform = property(_GetPlatformName)\r
PlatformName = property(_GetPlatformName)\r
Guid = property(_GetFileGuid)\r