Reviewed-by: Yuwei Chen<yuwei.c...@intel.com>

> -----Original Message-----
> From: Lin, Jason1 <jason1....@intel.com>
> Sent: Friday, July 1, 2022 11:10 PM
> To: devel@edk2.groups.io
> Cc: Lin, Jason1 <jason1....@intel.com>; Feng, Bob C <bob.c.f...@intel.com>;
> Gao, Liming <gaolim...@byosoft.com.cn>; Chen, Christine
> <yuwei.c...@intel.com>; Oram, Isaac W <isaac.w.o...@intel.com>;
> Chaganty, Rangasai V <rangasai.v.chaga...@intel.com>; Chiang, Dakota
> <dakota.chi...@intel.com>
> Subject: [PATCH v3 2/3] [edk2-platforms] Silicon/Intel/FitGen: Reduce the
> typecasting and pointer usage
> 
> From: Jason1 Lin <jason1....@intel.com>
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3958
> 
> FitGen tool exists lots of typecasting and pointer usage.
> This code change is used to reduce these in FillFitTable () and 
> GetFitEntryInfo
> ().
> To make code more clearly and easy to read.
> 
> Signed-off-by: Jason1 Lin <jason1....@intel.com>
> Cc: Bob Feng <bob.c.f...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Cc: Yuwei Chen <yuwei.c...@intel.com>
> Cc: Isaac W Oram <isaac.w.o...@intel.com>
> Cc: Rangasai V Chaganty <rangasai.v.chaga...@intel.com>
> Cc: Dakota Chiang <dakota.chi...@intel.com>
> ---
>  Silicon/Intel/Tools/FitGen/FitGen.c | 125 ++++++++++++--------
>  1 file changed, 78 insertions(+), 47 deletions(-)
> 
> diff --git a/Silicon/Intel/Tools/FitGen/FitGen.c
> b/Silicon/Intel/Tools/FitGen/FitGen.c
> index eac8fa8715..01b4f82518 100644
> --- a/Silicon/Intel/Tools/FitGen/FitGen.c
> +++ b/Silicon/Intel/Tools/FitGen/FitGen.c
> @@ -2768,6 +2768,7 @@ Returns:
>  {   FIRMWARE_INTERFACE_TABLE_ENTRY *FitEntry;   UINT32
> FitIndex;+  UINT32                          FitEntrySizeValue;   UINT32
> Index;   UINT8                           Checksum;   UINTN                    
>        SubIndex;@@
> -2788,27 +2789,35 @@ Returns:
>    //   // 2. FitHeader   //-  FitEntry[FitIndex].Address             = 
> *(UINT64
> *)"_FIT_   ";-  *(UINT32 *)&FitEntry[FitIndex].Size[0] =
> gFitTableContext.FitEntryNumber;-  FitEntry[FitIndex].Version             =
> (UINT16)gFitTableContext.FitHeaderVersion;-  FitEntry[FitIndex].Type
> = FIT_TABLE_TYPE_HEADER;-  FitEntry[FitIndex].C_V                 = 1;+
> FitEntrySizeValue           = gFitTableContext.FitEntryNumber;+
> FitEntry[FitIndex].Address  = *(UINT64 *)"_FIT_   ";+  
> FitEntry[FitIndex].Size[0]
> = (UINT8)FitEntrySizeValue;+  FitEntry[FitIndex].Size[1]  =
> (UINT8)(FitEntrySizeValue >> 8);+  FitEntry[FitIndex].Size[2]  =
> (UINT8)(FitEntrySizeValue >> 16);+  FitEntry[FitIndex].Rsvd     = 0;+
> FitEntry[FitIndex].Version  = (UINT16)gFitTableContext.FitHeaderVersion;+
> FitEntry[FitIndex].Type     = FIT_TABLE_TYPE_HEADER;+
> FitEntry[FitIndex].C_V      = 1;   //   // Checksum will be updated later...  
>  //-
> FitEntry[FitIndex].Checksum            = 0;+  FitEntry[FitIndex].Checksum = 
> 0;    //
> // 3. Microcode   //   FitIndex++;   for (Index = 0; Index <
> gFitTableContext.MicrocodeNumber; Index++) {-    FitEntry[FitIndex].Address
> = gFitTableContext.Microcode[Index].Address;-    *(UINT32
> *)&FitEntry[FitIndex].Size[0] = 0; //gFitTableContext.Microcode[Index].Size /
> 16;-    FitEntry[FitIndex].Version             =
> (UINT16)gFitTableContext.MicrocodeVersion;-    FitEntry[FitIndex].Type
> = FIT_TABLE_TYPE_MICROCODE;-    FitEntry[FitIndex].C_V                 = 0;-
> FitEntry[FitIndex].Checksum            = 0;+    FitEntrySizeValue           = 
> 0; //
> gFitTableContext.Microcode[Index].Size / 16+    FitEntry[FitIndex].Address  =
> gFitTableContext.Microcode[Index].Address;+    FitEntry[FitIndex].Size[0]  =
> (UINT8)FitEntrySizeValue;+    FitEntry[FitIndex].Size[1]  =
> (UINT8)(FitEntrySizeValue >> 8);+    FitEntry[FitIndex].Size[2]  =
> (UINT8)(FitEntrySizeValue >> 16);+    FitEntry[FitIndex].Rsvd     = 0;+
> FitEntry[FitIndex].Version  = (UINT16)gFitTableContext.MicrocodeVersion;+
> FitEntry[FitIndex].Type     = FIT_TABLE_TYPE_MICROCODE;+
> FitEntry[FitIndex].C_V      = 0;+    FitEntry[FitIndex].Checksum = 0;
> FitIndex++;   } @@ -2816,12 +2825,16 @@ Returns:
>    // 4. StartupAcm   //   for (Index = 0; Index <
> gFitTableContext.StartupAcmNumber; Index++) {-
> FitEntry[FitIndex].Address             =
> gFitTableContext.StartupAcm[Index].Address;-    *(UINT32
> *)&FitEntry[FitIndex].Size[0] = 0; //gFitTableContext.StartupAcm.Size / 16;-
> FitEntry[FitIndex].Version             =
> (UINT16)gFitTableContext.StartupAcmVersion;-    FitEntry[FitIndex].Type
> = FIT_TABLE_TYPE_STARTUP_ACM;-    FitEntry[FitIndex].C_V                 = 0;-
> FitEntry[FitIndex].Checksum            = 0;+    FitEntrySizeValue           = 
> 0; //
> gFitTableContext.StartupAcm.Size / 16+    FitEntry[FitIndex].Address  =
> gFitTableContext.StartupAcm[Index].Address;+    FitEntry[FitIndex].Size[0]  =
> (UINT8)FitEntrySizeValue;+    FitEntry[FitIndex].Size[1]  =
> (UINT8)(FitEntrySizeValue >> 8);+    FitEntry[FitIndex].Size[2]  =
> (UINT8)(FitEntrySizeValue >> 16);+    FitEntry[FitIndex].Rsvd     = 0;+
> FitEntry[FitIndex].Version  = (UINT16)gFitTableContext.StartupAcmVersion;+
> FitEntry[FitIndex].Type     = FIT_TABLE_TYPE_STARTUP_ACM;+
> FitEntry[FitIndex].C_V      = 0;+    FitEntry[FitIndex].Checksum = 0;
> FitIndex++;   } @@ -2829,19 +2842,23 @@ Returns:
>    // 4.5. DiagnosticAcm   //   if (gFitTableContext.DiagnstAcm.Address != 0) 
> {-
> FitEntry[FitIndex].Address             = gFitTableContext.DiagnstAcm.Address;-
> *(UINT32 *)&FitEntry[FitIndex].Size[0] = 0;-    FitEntry[FitIndex].Version
> = (UINT16)gFitTableContext.DiagnstAcmVersion;-    FitEntry[FitIndex].Type
> = FIT_TABLE_TYPE_DIAGNST_ACM;-    FitEntry[FitIndex].C_V                 = 0;-
> FitEntry[FitIndex].Checksum            = 0;+    FitEntrySizeValue           = 
> 0; //
> gFitTableContext.DiagnstAcmVersion.Size / 16+    FitEntry[FitIndex].Address
> = gFitTableContext.DiagnstAcm.Address;+    FitEntry[FitIndex].Size[0]  =
> (UINT8)FitEntrySizeValue;+    FitEntry[FitIndex].Size[1]  =
> (UINT8)(FitEntrySizeValue >> 8);+    FitEntry[FitIndex].Size[2]  =
> (UINT8)(FitEntrySizeValue >> 16);+    FitEntry[FitIndex].Rsvd     = 0;+
> FitEntry[FitIndex].Version  = (UINT16)gFitTableContext.DiagnstAcmVersion;+
> FitEntry[FitIndex].Type     = FIT_TABLE_TYPE_DIAGNST_ACM;+
> FitEntry[FitIndex].C_V      = 0;+    FitEntry[FitIndex].Checksum = 0;
> FitIndex++;   }   //   // 5. BiosModule   //   //-  // BiosModule segments 
> order
> needs to be put from low addresss to high for Btg requirement+  //
> BiosModule segments order needs to be put from low address to high for Btg
> requirement   //   if (gFitTableContext.BiosModuleNumber > 1) {     for (Index
> = 0; Index < (UINTN)gFitTableContext.BiosModuleNumber - 1; Index++){@@ -
> 2855,12 +2872,16 @@ Returns:
>      }   }   for (Index = 0; Index < gFitTableContext.BiosModuleNumber; 
> Index++)
> {-    FitEntry[FitIndex].Address             =
> gFitTableContext.BiosModule[Index].Address;-    *(UINT32
> *)&FitEntry[FitIndex].Size[0] = gFitTableContext.BiosModule[Index].Size / 16;-
> FitEntry[FitIndex].Version             =
> (UINT16)gFitTableContext.BiosModuleVersion;-    FitEntry[FitIndex].Type
> = FIT_TABLE_TYPE_BIOS_MODULE;-    FitEntry[FitIndex].C_V                 = 0;-
> FitEntry[FitIndex].Checksum            = 0;+    FitEntrySizeValue           =
> gFitTableContext.BiosModule[Index].Size / 16;+    FitEntry[FitIndex].Address
> = gFitTableContext.BiosModule[Index].Address;+    FitEntry[FitIndex].Size[0]
> = (UINT8)FitEntrySizeValue;+    FitEntry[FitIndex].Size[1]  =
> (UINT8)(FitEntrySizeValue >> 8);+    FitEntry[FitIndex].Size[2]  =
> (UINT8)(FitEntrySizeValue >> 16);+    FitEntry[FitIndex].Rsvd     = 0;+
> FitEntry[FitIndex].Version  = (UINT16)gFitTableContext.BiosModuleVersion;+
> FitEntry[FitIndex].Type     = FIT_TABLE_TYPE_BIOS_MODULE;+
> FitEntry[FitIndex].C_V      = 0;+    FitEntry[FitIndex].Checksum = 0;
> FitIndex++;   } @@ -2868,15 +2889,18 @@ Returns:
>    // 6. Optional module   //   for (Index = 0; Index <
> gFitTableContext.OptionalModuleNumber; Index++) {-
> FitEntry[FitIndex].Address             =
> gFitTableContext.OptionalModule[Index].Address;-    *(UINT32
> *)&FitEntry[FitIndex].Size[0] = gFitTableContext.OptionalModule[Index].Size;-
> FitEntry[FitIndex].Version             =
> (UINT16)gFitTableContext.OptionalModule[Index].Version;-
> FitEntry[FitIndex].Type                =
> (UINT8)gFitTableContext.OptionalModule[Index].Type;+    FitEntrySizeValue
> = gFitTableContext.OptionalModule[Index].Size;+    FitEntry[FitIndex].Address
> = gFitTableContext.OptionalModule[Index].Address;+
> FitEntry[FitIndex].Size[0]  = (UINT8)FitEntrySizeValue;+
> FitEntry[FitIndex].Size[1]  = (UINT8)(FitEntrySizeValue >> 8);+
> FitEntry[FitIndex].Size[2]  = (UINT8)(FitEntrySizeValue >> 16);+
> FitEntry[FitIndex].Version  =
> (UINT16)gFitTableContext.OptionalModule[Index].Version;+
> FitEntry[FitIndex].Type     =
> (UINT8)gFitTableContext.OptionalModule[Index].Type;     if
> (FitEntry[FitIndex].Type == FIT_TABLE_TYPE_CSE_SECURE_BOOT) {-
> FitEntry[FitIndex].Rsvd              =
> (UINT8)gFitTableContext.OptionalModule[Index].SubType;+
> FitEntry[FitIndex].Rsvd   =
> (UINT8)gFitTableContext.OptionalModule[Index].SubType;     }-
> FitEntry[FitIndex].C_V                 = 0;-    FitEntry[FitIndex].Checksum   
>          = 0;+
> FitEntry[FitIndex].C_V      = 0;+    FitEntry[FitIndex].Checksum = 0;
> FitIndex++;   } @@ -2884,12 +2908,16 @@ Returns:
>    // 7. Port module   //   for (Index = 0; Index <
> gFitTableContext.PortModuleNumber; Index++) {-
> FitEntry[FitIndex].Address             =
> gFitTableContext.PortModule[Index].Address +
> ((UINT64)gFitTableContext.PortModule[Index].Size << 32);-    *(UINT32
> *)&FitEntry[FitIndex].Size[0] = 0;-    FitEntry[FitIndex].Version             
> =
> (UINT16)gFitTableContext.PortModule[Index].Version;-
> FitEntry[FitIndex].Type                =
> (UINT8)gFitTableContext.PortModule[Index].Type;-    FitEntry[FitIndex].C_V
> = 0;-    FitEntry[FitIndex].Checksum            = 0;+    FitEntrySizeValue    
>        = 0;+
> FitEntry[FitIndex].Address  = gFitTableContext.PortModule[Index].Address +
> ((UINT64)gFitTableContext.PortModule[Index].Size << 32);+
> FitEntry[FitIndex].Size[0]  = (UINT8)FitEntrySizeValue;+
> FitEntry[FitIndex].Size[1]  = (UINT8)(FitEntrySizeValue >> 8);+
> FitEntry[FitIndex].Size[2]  = (UINT8)(FitEntrySizeValue >> 16);+
> FitEntry[FitIndex].Rsvd     = 0;+    FitEntry[FitIndex].Version  =
> (UINT16)gFitTableContext.PortModule[Index].Version;+
> FitEntry[FitIndex].Type     =
> (UINT8)gFitTableContext.PortModule[Index].Type;+    FitEntry[FitIndex].C_V
> = 0;+    FitEntry[FitIndex].Checksum = 0;     FitIndex++;   } @@ -3130,6 
> +3158,7
> @@ Returns:
>  --*/ {   FIRMWARE_INTERFACE_TABLE_ENTRY *FitEntry;+  UINT32
> FitEntrySizeValue;   UINT32                          FitIndex;   UINT32
> FitTableOffset; @@ -3155,7 +3184,8 @@ Returns:
>    if (FitEntry[FitIndex].Type != FIT_TABLE_TYPE_HEADER) {     return 0;   }-
> gFitTableContext.FitEntryNumber = *(UINT32 *)&FitEntry[FitIndex].Size[0];+
> FitEntrySizeValue = (((UINT32)FitEntry[FitIndex].Size[2]) << 16) +
> (((UINT32)FitEntry[FitIndex].Size[1]) << 8) +
> ((UINT32)FitEntry[FitIndex].Size[0]);+  gFitTableContext.FitEntryNumber =
> FitEntrySizeValue;   gFitTableContext.FitHeaderVersion =
> FitEntry[FitIndex].Version;    //@@ -3163,6 +3193,7 @@ Returns:
>    //   FitIndex++;   for (; FitIndex < gFitTableContext.FitEntryNumber;
> FitIndex++) {+    FitEntrySizeValue = (((UINT32)FitEntry[FitIndex].Size[2]) 
> << 16)
> + (((UINT32)FitEntry[FitIndex].Size[1]) << 8) +
> ((UINT32)FitEntry[FitIndex].Size[0]);     switch (FitEntry[FitIndex].Type)
> {     case FIT_TABLE_TYPE_MICROCODE:
> gFitTableContext.Microcode[gFitTableContext.MicrocodeNumber].Address =
> (UINT32)FitEntry[FitIndex].Address;@@ -3175,7 +3206,7 @@ Returns:
>        break;     case FIT_TABLE_TYPE_BIOS_MODULE:
> gFitTableContext.BiosModule[gFitTableContext.BiosModuleNumber].Address
> = (UINT32)FitEntry[FitIndex].Address;-
> gFitTableContext.BiosModule[gFitTableContext.BiosModuleNumber].Size    =
> *(UINT32 *)&FitEntry[FitIndex].Size[0] * 16;+
> gFitTableContext.BiosModule[gFitTableContext.BiosModuleNumber].Size    =
> FitEntrySizeValue * 16;       gFitTableContext.BiosModuleVersion
> = FitEntry[FitIndex].Version;       gFitTableContext.BiosModuleNumber ++;
> break;@@ -3192,7 +3223,7 @@ Returns:
>        // Not Port Configure, pass through     default: // Others
> gFitTableContext.OptionalModule[gFitTableContext.OptionalModuleNumber
> ].Address = (UINT32)FitEntry[FitIndex].Address;-
> gFitTableContext.OptionalModule[gFitTableContext.OptionalModuleNumber
> ].Size    = *(UINT32 *)&FitEntry[FitIndex].Size[0];+
> gFitTableContext.OptionalModule[gFitTableContext.OptionalModuleNumber
> ].Size    = FitEntrySizeValue;
> gFitTableContext.OptionalModule[gFitTableContext.OptionalModuleNumber
> ].Version = FitEntry[FitIndex].Version;
> gFitTableContext.OptionalModule[gFitTableContext.OptionalModuleNumber
> ].Type    = FitEntry[FitIndex].Type;
> gFitTableContext.OptionalModuleNumber ++;--
> 2.37.0.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91021): https://edk2.groups.io/g/devel/message/91021
Mute This Topic: https://groups.io/mt/92111641/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to