public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] BaseTools: Sort the Pcd set when generating the VPD binary
@ 2020-09-04 14:30 Bob Feng
  2020-09-07  0:40 ` 回复: " gaoliming
  2020-09-07 13:48 ` [edk2-devel] " Philippe Mathieu-Daudé
  0 siblings, 2 replies; 4+ messages in thread
From: Bob Feng @ 2020-09-04 14:30 UTC (permalink / raw)
  To: devel; +Cc: Liming Gao, Yuwei Chen

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>
---
 BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 2 +-
 BaseTools/Source/Python/Workspace/DscBuildData.py  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
index af66c48c7d..26ab8e7f36 100644
--- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
@@ -251,11 +251,11 @@ class PlatformAutoGen(AutoGen):
 
         VariableInfo = VariableMgr(self.DscBuildDataObj._GetDefaultStores(), self.DscBuildDataObj.SkuIds)
         VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)
         VariableInfo.SetVpdRegionOffset(VpdRegionBase)
         Index = 0
-        for Pcd in DynamicPcdSet:
+        for Pcd in sorted(DynamicPcdSet):
             pcdname = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
             for SkuName in Pcd.SkuInfoList:
                 Sku = Pcd.SkuInfoList[SkuName]
                 SkuId = Sku.SkuId
                 if SkuId is None or SkuId == '':
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 1afbd3eefc..4a128c8a77 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -2582,11 +2582,11 @@ class DscBuildData(PlatformBuildClassObject):
                     IncludeFiles.add(IncludeFile)
                     CApp = CApp + '#include <%s>\n' % (IncludeFile)
         CApp = CApp + '\n'
         for Pcd in StructuredPcds.values():
             CApp = CApp + self.GenerateArrayAssignment(Pcd)
-        for PcdName in StructuredPcds:
+        for PcdName in sorted(StructuredPcds.keys()):
             Pcd = StructuredPcds[PcdName]
             CApp = CApp + self.GenerateSizeFunction(Pcd)
             CApp = CApp + self.GenerateDefaultValueAssignFunction(Pcd)
             CApp = CApp + self.GenerateFdfValue(Pcd)
             CApp = CApp + self.GenerateCommandLineValue(Pcd)
-- 
2.20.1.windows.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* 回复: [Patch] BaseTools: Sort the Pcd set when generating the VPD binary
  2020-09-04 14:30 [Patch] BaseTools: Sort the Pcd set when generating the VPD binary Bob Feng
@ 2020-09-07  0:40 ` gaoliming
  2020-09-07 13:48 ` [edk2-devel] " Philippe Mathieu-Daudé
  1 sibling, 0 replies; 4+ messages in thread
From: gaoliming @ 2020-09-07  0:40 UTC (permalink / raw)
  To: 'Bob Feng', devel; +Cc: 'Yuwei Chen'

Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>

> -----邮件原件-----
> 发件人: Bob Feng <bob.c.feng@intel.com>
> 发送时间: 2020年9月4日 22:30
> 收件人: devel@edk2.groups.io
> 抄送: Liming Gao <gaoliming@byosoft.com.cn>; Yuwei Chen
> <yuwei.chen@intel.com>
> 主题: [Patch] BaseTools: Sort the Pcd set when generating the VPD binary
> 
> 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>
> ---
>  BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 2 +-
>  BaseTools/Source/Python/Workspace/DscBuildData.py  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> index af66c48c7d..26ab8e7f36 100644
> --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> @@ -251,11 +251,11 @@ class PlatformAutoGen(AutoGen):
> 
>          VariableInfo =
> VariableMgr(self.DscBuildDataObj._GetDefaultStores(),
> self.DscBuildDataObj.SkuIds)
>          VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)
>          VariableInfo.SetVpdRegionOffset(VpdRegionBase)
>          Index = 0
> -        for Pcd in DynamicPcdSet:
> +        for Pcd in sorted(DynamicPcdSet):
>              pcdname = ".".join((Pcd.TokenSpaceGuidCName,
> Pcd.TokenCName))
>              for SkuName in Pcd.SkuInfoList:
>                  Sku = Pcd.SkuInfoList[SkuName]
>                  SkuId = Sku.SkuId
>                  if SkuId is None or SkuId == '':
> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py
> b/BaseTools/Source/Python/Workspace/DscBuildData.py
> index 1afbd3eefc..4a128c8a77 100644
> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py
> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
> @@ -2582,11 +2582,11 @@ class DscBuildData(PlatformBuildClassObject):
>                      IncludeFiles.add(IncludeFile)
>                      CApp = CApp + '#include <%s>\n' % (IncludeFile)
>          CApp = CApp + '\n'
>          for Pcd in StructuredPcds.values():
>              CApp = CApp + self.GenerateArrayAssignment(Pcd)
> -        for PcdName in StructuredPcds:
> +        for PcdName in sorted(StructuredPcds.keys()):
>              Pcd = StructuredPcds[PcdName]
>              CApp = CApp + self.GenerateSizeFunction(Pcd)
>              CApp = CApp + self.GenerateDefaultValueAssignFunction(Pcd)
>              CApp = CApp + self.GenerateFdfValue(Pcd)
>              CApp = CApp + self.GenerateCommandLineValue(Pcd)
> --
> 2.20.1.windows.1




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-devel] [Patch] BaseTools: Sort the Pcd set when generating the VPD binary
  2020-09-04 14:30 [Patch] BaseTools: Sort the Pcd set when generating the VPD binary Bob Feng
  2020-09-07  0:40 ` 回复: " gaoliming
@ 2020-09-07 13:48 ` Philippe Mathieu-Daudé
  2020-09-08  9:29   ` Bob Feng
  1 sibling, 1 reply; 4+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-09-07 13:48 UTC (permalink / raw)
  To: devel, bob.c.feng; +Cc: Liming Gao, Yuwei Chen

On 9/4/20 4:30 PM, Bob Feng wrote:
> 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: Philippe Mathieu-Daude <philmd@redhat.com>

> ---
>  BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 2 +-
>  BaseTools/Source/Python/Workspace/DscBuildData.py  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> index af66c48c7d..26ab8e7f36 100644
> --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> @@ -251,11 +251,11 @@ class PlatformAutoGen(AutoGen):
>  
>          VariableInfo = VariableMgr(self.DscBuildDataObj._GetDefaultStores(), self.DscBuildDataObj.SkuIds)
>          VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)
>          VariableInfo.SetVpdRegionOffset(VpdRegionBase)
>          Index = 0
> -        for Pcd in DynamicPcdSet:
> +        for Pcd in sorted(DynamicPcdSet):
>              pcdname = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
>              for SkuName in Pcd.SkuInfoList:
>                  Sku = Pcd.SkuInfoList[SkuName]
>                  SkuId = Sku.SkuId
>                  if SkuId is None or SkuId == '':
> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
> index 1afbd3eefc..4a128c8a77 100644
> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py
> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
> @@ -2582,11 +2582,11 @@ class DscBuildData(PlatformBuildClassObject):
>                      IncludeFiles.add(IncludeFile)
>                      CApp = CApp + '#include <%s>\n' % (IncludeFile)
>          CApp = CApp + '\n'
>          for Pcd in StructuredPcds.values():
>              CApp = CApp + self.GenerateArrayAssignment(Pcd)
> -        for PcdName in StructuredPcds:
> +        for PcdName in sorted(StructuredPcds.keys()):
>              Pcd = StructuredPcds[PcdName]
>              CApp = CApp + self.GenerateSizeFunction(Pcd)
>              CApp = CApp + self.GenerateDefaultValueAssignFunction(Pcd)
>              CApp = CApp + self.GenerateFdfValue(Pcd)
>              CApp = CApp + self.GenerateCommandLineValue(Pcd)
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-devel] [Patch] BaseTools: Sort the Pcd set when generating the VPD binary
  2020-09-07 13:48 ` [edk2-devel] " Philippe Mathieu-Daudé
@ 2020-09-08  9:29   ` Bob Feng
  0 siblings, 0 replies; 4+ messages in thread
From: Bob Feng @ 2020-09-08  9:29 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, devel@edk2.groups.io
  Cc: Liming Gao, Chen, Christine

Patch is pushed at 859e095.


Thanks,
Bob

-----Original Message-----
From: Philippe Mathieu-Daudé <philmd@redhat.com> 
Sent: Monday, September 7, 2020 9:49 PM
To: devel@edk2.groups.io; Feng, Bob C <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>; Chen, Christine <yuwei.chen@intel.com>
Subject: Re: [edk2-devel] [Patch] BaseTools: Sort the Pcd set when generating the VPD binary

On 9/4/20 4:30 PM, Bob Feng wrote:
> 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: Philippe Mathieu-Daude <philmd@redhat.com>

> ---
>  BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 2 +-  
> BaseTools/Source/Python/Workspace/DscBuildData.py  | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py 
> b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> index af66c48c7d..26ab8e7f36 100644
> --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py
> @@ -251,11 +251,11 @@ class PlatformAutoGen(AutoGen):
>  
>          VariableInfo = VariableMgr(self.DscBuildDataObj._GetDefaultStores(), self.DscBuildDataObj.SkuIds)
>          VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)
>          VariableInfo.SetVpdRegionOffset(VpdRegionBase)
>          Index = 0
> -        for Pcd in DynamicPcdSet:
> +        for Pcd in sorted(DynamicPcdSet):
>              pcdname = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
>              for SkuName in Pcd.SkuInfoList:
>                  Sku = Pcd.SkuInfoList[SkuName]
>                  SkuId = Sku.SkuId
>                  if SkuId is None or SkuId == '':
> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py 
> b/BaseTools/Source/Python/Workspace/DscBuildData.py
> index 1afbd3eefc..4a128c8a77 100644
> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py
> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
> @@ -2582,11 +2582,11 @@ class DscBuildData(PlatformBuildClassObject):
>                      IncludeFiles.add(IncludeFile)
>                      CApp = CApp + '#include <%s>\n' % (IncludeFile)
>          CApp = CApp + '\n'
>          for Pcd in StructuredPcds.values():
>              CApp = CApp + self.GenerateArrayAssignment(Pcd)
> -        for PcdName in StructuredPcds:
> +        for PcdName in sorted(StructuredPcds.keys()):
>              Pcd = StructuredPcds[PcdName]
>              CApp = CApp + self.GenerateSizeFunction(Pcd)
>              CApp = CApp + self.GenerateDefaultValueAssignFunction(Pcd)
>              CApp = CApp + self.GenerateFdfValue(Pcd)
>              CApp = CApp + self.GenerateCommandLineValue(Pcd)
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-09-08  9:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-04 14:30 [Patch] BaseTools: Sort the Pcd set when generating the VPD binary Bob Feng
2020-09-07  0:40 ` 回复: " gaoliming
2020-09-07 13:48 ` [edk2-devel] " Philippe Mathieu-Daudé
2020-09-08  9:29   ` Bob Feng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox