]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/AutoGen/GenPcdDb.py
BaseTools: AutoGen - refactor function to remove extra variables
[mirror_edk2.git] / BaseTools / Source / Python / AutoGen / GenPcdDb.py
index 22283ef7fe2384d51aa27eb4c44c25a941531196..aee722d146a09a3faeb1351e454d9f333adddbb1 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Routines for generating Pcd Database\r
 #\r
-# Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2013 - 2018, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -16,10 +16,12 @@ from Common.String import StringToArray
 from struct import pack\r
 from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER\r
 from ValidCheckingInfoObject import VAR_CHECK_PCD_VARIABLE_TAB\r
-from ValidCheckingInfoObject import VAR_VALID_OBJECT_FACTORY\r
+from ValidCheckingInfoObject import GetValidationObject\r
 from Common.VariableAttributes import VariableAttributes\r
 import copy\r
 from struct import unpack\r
+from Common.DataType import *\r
+from GenVar import PackGUID\r
 \r
 DATABASE_VERSION = 7\r
 \r
@@ -234,43 +236,6 @@ ${PHASE}_PCD_DATABASE_INIT g${PHASE}PcdDbInit = {
 #endif\r
 """)\r
 \r
-## PackGuid\r
-#\r
-# Pack the GUID value in C structure format into data array\r
-#\r
-# @param GuidStructureValue:   The GUID value in C structure format\r
-#\r
-# @retval Buffer:  a data array contains the Guid\r
-#\r
-def PackGuid(GuidStructureValue):\r
-    GuidString = GuidStructureStringToGuidString(GuidStructureValue)\r
-    Guid = GuidString.split('-')\r
-    Buffer = pack('=LHHBBBBBBBB', \r
-                int(Guid[0], 16), \r
-                int(Guid[1], 16), \r
-                int(Guid[2], 16), \r
-                int(Guid[3][-4:-2], 16), \r
-                int(Guid[3][-2:], 16),\r
-                int(Guid[4][-12:-10], 16),\r
-                int(Guid[4][-10:-8], 16),\r
-                int(Guid[4][-8:-6], 16),\r
-                int(Guid[4][-6:-4], 16),\r
-                int(Guid[4][-4:-2], 16),\r
-                int(Guid[4][-2:], 16)\r
-                )\r
-    return Buffer\r
-\r
-def toHex(s):\r
-    lst = []\r
-    for ch in s:\r
-        hv = hex(ord(ch)).replace('0x', ' ')\r
-        if len(hv) == 1:\r
-            hv = '0'+hv\r
-        lst.append(hv)\r
-    if lst:\r
-        return reduce(lambda x,y:x+y, lst)\r
-    else:\r
-        return 'empty'\r
 ## DbItemList\r
 #\r
 #  The class holds the Pcd database items. ItemSize if not zero should match the item datum type in the C structure. \r
@@ -281,13 +246,9 @@ def toHex(s):
 #\r
 class DbItemList:\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []\r
         self.ItemSize = ItemSize\r
-        self.DataList = DataList\r
-        self.RawDataList = RawDataList\r
+        self.DataList = DataList if DataList else []\r
+        self.RawDataList = RawDataList if RawDataList else []\r
         self.ListSize = 0\r
 \r
     def GetInterOffset(self, Index):\r
@@ -300,8 +261,7 @@ class DbItemList:
             for ItemIndex in xrange(Index):\r
                 Offset += len(self.RawDataList[ItemIndex])\r
         else:\r
-            for Datas in self.RawDataList:\r
-                Offset = self.ItemSize * Index\r
+            Offset = self.ItemSize * Index\r
 \r
         return Offset\r
 \r
@@ -318,6 +278,18 @@ class DbItemList:
         return self.ListSize\r
 \r
     def PackData(self):\r
+        ## PackGuid\r
+        #\r
+        # Pack the GUID value in C structure format into data array\r
+        #\r
+        # @param GuidStructureValue:   The GUID value in C structure format\r
+        #\r
+        # @retval Buffer:  a data array contains the Guid\r
+        #\r
+        def PackGuid(GuidStructureValue):\r
+            GuidString = GuidStructureStringToGuidString(GuidStructureValue)\r
+            return PackGUID(GuidString.split('-'))\r
+\r
         if self.ItemSize == 8:\r
             PackStr = "=Q"\r
         elif self.ItemSize == 4:\r
@@ -357,11 +329,8 @@ class DbItemList:
 #\r
 class DbExMapTblItemList (DbItemList):\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []\r
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
     def PackData(self):\r
         Buffer = ''\r
         PackStr = "=LHH"\r
@@ -379,11 +348,8 @@ class DbExMapTblItemList (DbItemList):
 #\r
 class DbComItemList (DbItemList):\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []\r
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
     def GetInterOffset(self, Index):\r
         Offset = 0\r
         if self.ItemSize == 0:\r
@@ -443,11 +409,8 @@ class DbComItemList (DbItemList):
 #\r
 class DbVariableTableItemList (DbComItemList):\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []\r
         DbComItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
     def PackData(self):\r
         PackStr = "=LLHHLHH"\r
         Buffer = ''\r
@@ -465,10 +428,6 @@ class DbVariableTableItemList (DbComItemList):
 \r
 class DbStringHeadTableItemList(DbItemList):\r
     def __init__(self,ItemSize,DataList=None,RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []        \r
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
         \r
     def GetInterOffset(self, Index):\r
@@ -511,11 +470,8 @@ class DbStringHeadTableItemList(DbItemList):
 #\r
 class DbSkuHeadTableItemList (DbItemList):\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []        \r
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
     def PackData(self):\r
         PackStr = "=LL"\r
         Buffer = ''\r
@@ -531,11 +487,8 @@ class DbSkuHeadTableItemList (DbItemList):
 #\r
 class DbSizeTableItemList (DbItemList):\r
     def __init__(self, ItemSize, DataList=None, RawDataList=None):\r
-        if DataList is None:\r
-            DataList = []\r
-        if RawDataList is None:\r
-            RawDataList = []        \r
         DbItemList.__init__(self, ItemSize, DataList, RawDataList)\r
+\r
     def GetListSize(self):\r
         length = 0\r
         for Data in self.RawDataList:\r
@@ -971,7 +924,7 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
         AutoGenC.Append(AdditionalAutoGenC.String)\r
 \r
     if Info.IsBinaryModule:\r
-        DbFileName = os.path.join(Info.PlatformInfo.BuildDir, "FV", Phase + "PcdDataBase.raw")\r
+        DbFileName = os.path.join(Info.PlatformInfo.BuildDir, TAB_FV_DIRECTORY, Phase + "PcdDataBase.raw")\r
     else:\r
         DbFileName = os.path.join(Info.OutputDir, Phase + "PcdDataBase.raw")\r
     DbFile = StringIO()\r
@@ -979,18 +932,14 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
     Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)\r
 def CreatePcdDataBase(PcdDBData):\r
     delta = {}\r
-    basedata = {}\r
-    if not PcdDBData:\r
-        return ""\r
     for skuname,skuid in PcdDBData:\r
-        if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[("DEFAULT","0")][1]):\r
+        if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[(TAB_DEFAULT,"0")][1]):\r
             EdkLogger.ERROR("The size of each sku in one pcd are not same")\r
     for skuname,skuid in PcdDBData:\r
-        if skuname == "DEFAULT":\r
+        if skuname == TAB_DEFAULT:\r
             continue\r
-        delta[(skuname,skuid)] = [(index,data,hex(data)) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[("DEFAULT","0")][1][index]]\r
-        basedata[(skuname,skuid)] = [(index,PcdDBData[("DEFAULT","0")][1][index],hex(PcdDBData[("DEFAULT","0")][1][index])) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[("DEFAULT","0")][1][index]]\r
-    databasebuff = PcdDBData[("DEFAULT","0")][0]\r
+        delta[(skuname,skuid)] = [(index,data,hex(data)) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[(TAB_DEFAULT,"0")][1][index]]\r
+    databasebuff = PcdDBData[(TAB_DEFAULT,"0")][0]\r
 \r
     for skuname,skuid in delta:\r
         # 8 byte align\r
@@ -1012,8 +961,10 @@ def CreatePcdDataBase(PcdDBData):
         newbuffer += databasebuff[i]\r
 \r
     return newbuffer\r
+\r
 def CreateVarCheckBin(VarCheckTab):\r
-    return VarCheckTab[('DEFAULT',"0")]\r
+    return VarCheckTab[(TAB_DEFAULT,"0")]\r
+\r
 def CreateAutoGen(PcdDriverAutoGenData):\r
     autogenC = TemplateString()\r
     for skuname,skuid in PcdDriverAutoGenData:\r
@@ -1024,6 +975,19 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
     def prune_sku(pcd,skuname):\r
         new_pcd = copy.deepcopy(pcd)\r
         new_pcd.SkuInfoList = {skuname:pcd.SkuInfoList[skuname]}\r
+        new_pcd.isinit = 'INIT'\r
+        if new_pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
+            for skuobj in pcd.SkuInfoList.values():\r
+                if skuobj.DefaultValue:\r
+                    defaultvalue = int(skuobj.DefaultValue,16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue,10)\r
+                    if defaultvalue  != 0:\r
+                        new_pcd.isinit = "INIT"\r
+                        break\r
+                elif skuobj.VariableName:\r
+                    new_pcd.isinit = "INIT"\r
+                    break\r
+            else:\r
+                new_pcd.isinit = "UNINIT"\r
         return new_pcd\r
     DynamicPcds = Platform.DynamicPcdList\r
     DynamicPcdSet_Sku = {(SkuName,skuobj.SkuId):[] for pcd in DynamicPcds for (SkuName,skuobj) in pcd.SkuInfoList.items() }\r
@@ -1042,15 +1006,18 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
             PcdDriverAutoGenData[(skuname,skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)\r
             VarCheckTableData[(skuname,skuid)] = VarCheckTab\r
         if Platform.Platform.VarCheckFlag:\r
-            dest = os.path.join(Platform.BuildDir, 'FV')\r
+            dest = os.path.join(Platform.BuildDir, TAB_FV_DIRECTORY)\r
             VarCheckTable = CreateVarCheckBin(VarCheckTableData)\r
             VarCheckTable.dump(dest, Phase)\r
         AdditionalAutoGenH, AdditionalAutoGenC =  CreateAutoGen(PcdDriverAutoGenData)\r
     else:\r
         AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer,VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform,{}, Phase)\r
+        final_data = ()\r
+        for item in PcdDbBuffer:\r
+            final_data += unpack("B",item)\r
+        PcdDBData[(TAB_DEFAULT,"0")] = (PcdDbBuffer, final_data)\r
 \r
-    PcdDbBuffer = CreatePcdDataBase(PcdDBData)\r
-    return AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer\r
+    return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)\r
 ## Create PCD database in DXE or PEI phase\r
 #\r
 #   @param      Platform    The platform object\r
@@ -1088,7 +1055,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
 \r
     Dict['PCD_INFO_FLAG'] = Platform.Platform.PcdInfoFlag\r
 \r
-    for DatumType in ['UINT64','UINT32','UINT16','UINT8','BOOLEAN', "VOID*"]:\r
+    for DatumType in TAB_PCD_NUMERIC_TYPES_VOID:\r
         Dict['VARDEF_CNAME_' + DatumType] = []\r
         Dict['VARDEF_GUID_' + DatumType]  = []\r
         Dict['VARDEF_SKUID_' + DatumType] = []\r
@@ -1160,7 +1127,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
     ReorderedDynPcdList = GetOrderedDynamicPcdList(DynamicPcdList, Platform.PcdTokenNumber)\r
     for item in ReorderedDynPcdList:\r
         if item.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
-            item.DatumType = "VOID*"\r
+            item.DatumType = TAB_VOID\r
     for Pcd in ReorderedDynPcdList:\r
         VoidStarTypeCurrSize = []\r
         i += 1\r
@@ -1171,12 +1138,6 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
             if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdItem]:\r
                 CName = PcdItem[0]\r
 \r
-        if GlobalData.BuildOptionPcd:\r
-            for PcdItem in GlobalData.BuildOptionPcd:\r
-                if (Pcd.TokenSpaceGuidCName, CName) == (PcdItem[0], PcdItem[1]):\r
-                    Pcd.DefaultValue = PcdItem[2]\r
-                    break\r
-\r
         EdkLogger.debug(EdkLogger.DEBUG_3, "PCD: %s %s (%s : %s)" % (CName, TokenSpaceGuidCName, Pcd.Phase, Phase))\r
 \r
         if Pcd.Phase == 'PEI':\r
@@ -1191,7 +1152,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
         #\r
         TokenSpaceGuidStructure = Pcd.TokenSpaceGuidValue\r
         TokenSpaceGuid = GuidStructureStringToGuidValueName(TokenSpaceGuidStructure)\r
-        if Pcd.Type in gDynamicExPcd:\r
+        if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
             if TokenSpaceGuid not in GuidList:\r
                 GuidList += [TokenSpaceGuid]\r
                 Dict['GUID_STRUCTURE'].append(TokenSpaceGuidStructure)\r
@@ -1207,8 +1168,8 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
         VariableDbValueList = []\r
         Pcd.InitString = 'UNINIT'\r
 \r
-        if Pcd.DatumType == 'VOID*':\r
-            if Pcd.Type not in ["DynamicVpd", "DynamicExVpd"]:\r
+        if Pcd.DatumType == TAB_VOID:\r
+            if Pcd.Type not in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
                 Pcd.TokenTypeList = ['PCD_TYPE_STRING']\r
             else:\r
                 Pcd.TokenTypeList = []\r
@@ -1226,7 +1187,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
         for SkuName in Pcd.SkuInfoList:\r
             Sku = Pcd.SkuInfoList[SkuName]\r
             SkuId = Sku.SkuId\r
-            if SkuId == None or SkuId == '':\r
+            if SkuId is None or SkuId == '':\r
                 continue\r
 \r
                 \r
@@ -1238,7 +1199,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 if Platform.Platform.VarCheckFlag:\r
                     var_check_obj = VAR_CHECK_PCD_VARIABLE_TAB(VariableGuidStructure, StringToArray(Sku.VariableName))\r
                     try:\r
-                        var_check_obj.push_back(VAR_VALID_OBJECT_FACTORY.Get_valid_object(Pcd, Sku.VariableOffset))\r
+                        var_check_obj.push_back(GetValidationObject(Pcd, Sku.VariableOffset))\r
                         VarAttr, _ = VariableAttributes.GetVarAttributes(Sku.VariableAttribute)\r
                         var_check_obj.SetAttributes(VarAttr)\r
                         var_check_obj.UpdateSize()\r
@@ -1311,9 +1272,9 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                     #\r
                     Dict['VARDEF_DB_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue)\r
                     \r
-                    if Pcd.DatumType == "UINT64":\r
+                    if Pcd.DatumType == TAB_UINT64:\r
                         Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "ULL")\r
-                    elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+                    elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
                         Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "U")\r
                     elif Pcd.DatumType == "BOOLEAN":\r
                         if eval(Sku.HiiDefaultValue) in [1,0]:\r
@@ -1344,13 +1305,13 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 VpdHeadOffsetList.append(str(Sku.VpdOffset) + 'U')\r
                 VpdDbOffsetList.append(Sku.VpdOffset)\r
                 # Also add the VOID* string of VPD PCD to SizeTable \r
-                if Pcd.DatumType == 'VOID*':\r
+                if Pcd.DatumType == TAB_VOID:\r
                     NumberOfSizeItems += 1\r
                     # For VPD type of PCD, its current size is equal to its MAX size.\r
                     VoidStarTypeCurrSize = [str(Pcd.MaxDatumSize) + 'U']                 \r
                 continue\r
           \r
-            if Pcd.DatumType == 'VOID*':\r
+            if Pcd.DatumType == TAB_VOID:\r
                 Pcd.TokenTypeList += ['PCD_TYPE_STRING']\r
                 Pcd.InitString = 'INIT'\r
                 if Sku.HiiDefaultValue != '' and Sku.DefaultValue == '':\r
@@ -1382,9 +1343,12 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                     if Pcd.MaxDatumSize != '':\r
                         MaxDatumSize = int(Pcd.MaxDatumSize, 0)\r
                         if MaxDatumSize < Size:\r
-                            EdkLogger.error("build", AUTOGEN_ERROR,\r
+                            if Pcd.MaxSizeUserSet:\r
+                                EdkLogger.error("build", AUTOGEN_ERROR,\r
                                             "The maximum size of VOID* type PCD '%s.%s' is less than its actual size occupied." % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName),\r
                                             ExtraData="[%s]" % str(Platform))\r
+                            else:\r
+                                MaxDatumSize = Size\r
                     else:\r
                         MaxDatumSize = Size\r
                     StringTabLen = MaxDatumSize\r
@@ -1401,15 +1365,14 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                     if Sku.DefaultValue == 'TRUE':\r
                         Pcd.InitString = 'INIT'\r
                     else:\r
-                        if int(Sku.DefaultValue, 0) != 0:\r
-                            Pcd.InitString = 'INIT'\r
+                        Pcd.InitString = Pcd.isinit\r
                 #\r
                 # For UNIT64 type PCD's value, ULL should be append to avoid\r
                 # warning under linux building environment.\r
                 #\r
-                if Pcd.DatumType == "UINT64":\r
+                if Pcd.DatumType == TAB_UINT64:\r
                     ValueList.append(Sku.DefaultValue + "ULL")\r
-                elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+                elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
                     ValueList.append(Sku.DefaultValue + "U")\r
                 elif Pcd.DatumType == "BOOLEAN":\r
                     if Sku.DefaultValue in ["1", "0"]:\r
@@ -1420,7 +1383,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 DbValueList.append(Sku.DefaultValue)\r
 \r
         Pcd.TokenTypeList = list(set(Pcd.TokenTypeList))\r
-        if Pcd.DatumType == 'VOID*':  \r
+        if Pcd.DatumType == TAB_VOID:\r
             Dict['SIZE_TABLE_CNAME'].append(CName)\r
             Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)\r
             Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')\r
@@ -1493,12 +1456,6 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
             if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdItem]:\r
                 CName = PcdItem[0]\r
 \r
-        if GlobalData.BuildOptionPcd:\r
-            for PcdItem in GlobalData.BuildOptionPcd:\r
-                if (Pcd.TokenSpaceGuidCName, CName) == (PcdItem[0], PcdItem[1]):\r
-                    Pcd.DefaultValue = PcdItem[2]\r
-                    break\r
-\r
         EdkLogger.debug(EdkLogger.DEBUG_1, "PCD = %s.%s" % (CName, TokenSpaceGuidCName))\r
         EdkLogger.debug(EdkLogger.DEBUG_1, "phase = %s" % Phase)\r
         EdkLogger.debug(EdkLogger.DEBUG_1, "GeneratedTokenNumber = %s" % str(GeneratedTokenNumber))\r
@@ -1563,7 +1520,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
             Dict['VARDEF_HEADER'][GeneratedTokenNumber] = ''\r
        \r
         \r
-        if Pcd.Type in gDynamicExPcd:\r
+        if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
             \r
             if Phase == 'DXE':\r
                 GeneratedTokenNumber += NumberOfPeiLocalTokens\r