These records will be added into ACPI FPDT Firmware Basic Boot Performance Table.\r
\r
Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials are licensed and made available under\r
-the terms and conditions of the BSD License that accompanies this distribution.\r
-The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php.\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
//\r
// Known performance tokens\r
//\r
-#define SEC_TOK "SEC" ///< SEC Phase\r
-#define DXE_TOK "DXE" ///< DXE Phase\r
-#define PEI_TOK "PEI" ///< PEI Phase\r
-#define BDS_TOK "BDS" ///< BDS Phase\r
-#define DRIVERBINDING_START_TOK "DB:Start:" ///< Driver Binding Start() function call\r
-#define DRIVERBINDING_SUPPORT_TOK "DB:Support:" ///< Driver Binding Support() function call\r
-#define DRIVERBINDING_STOP_TOK "DB:Stop:" ///< Driver Binding Stop() function call\r
-#define LOAD_IMAGE_TOK "LoadImage:" ///< Load a dispatched module\r
-#define START_IMAGE_TOK "StartImage:" ///< Dispatched Modules Entry Point execution\r
-#define PEIM_TOK "PEIM" ///< PEIM Modules Entry Point execution\r
+#define SEC_TOK "SEC" ///< SEC Phase\r
+#define DXE_TOK "DXE" ///< DXE Phase\r
+#define PEI_TOK "PEI" ///< PEI Phase\r
+#define BDS_TOK "BDS" ///< BDS Phase\r
+#define DRIVERBINDING_START_TOK "DB:Start:" ///< Driver Binding Start() function call\r
+#define DRIVERBINDING_SUPPORT_TOK "DB:Support:" ///< Driver Binding Support() function call\r
+#define DRIVERBINDING_STOP_TOK "DB:Stop:" ///< Driver Binding Stop() function call\r
+#define LOAD_IMAGE_TOK "LoadImage:" ///< Load a dispatched module\r
+#define START_IMAGE_TOK "StartImage:" ///< Dispatched Modules Entry Point execution\r
+#define PEIM_TOK "PEIM" ///< PEIM Modules Entry Point execution\r
\r
//\r
// Misc defines\r
//\r
-#define FPDT_RECORD_REVISION_1 (0x01)\r
+#define FPDT_RECORD_REVISION_1 (0x01)\r
\r
//\r
// Length field in EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER is a UINT8, thus:\r
//\r
-#define FPDT_MAX_PERF_RECORD_SIZE (MAX_UINT8)\r
+#define FPDT_MAX_PERF_RECORD_SIZE (MAX_UINT8)\r
\r
//\r
// FPDT Record Types\r
//\r
// EDKII extended Fpdt record structures\r
//\r
-#define FPDT_STRING_EVENT_RECORD_NAME_LENGTH 24\r
+#define FPDT_STRING_EVENT_RECORD_NAME_LENGTH 24\r
\r
#pragma pack(1)\r
//\r
// FPDT Boot Performance Guid Event Record Structure\r
//\r
typedef struct {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
///\r
/// ProgressID < 0x10 are reserved for core performance entries.\r
/// Start measurement point shall have lowered one nibble set to zero and\r
/// corresponding end points shall have lowered one nibble set to non-zero value;\r
/// keeping other nibbles same as start point.\r
///\r
- UINT16 ProgressID;\r
+ UINT16 ProgressID;\r
///\r
/// APIC ID for the processor in the system used as a timestamp clock source.\r
/// If only one timestamp clock source is used, this field is Reserved and populated as 0.\r
///\r
- UINT32 ApicID;\r
+ UINT32 ApicID;\r
///\r
/// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.\r
///\r
- UINT64 Timestamp;\r
+ UINT64 Timestamp;\r
///\r
/// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event.\r
///\r
- EFI_GUID Guid;\r
+ EFI_GUID Guid;\r
} FPDT_GUID_EVENT_RECORD;\r
\r
//\r
// FPDT Boot Performance Dynamic String Event Record Structure\r
//\r
typedef struct {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
///\r
/// ProgressID < 0x10 are reserved for core performance entries.\r
/// Start measurement point shall have lowered one nibble set to zero and\r
/// corresponding end points shall have lowered one nibble set to non-zero value;\r
/// keeping other nibbles same as start point.\r
///\r
- UINT16 ProgressID;\r
+ UINT16 ProgressID;\r
///\r
/// APIC ID for the processor in the system used as a timestamp clock source.\r
/// If only one timestamp clock source is used, this field is Reserved and populated as 0.\r
///\r
- UINT32 ApicID;\r
+ UINT32 ApicID;\r
///\r
/// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.\r
///\r
- UINT64 Timestamp;\r
+ UINT64 Timestamp;\r
///\r
/// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event.\r
///\r
- EFI_GUID Guid;\r
+ EFI_GUID Guid;\r
///\r
/// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).\r
/// It may be module name, function name, or token name.\r
///\r
- CHAR8 String[0];\r
+ CHAR8 String[0];\r
} FPDT_DYNAMIC_STRING_EVENT_RECORD;\r
\r
//\r
// FPDT Boot Performance Dual GUID String Event Record Structure\r
//\r
typedef struct {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
///\r
/// ProgressID < 0x10 are reserved for core performance entries.\r
/// Start measurement point shall have lowered one nibble set to zero and\r
/// corresponding end points shall have lowered one nibble set to non-zero value;\r
/// keeping other nibbles same as start point.\r
///\r
- UINT16 ProgressID;\r
+ UINT16 ProgressID;\r
///\r
/// APIC ID for the processor in the system used as a timestamp clock source.\r
/// If only one timestamp clock source is used, this field is Reserved and populated as 0.\r
///\r
- UINT32 ApicID;\r
+ UINT32 ApicID;\r
///\r
/// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.\r
///\r
- UINT64 Timestamp;\r
+ UINT64 Timestamp;\r
///\r
/// GUID of the module logging the event.\r
///\r
- EFI_GUID Guid1;\r
+ EFI_GUID Guid1;\r
///\r
/// Event or Ppi or Protocol GUID for Callback.\r
///\r
- EFI_GUID Guid2;\r
+ EFI_GUID Guid2;\r
///\r
/// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).\r
/// It is the function name.\r
///\r
- CHAR8 String[0];\r
+ CHAR8 String[0];\r
} FPDT_DUAL_GUID_STRING_EVENT_RECORD;\r
\r
//\r
// FPDT Boot Performance GUID Qword Event Record Structure\r
//\r
typedef struct {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
///\r
/// ProgressID < 0x10 are reserved for core performance entries.\r
/// Start measurement point shall have lowered one nibble set to zero and\r
/// corresponding end points shall have lowered one nibble set to non-zero value;\r
/// keeping other nibbles same as start point.\r
///\r
- UINT16 ProgressID;\r
+ UINT16 ProgressID;\r
///\r
/// APIC ID for the processor in the system used as a timestamp clock source.\r
/// If only one timestamp clock source is used, this field is Reserved and populated as 0.\r
///\r
- UINT32 ApicID;\r
+ UINT32 ApicID;\r
///\r
/// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.\r
///\r
- UINT64 Timestamp;\r
+ UINT64 Timestamp;\r
///\r
/// GUID of the module logging the event\r
///\r
- EFI_GUID Guid;\r
+ EFI_GUID Guid;\r
///\r
/// Qword of misc data, meaning depends on the ProgressId\r
///\r
- UINT64 Qword;\r
+ UINT64 Qword;\r
} FPDT_GUID_QWORD_EVENT_RECORD;\r
\r
//\r
// FPDT Boot Performance GUID Qword String Event Record Structure\r
//\r
typedef struct {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;\r
///\r
/// ProgressID < 0x10 are reserved for core performance entries.\r
/// Start measurement point shall have lowered one nibble set to zero and\r
/// corresponding end points shall have lowered one nibble set to non-zero value;\r
/// keeping other nibbles same as start point.\r
///\r
- UINT16 ProgressID;\r
+ UINT16 ProgressID;\r
///\r
/// APIC ID for the processor in the system used as a timestamp clock source.\r
/// If only one timestamp clock source is used, this field is Reserved and populated as 0.\r
///\r
- UINT32 ApicID;\r
+ UINT32 ApicID;\r
///\r
/// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.\r
///\r
- UINT64 Timestamp;\r
+ UINT64 Timestamp;\r
///\r
/// GUID of the module logging the event\r
///\r
- EFI_GUID Guid;\r
+ EFI_GUID Guid;\r
///\r
/// Qword of misc data, meaning depends on the ProgressId\r
///\r
- UINT64 Qword;\r
+ UINT64 Qword;\r
///\r
/// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).\r
///\r
- CHAR8 String[0];\r
+ CHAR8 String[0];\r
} FPDT_GUID_QWORD_STRING_EVENT_RECORD;\r
\r
#pragma pack()\r
// Union of all FPDT records\r
//\r
typedef union {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER RecordHeader;\r
- FPDT_GUID_EVENT_RECORD GuidEvent;\r
- FPDT_DYNAMIC_STRING_EVENT_RECORD DynamicStringEvent;\r
- FPDT_DUAL_GUID_STRING_EVENT_RECORD DualGuidStringEvent;\r
- FPDT_GUID_QWORD_EVENT_RECORD GuidQwordEvent;\r
- FPDT_GUID_QWORD_STRING_EVENT_RECORD GuidQwordStringEvent;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER RecordHeader;\r
+ FPDT_GUID_EVENT_RECORD GuidEvent;\r
+ FPDT_DYNAMIC_STRING_EVENT_RECORD DynamicStringEvent;\r
+ FPDT_DUAL_GUID_STRING_EVENT_RECORD DualGuidStringEvent;\r
+ FPDT_GUID_QWORD_EVENT_RECORD GuidQwordEvent;\r
+ FPDT_GUID_QWORD_STRING_EVENT_RECORD GuidQwordStringEvent;\r
} FPDT_RECORD;\r
\r
//\r
// Union of all pointers to FPDT records\r
//\r
typedef union {\r
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *RecordHeader;\r
- FPDT_GUID_EVENT_RECORD *GuidEvent;\r
- FPDT_DYNAMIC_STRING_EVENT_RECORD *DynamicStringEvent;\r
- FPDT_DUAL_GUID_STRING_EVENT_RECORD *DualGuidStringEvent;\r
- FPDT_GUID_QWORD_EVENT_RECORD *GuidQwordEvent;\r
- FPDT_GUID_QWORD_STRING_EVENT_RECORD *GuidQwordStringEvent;\r
+ EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *RecordHeader;\r
+ FPDT_GUID_EVENT_RECORD *GuidEvent;\r
+ FPDT_DYNAMIC_STRING_EVENT_RECORD *DynamicStringEvent;\r
+ FPDT_DUAL_GUID_STRING_EVENT_RECORD *DualGuidStringEvent;\r
+ FPDT_GUID_QWORD_EVENT_RECORD *GuidQwordEvent;\r
+ FPDT_GUID_QWORD_STRING_EVENT_RECORD *GuidQwordStringEvent;\r
} FPDT_RECORD_PTR;\r
\r
///\r
/// Data - FPDT_PEI_EXT_PERF_HEADER + one or more FPDT records\r
///\r
typedef struct {\r
- UINT32 SizeOfAllEntries;\r
- UINT32 LoadImageCount;\r
- UINT32 HobIsFull;\r
+ UINT32 SizeOfAllEntries;\r
+ UINT32 LoadImageCount;\r
+ UINT32 HobIsFull;\r
} FPDT_PEI_EXT_PERF_HEADER;\r
\r
-extern EFI_GUID gEdkiiFpdtExtendedFirmwarePerformanceGuid;\r
+extern EFI_GUID gEdkiiFpdtExtendedFirmwarePerformanceGuid;\r
\r
#endif\r