Reviewed-by: Liming Gao <[email protected]>

>-----Original Message-----
>From: Zhao, ZhiqiangX
>Sent: Wednesday, September 26, 2018 6:06 PM
>To: [email protected]
>Cc: Zhao, ZhiqiangX <[email protected]>; Gao, Liming
><[email protected]>; Zhu, Yonghong <[email protected]>; Feng,
>Bob C <[email protected]>
>Subject: [PATCH] BaseTools: Convert string value of void* pcd in command
>line to array.
>
>For void* type pcd in command line, if its value is string, then
>convert the string value to array format. For example,
>build --pcd gUefiOvmfPkgTokenSpaceGuid.PcdTest="c",
>convert the pcd value from "c" to "{0x63,0x00}".
>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: ZhiqiangX Zhao <[email protected]>
>Cc: Liming Gao <[email protected]>
>Cc: Yonghong Zhu <[email protected]>
>Cc: Bob Feng <[email protected]>
>---
> BaseTools/Source/Python/Workspace/DscBuildData.py | 38
>++++++++++++++++++-----
> 1 file changed, 30 insertions(+), 8 deletions(-)
>
>diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py
>b/BaseTools/Source/Python/Workspace/DscBuildData.py
>index ac0f0bee47..0bb2c17732 100644
>--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
>+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
>@@ -1299,16 +1299,29 @@ class DscBuildData(PlatformBuildClassObject):
>                 if isinstance(self._DecPcds.get((Pcd.TokenCName,
>Pcd.TokenSpaceGuidCName), None), StructurePcd):
>                     self._DecPcds.get((Pcd.TokenCName,
>Pcd.TokenSpaceGuidCName)).PcdValueFromComm =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>                 else:
>-                    Pcd.PcdValueFromComm =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>-                    Pcd.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0]
>+                    if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                        Pcd.PcdValueFromComm =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                        Pcd.DefaultValue = 
>NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0]
>+                    else:
>+                        Pcd.PcdValueFromComm =
>StringToArray(NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0])
>+                        Pcd.DefaultValue =
>StringToArray(NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0])
>                     for sku in Pcd.SkuInfoList:
>                         SkuInfo = Pcd.SkuInfoList[sku]
>                         if SkuInfo.DefaultValue:
>-                            SkuInfo.DefaultValue =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                            if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                                SkuInfo.DefaultValue =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                            else:
>+                                SkuInfo.DefaultValue =
>StringToArray(NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0])
>                         else:
>-                            SkuInfo.HiiDefaultValue =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                            if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                                SkuInfo.HiiDefaultValue =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                            else:
>+                                SkuInfo.HiiDefaultValue =
>StringToArray(NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0])
>                             for defaultstore in SkuInfo.DefaultStoreDict:
>-                                SkuInfo.DefaultStoreDict[defaultstore] =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                                if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                                    SkuInfo.DefaultStoreDict[defaultstore] =
>NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
>+                                else:
>+                                    SkuInfo.DefaultStoreDict[defaultstore] =
>StringToArray(NoFiledValues[(Pcd.TokenSpaceGuidCName,
>Pcd.TokenCName)][0])
>                     if Pcd.Type in
>[self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII],
>self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII]]:
>                         if Pcd.DatumType == TAB_VOID:
>                             if not Pcd.MaxDatumSize:
>@@ -1320,17 +1333,26 @@ class DscBuildData(PlatformBuildClassObject):
>             else:
>                 PcdInDec = self.DecPcds.get((Name, Guid))
>                 if PcdInDec:
>-                    PcdInDec.PcdValueFromComm = NoFiledValues[(Guid, Name)][0]
>+                    if PcdInDec.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                        PcdInDec.PcdValueFromComm = NoFiledValues[(Guid,
>Name)][0]
>+                    else:
>+                        PcdInDec.PcdValueFromComm =
>StringToArray(NoFiledValues[(Guid, Name)][0])
>                     if PcdInDec.Type in
>[self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],
>
>self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE],
>                                         
> self._PCD_TYPE_STRING_[MODEL_PCD_FEATURE_FLAG],
>                                         
> self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC],
>                                         
> self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX]]:
>                         self.Pcds[Name, Guid] = copy.deepcopy(PcdInDec)
>-                        self.Pcds[Name, Guid].DefaultValue = NoFiledValues[( 
>Guid,
>Name)][0]
>+                        if PcdInDec.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                            self.Pcds[Name, Guid].DefaultValue = 
>NoFiledValues[( Guid,
>Name)][0]
>+                        else:
>+                            self.Pcds[Name, Guid].DefaultValue =
>StringToArray(NoFiledValues[( Guid, Name)][0])
>                     if PcdInDec.Type in
>[self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC],
>                                         
> self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX]]:
>-                        self.Pcds[Name, Guid].SkuInfoList =
>{TAB_DEFAULT:SkuInfoClass(TAB_DEFAULT, self.SkuIds[TAB_DEFAULT][0], '',
>'', '', '', '', NoFiledValues[( Guid, Name)][0])}
>+                        if PcdInDec.DatumType in TAB_PCD_NUMERIC_TYPES:
>+                            self.Pcds[Name, Guid].SkuInfoList =
>{TAB_DEFAULT:SkuInfoClass(TAB_DEFAULT, self.SkuIds[TAB_DEFAULT][0], '',
>'', '', '', '', NoFiledValues[( Guid, Name)][0])}
>+                        else:
>+                            self.Pcds[Name, Guid].SkuInfoList =
>{TAB_DEFAULT:SkuInfoClass(TAB_DEFAULT, self.SkuIds[TAB_DEFAULT][0], '',
>'', '', '', '',  StringToArray(NoFiledValues[( Guid, Name)][0]))}
>         return AllPcds
>
>     def OverrideByFdfOverAll(self,AllPcds):
>--
>2.14.1.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to