//GUID Signature; // PcdDataBaseGuid\r
//UINT32 BuildVersion;\r
//UINT32 Length;\r
- //SKU_ID SystemSkuId; // Current SkuId value.\r
+ //SKU_ID SystemSkuId; // Current SkuId value.\r
+ //UINT32 LengthForAllSkus; // Length of all SKU PCD DB\r
//UINT32 UninitDataBaseSize;// Total size for PCD those default value with 0.\r
//TABLE_OFFSET LocalTokenNumberTableOffset;\r
//TABLE_OFFSET ExMapTableOffset;\r
//UINT16 LocalTokenCount; // LOCAL_TOKEN_NUMBER for all\r
//UINT16 ExTokenCount; // EX_TOKEN_NUMBER for DynamicEx\r
//UINT16 GuidTableCount; // The Number of Guid in GuidTable\r
- //UINT8 Pad[2];\r
+ //UINT8 Pad[6];\r
${PHASE}_PCD_DATABASE_INIT Init;\r
${PHASE}_PCD_DATABASE_UNINIT Uninit;\r
} ${PHASE}_PCD_DATABASE;\r
# VardefValueBoolean is the last table in the init table items\r
InitTableNum = DbNameTotle.index("VardefValueBoolean") + 1\r
# The FixedHeader length of the PCD_DATABASE_INIT, from Signature to Pad\r
- FixedHeaderLen = 76\r
+ FixedHeaderLen = 80\r
\r
# Get offset of SkuId table in the database \r
SkuIdTableOffset = FixedHeaderLen\r
\r
Buffer += b\r
b = pack('=B', Pad)\r
-\r
Buffer += b\r
- b = pack('=B', Pad)\r
- \r
+ Buffer += b\r
+ Buffer += b\r
+ Buffer += b\r
+ Buffer += b\r
Buffer += b\r
\r
Index = 0\r
databasebuff = PcdDBData[("DEFAULT","0")][0]\r
\r
for skuname,skuid in delta:\r
- databasebuff += pack('=H', int(skuid))\r
- databasebuff += pack('=H', 0)\r
- databasebuff += pack('=L', 8+4*len(delta[(skuname,skuid)]))\r
+ # 8 byte align\r
+ if len(databasebuff) % 8 > 0:\r
+ for i in range(8 - (len(databasebuff) % 8)):\r
+ databasebuff += pack("=B",0)\r
+ databasebuff += pack('=Q', int(skuid))\r
+ databasebuff += pack('=Q', 0)\r
+ databasebuff += pack('=L', 8+8+4+4*len(delta[(skuname,skuid)]))\r
for item in delta[(skuname,skuid)]:\r
databasebuff += pack("=L",item[0])\r
databasebuff = databasebuff[:-1] + pack("=B",item[1])\r
'SYSTEM_SKU_ID_VALUE' : '0U'\r
}\r
\r
- \r
- SkuObj = SkuClass(Platform.Platform.AvilableSkuIds, Platform.Platform.SkuIds)\r
- Dict['SYSTEM_SKU_ID_VALUE'] = Platform.Platform.SkuIds[SkuObj.SystemSkuId][0]\r
+ SkuObj = Platform.Platform.SkuIdMgr\r
+ Dict['SYSTEM_SKU_ID_VALUE'] = 0 if SkuObj.SkuUsageType == SkuObj.SINGLE else Platform.Platform.SkuIds[SkuObj.SystemSkuId][0]\r
\r
Dict['PCD_INFO_FLAG'] = Platform.Platform.PcdInfoFlag\r
\r