Преглед на файлове

S-ACM entry ver 0x200 does not contain requested FMS&mask

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4198

After commit 1e1e35bb3b2fceea75ad97968da4b31f059dcb4c,
FIT Type 2 ACM entry is not generated as expected with given -I arguments.
FMS/FMS value is overridden by GetAcmFms().

This patch detects whether FMS/FMS Mask is already assigned
with -I argument. If it's not zero, skip invoking GetAcmFms().

Signed-off-by: Dakota Chiang <dakota.chiang@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Jason1 Lin <jason1.lin@intel.com>
Cc: Rahul R Kumar <rahul.r.kumar@intel.com>
Dakota Chiang преди 1 година
родител
ревизия
1b38454324
променени са 1 файла, в които са добавени 8 реда и са изтрити 3 реда
  1. 8 3
      Silicon/Intel/Tools/FitGen/FitGen.c

+ 8 - 3
Silicon/Intel/Tools/FitGen/FitGen.c

@@ -3745,9 +3745,14 @@ FitGen (
             DumpAcm((ACM_FORMAT *)AcmBuffer);
 
             if (gFitTableContext.StartupAcm[Index].Version >= 0x200) {
-              GetAcmFms((ACM_FORMAT *)AcmBuffer, &gFitTableContext.StartupAcm[Index].FMS, &gFitTableContext.StartupAcm[Index].FMSMask);
-              printf("ACM FMS:%08x\n", gFitTableContext.StartupAcm[Index].FMS);
-              printf("ACM FMS Mask:%08x\n", gFitTableContext.StartupAcm[Index].FMSMask);
+              if ((gFitTableContext.StartupAcm[Index].FMS == 0) && (gFitTableContext.StartupAcm[Index].FMSMask == 0)) {
+                //
+                // FMS and FMSMask is not assigned via -I argument. Get it from ACM
+                //
+                GetAcmFms((ACM_FORMAT *)AcmBuffer, &gFitTableContext.StartupAcm[Index].FMS, &gFitTableContext.StartupAcm[Index].FMSMask);
+                printf("ACM FMS:%08x\n", gFitTableContext.StartupAcm[Index].FMS);
+                printf("ACM FMS Mask:%08x\n", gFitTableContext.StartupAcm[Index].FMSMask);
+              }
             }
           }
           else {