diff options
Diffstat (limited to 'MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h')
| -rw-r--r-- | MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h | 508 |
1 files changed, 254 insertions, 254 deletions
diff --git a/MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h b/MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h index 20be7654c8..52ae89eb06 100644 --- a/MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h +++ b/MdeModulePkg/Include/Guid/ExtendedFirmwarePerformance.h @@ -1,254 +1,254 @@ -/** @file
- This file defines edk2 extended firmware performance records.
- These records will be added into ACPI FPDT Firmware Basic Boot Performance Table.
-
-Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#ifndef __EXTENDED_FIRMWARE_PERFORMANCE_H__
-#define __EXTENDED_FIRMWARE_PERFORMANCE_H__
-
-#include <IndustryStandard/Acpi.h>
-
-//
-// Known performance tokens
-//
-#define SEC_TOK "SEC" ///< SEC Phase
-#define DXE_TOK "DXE" ///< DXE Phase
-#define PEI_TOK "PEI" ///< PEI Phase
-#define BDS_TOK "BDS" ///< BDS Phase
-#define DRIVERBINDING_START_TOK "DB:Start:" ///< Driver Binding Start() function call
-#define DRIVERBINDING_SUPPORT_TOK "DB:Support:" ///< Driver Binding Support() function call
-#define DRIVERBINDING_STOP_TOK "DB:Stop:" ///< Driver Binding Stop() function call
-#define LOAD_IMAGE_TOK "LoadImage:" ///< Load a dispatched module
-#define START_IMAGE_TOK "StartImage:" ///< Dispatched Modules Entry Point execution
-#define PEIM_TOK "PEIM" ///< PEIM Modules Entry Point execution
-
-//
-// Misc defines
-//
-#define FPDT_RECORD_REVISION_1 (0x01)
-
-//
-// Length field in EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER is a UINT8, thus:
-//
-#define FPDT_MAX_PERF_RECORD_SIZE (MAX_UINT8)
-
-//
-// FPDT Record Types
-//
-#define FPDT_GUID_EVENT_TYPE 0x1010
-#define FPDT_DYNAMIC_STRING_EVENT_TYPE 0x1011
-#define FPDT_DUAL_GUID_STRING_EVENT_TYPE 0x1012
-#define FPDT_GUID_QWORD_EVENT_TYPE 0x1013
-#define FPDT_GUID_QWORD_STRING_EVENT_TYPE 0x1014
-
-//
-// EDKII extended Fpdt record structures
-//
-#define FPDT_STRING_EVENT_RECORD_NAME_LENGTH 24
-
-#pragma pack(1)
-//
-// FPDT Boot Performance Guid Event Record Structure
-//
-typedef struct {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
- ///
- /// ProgressID < 0x10 are reserved for core performance entries.
- /// Start measurement point shall have lowered one nibble set to zero and
- /// corresponding end points shall have lowered one nibble set to non-zero value;
- /// keeping other nibbles same as start point.
- ///
- UINT16 ProgressID;
- ///
- /// APIC ID for the processor in the system used as a timestamp clock source.
- /// If only one timestamp clock source is used, this field is Reserved and populated as 0.
- ///
- UINT32 ApicID;
- ///
- /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.
- ///
- UINT64 Timestamp;
- ///
- /// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event.
- ///
- EFI_GUID Guid;
-} FPDT_GUID_EVENT_RECORD;
-
-//
-// FPDT Boot Performance Dynamic String Event Record Structure
-//
-typedef struct {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
- ///
- /// ProgressID < 0x10 are reserved for core performance entries.
- /// Start measurement point shall have lowered one nibble set to zero and
- /// corresponding end points shall have lowered one nibble set to non-zero value;
- /// keeping other nibbles same as start point.
- ///
- UINT16 ProgressID;
- ///
- /// APIC ID for the processor in the system used as a timestamp clock source.
- /// If only one timestamp clock source is used, this field is Reserved and populated as 0.
- ///
- UINT32 ApicID;
- ///
- /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.
- ///
- UINT64 Timestamp;
- ///
- /// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event.
- ///
- EFI_GUID Guid;
- ///
- /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).
- /// It may be module name, function name, or token name.
- ///
- CHAR8 String[0];
-} FPDT_DYNAMIC_STRING_EVENT_RECORD;
-
-//
-// FPDT Boot Performance Dual GUID String Event Record Structure
-//
-typedef struct {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
- ///
- /// ProgressID < 0x10 are reserved for core performance entries.
- /// Start measurement point shall have lowered one nibble set to zero and
- /// corresponding end points shall have lowered one nibble set to non-zero value;
- /// keeping other nibbles same as start point.
- ///
- UINT16 ProgressID;
- ///
- /// APIC ID for the processor in the system used as a timestamp clock source.
- /// If only one timestamp clock source is used, this field is Reserved and populated as 0.
- ///
- UINT32 ApicID;
- ///
- /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.
- ///
- UINT64 Timestamp;
- ///
- /// GUID of the module logging the event.
- ///
- EFI_GUID Guid1;
- ///
- /// Event or Ppi or Protocol GUID for Callback.
- ///
- EFI_GUID Guid2;
- ///
- /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).
- /// It is the function name.
- ///
- CHAR8 String[0];
-} FPDT_DUAL_GUID_STRING_EVENT_RECORD;
-
-//
-// FPDT Boot Performance GUID Qword Event Record Structure
-//
-typedef struct {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
- ///
- /// ProgressID < 0x10 are reserved for core performance entries.
- /// Start measurement point shall have lowered one nibble set to zero and
- /// corresponding end points shall have lowered one nibble set to non-zero value;
- /// keeping other nibbles same as start point.
- ///
- UINT16 ProgressID;
- ///
- /// APIC ID for the processor in the system used as a timestamp clock source.
- /// If only one timestamp clock source is used, this field is Reserved and populated as 0.
- ///
- UINT32 ApicID;
- ///
- /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.
- ///
- UINT64 Timestamp;
- ///
- /// GUID of the module logging the event
- ///
- EFI_GUID Guid;
- ///
- /// Qword of misc data, meaning depends on the ProgressId
- ///
- UINT64 Qword;
-} FPDT_GUID_QWORD_EVENT_RECORD;
-
-//
-// FPDT Boot Performance GUID Qword String Event Record Structure
-//
-typedef struct {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header;
- ///
- /// ProgressID < 0x10 are reserved for core performance entries.
- /// Start measurement point shall have lowered one nibble set to zero and
- /// corresponding end points shall have lowered one nibble set to non-zero value;
- /// keeping other nibbles same as start point.
- ///
- UINT16 ProgressID;
- ///
- /// APIC ID for the processor in the system used as a timestamp clock source.
- /// If only one timestamp clock source is used, this field is Reserved and populated as 0.
- ///
- UINT32 ApicID;
- ///
- /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset.
- ///
- UINT64 Timestamp;
- ///
- /// GUID of the module logging the event
- ///
- EFI_GUID Guid;
- ///
- /// Qword of misc data, meaning depends on the ProgressId
- ///
- UINT64 Qword;
- ///
- /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00).
- ///
- CHAR8 String[0];
-} FPDT_GUID_QWORD_STRING_EVENT_RECORD;
-
-#pragma pack()
-
-//
-// Union of all FPDT records
-//
-typedef union {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER RecordHeader;
- FPDT_GUID_EVENT_RECORD GuidEvent;
- FPDT_DYNAMIC_STRING_EVENT_RECORD DynamicStringEvent;
- FPDT_DUAL_GUID_STRING_EVENT_RECORD DualGuidStringEvent;
- FPDT_GUID_QWORD_EVENT_RECORD GuidQwordEvent;
- FPDT_GUID_QWORD_STRING_EVENT_RECORD GuidQwordStringEvent;
-} FPDT_RECORD;
-
-//
-// Union of all pointers to FPDT records
-//
-typedef union {
- EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *RecordHeader;
- FPDT_GUID_EVENT_RECORD *GuidEvent;
- FPDT_DYNAMIC_STRING_EVENT_RECORD *DynamicStringEvent;
- FPDT_DUAL_GUID_STRING_EVENT_RECORD *DualGuidStringEvent;
- FPDT_GUID_QWORD_EVENT_RECORD *GuidQwordEvent;
- FPDT_GUID_QWORD_STRING_EVENT_RECORD *GuidQwordStringEvent;
-} FPDT_RECORD_PTR;
-
-///
-/// Hob:
-/// GUID - gEdkiiFpdtExtendedFirmwarePerformanceGuid;
-/// Data - FPDT_PEI_EXT_PERF_HEADER + one or more FPDT records
-///
-typedef struct {
- UINT32 SizeOfAllEntries;
- UINT32 LoadImageCount;
- UINT32 HobIsFull;
-} FPDT_PEI_EXT_PERF_HEADER;
-
-extern EFI_GUID gEdkiiFpdtExtendedFirmwarePerformanceGuid;
-
-#endif
+/** @file + This file defines edk2 extended firmware performance records. + These records will be added into ACPI FPDT Firmware Basic Boot Performance Table. + +Copyright (c) 2018, Intel Corporation. All rights reserved.<BR> +SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef __EXTENDED_FIRMWARE_PERFORMANCE_H__ +#define __EXTENDED_FIRMWARE_PERFORMANCE_H__ + +#include <IndustryStandard/Acpi.h> + +// +// Known performance tokens +// +#define SEC_TOK "SEC" ///< SEC Phase +#define DXE_TOK "DXE" ///< DXE Phase +#define PEI_TOK "PEI" ///< PEI Phase +#define BDS_TOK "BDS" ///< BDS Phase +#define DRIVERBINDING_START_TOK "DB:Start:" ///< Driver Binding Start() function call +#define DRIVERBINDING_SUPPORT_TOK "DB:Support:" ///< Driver Binding Support() function call +#define DRIVERBINDING_STOP_TOK "DB:Stop:" ///< Driver Binding Stop() function call +#define LOAD_IMAGE_TOK "LoadImage:" ///< Load a dispatched module +#define START_IMAGE_TOK "StartImage:" ///< Dispatched Modules Entry Point execution +#define PEIM_TOK "PEIM" ///< PEIM Modules Entry Point execution + +// +// Misc defines +// +#define FPDT_RECORD_REVISION_1 (0x01) + +// +// Length field in EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER is a UINT8, thus: +// +#define FPDT_MAX_PERF_RECORD_SIZE (MAX_UINT8) + +// +// FPDT Record Types +// +#define FPDT_GUID_EVENT_TYPE 0x1010 +#define FPDT_DYNAMIC_STRING_EVENT_TYPE 0x1011 +#define FPDT_DUAL_GUID_STRING_EVENT_TYPE 0x1012 +#define FPDT_GUID_QWORD_EVENT_TYPE 0x1013 +#define FPDT_GUID_QWORD_STRING_EVENT_TYPE 0x1014 + +// +// EDKII extended Fpdt record structures +// +#define FPDT_STRING_EVENT_RECORD_NAME_LENGTH 24 + +#pragma pack(1) +// +// FPDT Boot Performance Guid Event Record Structure +// +typedef struct { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header; + /// + /// ProgressID < 0x10 are reserved for core performance entries. + /// Start measurement point shall have lowered one nibble set to zero and + /// corresponding end points shall have lowered one nibble set to non-zero value; + /// keeping other nibbles same as start point. + /// + UINT16 ProgressID; + /// + /// APIC ID for the processor in the system used as a timestamp clock source. + /// If only one timestamp clock source is used, this field is Reserved and populated as 0. + /// + UINT32 ApicID; + /// + /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset. + /// + UINT64 Timestamp; + /// + /// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event. + /// + EFI_GUID Guid; +} FPDT_GUID_EVENT_RECORD; + +// +// FPDT Boot Performance Dynamic String Event Record Structure +// +typedef struct { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header; + /// + /// ProgressID < 0x10 are reserved for core performance entries. + /// Start measurement point shall have lowered one nibble set to zero and + /// corresponding end points shall have lowered one nibble set to non-zero value; + /// keeping other nibbles same as start point. + /// + UINT16 ProgressID; + /// + /// APIC ID for the processor in the system used as a timestamp clock source. + /// If only one timestamp clock source is used, this field is Reserved and populated as 0. + /// + UINT32 ApicID; + /// + /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset. + /// + UINT64 Timestamp; + /// + /// If ProgressID < 0x10, GUID of the referenced module; otherwise, GUID of the module logging the event. + /// + EFI_GUID Guid; + /// + /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00). + /// It may be module name, function name, or token name. + /// + CHAR8 String[0]; +} FPDT_DYNAMIC_STRING_EVENT_RECORD; + +// +// FPDT Boot Performance Dual GUID String Event Record Structure +// +typedef struct { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header; + /// + /// ProgressID < 0x10 are reserved for core performance entries. + /// Start measurement point shall have lowered one nibble set to zero and + /// corresponding end points shall have lowered one nibble set to non-zero value; + /// keeping other nibbles same as start point. + /// + UINT16 ProgressID; + /// + /// APIC ID for the processor in the system used as a timestamp clock source. + /// If only one timestamp clock source is used, this field is Reserved and populated as 0. + /// + UINT32 ApicID; + /// + /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset. + /// + UINT64 Timestamp; + /// + /// GUID of the module logging the event. + /// + EFI_GUID Guid1; + /// + /// Event or Ppi or Protocol GUID for Callback. + /// + EFI_GUID Guid2; + /// + /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00). + /// It is the function name. + /// + CHAR8 String[0]; +} FPDT_DUAL_GUID_STRING_EVENT_RECORD; + +// +// FPDT Boot Performance GUID Qword Event Record Structure +// +typedef struct { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header; + /// + /// ProgressID < 0x10 are reserved for core performance entries. + /// Start measurement point shall have lowered one nibble set to zero and + /// corresponding end points shall have lowered one nibble set to non-zero value; + /// keeping other nibbles same as start point. + /// + UINT16 ProgressID; + /// + /// APIC ID for the processor in the system used as a timestamp clock source. + /// If only one timestamp clock source is used, this field is Reserved and populated as 0. + /// + UINT32 ApicID; + /// + /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset. + /// + UINT64 Timestamp; + /// + /// GUID of the module logging the event + /// + EFI_GUID Guid; + /// + /// Qword of misc data, meaning depends on the ProgressId + /// + UINT64 Qword; +} FPDT_GUID_QWORD_EVENT_RECORD; + +// +// FPDT Boot Performance GUID Qword String Event Record Structure +// +typedef struct { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER Header; + /// + /// ProgressID < 0x10 are reserved for core performance entries. + /// Start measurement point shall have lowered one nibble set to zero and + /// corresponding end points shall have lowered one nibble set to non-zero value; + /// keeping other nibbles same as start point. + /// + UINT16 ProgressID; + /// + /// APIC ID for the processor in the system used as a timestamp clock source. + /// If only one timestamp clock source is used, this field is Reserved and populated as 0. + /// + UINT32 ApicID; + /// + /// 64-bit value (nanosecond) describing elapsed time since the most recent deassertion of processor reset. + /// + UINT64 Timestamp; + /// + /// GUID of the module logging the event + /// + EFI_GUID Guid; + /// + /// Qword of misc data, meaning depends on the ProgressId + /// + UINT64 Qword; + /// + /// ASCII string describing the module. Padding supplied at the end if necessary with null characters (0x00). + /// + CHAR8 String[0]; +} FPDT_GUID_QWORD_STRING_EVENT_RECORD; + +#pragma pack() + +// +// Union of all FPDT records +// +typedef union { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER RecordHeader; + FPDT_GUID_EVENT_RECORD GuidEvent; + FPDT_DYNAMIC_STRING_EVENT_RECORD DynamicStringEvent; + FPDT_DUAL_GUID_STRING_EVENT_RECORD DualGuidStringEvent; + FPDT_GUID_QWORD_EVENT_RECORD GuidQwordEvent; + FPDT_GUID_QWORD_STRING_EVENT_RECORD GuidQwordStringEvent; +} FPDT_RECORD; + +// +// Union of all pointers to FPDT records +// +typedef union { + EFI_ACPI_5_0_FPDT_PERFORMANCE_RECORD_HEADER *RecordHeader; + FPDT_GUID_EVENT_RECORD *GuidEvent; + FPDT_DYNAMIC_STRING_EVENT_RECORD *DynamicStringEvent; + FPDT_DUAL_GUID_STRING_EVENT_RECORD *DualGuidStringEvent; + FPDT_GUID_QWORD_EVENT_RECORD *GuidQwordEvent; + FPDT_GUID_QWORD_STRING_EVENT_RECORD *GuidQwordStringEvent; +} FPDT_RECORD_PTR; + +/// +/// Hob: +/// GUID - gEdkiiFpdtExtendedFirmwarePerformanceGuid; +/// Data - FPDT_PEI_EXT_PERF_HEADER + one or more FPDT records +/// +typedef struct { + UINT32 SizeOfAllEntries; + UINT32 LoadImageCount; + UINT32 HobIsFull; +} FPDT_PEI_EXT_PERF_HEADER; + +extern EFI_GUID gEdkiiFpdtExtendedFirmwarePerformanceGuid; + +#endif |
