]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/DynamicCommand/DpDynamicCommand/Dp.c
ShellPkg/DpDynamicCommand: Add ResetEnd support in DP command
[mirror_edk2.git] / ShellPkg / DynamicCommand / DpDynamicCommand / Dp.c
index 1799ab176a16904e354a773eed8fae66555147fd..512a146da6dd2de9f2abaa082718199aa03ad0ad 100644 (file)
@@ -57,6 +57,7 @@ UINT8    *mBootPerformanceTable;
 UINTN    mBootPerformanceTableSize;\r
 BOOLEAN  mPeiPhase = FALSE;\r
 BOOLEAN  mDxePhase = FALSE;\r
 UINTN    mBootPerformanceTableSize;\r
 BOOLEAN  mPeiPhase = FALSE;\r
 BOOLEAN  mDxePhase = FALSE;\r
+UINT64   mResetEnd = 0;\r
 \r
 PERF_SUMMARY_DATA   SummaryData       = { 0 }; ///< Create the SummaryData structure and init. to ZERO.\r
 MEASUREMENT_RECORD  *mMeasurementList = NULL;\r
 \r
 PERF_SUMMARY_DATA   SummaryData       = { 0 }; ///< Create the SummaryData structure and init. to ZERO.\r
 MEASUREMENT_RECORD  *mMeasurementList = NULL;\r
@@ -542,6 +543,8 @@ BuildMeasurementList (
 {\r
   EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER  *RecordHeader;\r
   UINT8                                        *PerformanceTablePtr;\r
 {\r
   EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER  *RecordHeader;\r
   UINT8                                        *PerformanceTablePtr;\r
+  UINT8                                        *BasicBootTablePtr;\r
+  UINT64                                       ResetEnd;\r
   UINT16                                       StartProgressId;\r
   UINTN                                        TableLength;\r
   UINT8                                        *StartRecordEvent;\r
   UINT16                                       StartProgressId;\r
   UINTN                                        TableLength;\r
   UINT8                                        *StartRecordEvent;\r
@@ -552,6 +555,17 @@ BuildMeasurementList (
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
+  //\r
+  // Update the ResetEnd which was logged at the beginning of firmware image execution\r
+  //\r
+  TableLength       = sizeof (EFI_ACPI_5_0_FPDT_PERFORMANCE_TABLE_HEADER);\r
+  BasicBootTablePtr = (mBootPerformanceTable + TableLength);\r
+  ResetEnd          = ((EFI_ACPI_5_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD *)BasicBootTablePtr)->ResetEnd;\r
+\r
+  if (ResetEnd > 0) {\r
+    mResetEnd = ResetEnd;\r
+  }\r
+\r
   TableLength         = sizeof (BOOT_PERFORMANCE_TABLE);\r
   PerformanceTablePtr = (mBootPerformanceTable + TableLength);\r
 \r
   TableLength         = sizeof (BOOT_PERFORMANCE_TABLE);\r
   PerformanceTablePtr = (mBootPerformanceTable + TableLength);\r
 \r