]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools: Check PcdNvStoreDefaultValueBuffer.
[mirror_edk2.git] / BaseTools / Source / Python / Workspace / DscBuildData.py
index 19ab2215b3792ec886bcf11d5fee81ab24011dfa..9c9dce4c538cef971d380eb0862fd71e03e312aa 100644 (file)
@@ -2521,6 +2521,7 @@ class DscBuildData(PlatformBuildClassObject):
         VariableAttrs = {}\r
 \r
         Pcds = OrderedDict()\r
+        UserDefinedDefaultStores = []\r
         #\r
         # tdict is a special dict kind of type, used for selecting correct\r
         # PCD settings for certain ARCH and SKU\r
@@ -2538,6 +2539,9 @@ class DscBuildData(PlatformBuildClassObject):
             DefaultStore = DefaultStore.upper()\r
             if DefaultStore == TAB_COMMON:\r
                 DefaultStore = TAB_DEFAULT_STORES_DEFAULT\r
+            else:\r
+                #The end user define [DefaultStores] and [SKUID_IDENTIFIER.Menufacturing] in DSC\r
+                UserDefinedDefaultStores.append((PcdCName, TokenSpaceGuid))\r
             if SkuName not in AvailableSkuIdSet:\r
                 EdkLogger.error('build', PARAMETER_INVALID, 'Sku %s is not defined in [SkuIds] section' % SkuName,\r
                                             File=self.MetaFile, Line=Dummy5)\r
@@ -2600,7 +2604,7 @@ class DscBuildData(PlatformBuildClassObject):
                     pcdObject.SkuInfoList[SkuName] = SkuInfo\r
             else:\r
                 SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], VariableName, VariableGuid, VariableOffset, DefaultValue, VariableAttribute=VarAttribute, DefaultStore={DefaultStore:DefaultValue})\r
-                Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
+                PcdClassObj = PcdClassObject(\r
                                                 PcdCName,\r
                                                 TokenSpaceGuid,\r
                                                 self._PCD_TYPE_STRING_[Type],\r
@@ -2615,6 +2619,9 @@ class DscBuildData(PlatformBuildClassObject):
                                                 pcdDecObject.validlists,\r
                                                 pcdDecObject.expressions,\r
                                                 IsDsc=True)\r
+                if (PcdCName, TokenSpaceGuid) in UserDefinedDefaultStores:\r
+                    PcdClassObj.UserDefinedDefaultStoresFlag = True\r
+                Pcds[PcdCName, TokenSpaceGuid] = PcdClassObj\r
 \r
             if SkuName not in Pcds[PcdCName, TokenSpaceGuid].DscRawValue:\r
                 Pcds[PcdCName, TokenSpaceGuid].DscRawValue[SkuName] = {}\r