import Common.GlobalData as GlobalData\r
from DepexSection import DepexSection\r
from Common.Misc import SaveFileOnChange\r
+from Common.Expression import *\r
\r
## generate FFS from INF\r
#\r
\r
if not DscOverride and not FdfOverride and not BuildOptionOverride:\r
continue\r
+\r
+ # Support Flexible PCD format\r
+ if DefaultValue:\r
+ try:\r
+ DefaultValue = ValueExpressionEx(DefaultValue, Pcd.DatumType, Platform._GuidDict)(True)\r
+ except BadExpression:\r
+ EdkLogger.error("GenFds", GENFDS_ERROR, 'PCD [%s.%s] Value "%s"' %(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, DefaultValue), File=self.InfFileName)\r
+\r
+ if Pcd.DefaultValue:\r
+ try:\r
+ Pcd.DefaultValue = ValueExpressionEx(Pcd.DefaultValue, Pcd.DatumType, Platform._GuidDict)(True)\r
+ except BadExpression:\r
+ EdkLogger.error("GenFds", GENFDS_ERROR, 'PCD [%s.%s] Value "%s"' %(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DefaultValue),File=self.InfFileName)\r
+\r
# Check value, if value are equal, no need to patch\r
if Pcd.DatumType == "VOID*":\r
if Pcd.DefaultValue == DefaultValue or DefaultValue in [None, '']:\r
#\r
# Patch {0x1, 0x2, ...} byte by byte\r
#\r
- ValueList = ValueString[1 : len(ValueString) - 1].split(', ')\r
+ ValueList = ValueString[1 : len(ValueString) - 1].split(',')\r
Index = 0\r
try:\r
for ByteString in ValueList:\r
+ ByteString = ByteString.strip()\r
if ByteString.upper().startswith('0X'):\r
ByteValue = int(ByteString, 16)\r
else:\r