]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Sort the Pcd set when generating the VPD binary
authorBob Feng <bob.c.feng@intel.com>
Fri, 4 Sep 2020 14:30:28 +0000 (22:30 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Tue, 8 Sep 2020 08:48:24 +0000 (08:48 +0000)
If VPD PcdNvStoreDefaultValueBuffer is used, all DynamicHii and
DynamicExHii PCD value will be generated into that VPD.

In order to generate the same VPD binary file in every build,
sort the Pcd set when generating VPD.

Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com>
BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
BaseTools/Source/Python/Workspace/DscBuildData.py

index af66c48c7d6a03a2cce8b1bc6aa3a8330481774c..26ab8e7f360897d41eccc51b3e0654bfff49eb14 100644 (file)
@@ -253,7 +253,7 @@ class PlatformAutoGen(AutoGen):
         VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)\r
         VariableInfo.SetVpdRegionOffset(VpdRegionBase)\r
         Index = 0\r
-        for Pcd in DynamicPcdSet:\r
+        for Pcd in sorted(DynamicPcdSet):\r
             pcdname = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))\r
             for SkuName in Pcd.SkuInfoList:\r
                 Sku = Pcd.SkuInfoList[SkuName]\r
index 1afbd3eefc6c7b7401c845ab64c3b23cd251f379..4a128c8a771cd7638cb92fb7692d58d8df985846 100644 (file)
@@ -2584,7 +2584,7 @@ class DscBuildData(PlatformBuildClassObject):
         CApp = CApp + '\n'\r
         for Pcd in StructuredPcds.values():\r
             CApp = CApp + self.GenerateArrayAssignment(Pcd)\r
-        for PcdName in StructuredPcds:\r
+        for PcdName in sorted(StructuredPcds.keys()):\r
             Pcd = StructuredPcds[PcdName]\r
             CApp = CApp + self.GenerateSizeFunction(Pcd)\r
             CApp = CApp + self.GenerateDefaultValueAssignFunction(Pcd)\r