/** @file\r
ACPI Firmware Performance Data Table (FPDT) implementation specific definitions.\r
\r
- Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>\r
This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
#ifndef _FIRMWARE_PERFORMANCE_GUID_H_\r
#define _FIRMWARE_PERFORMANCE_GUID_H_\r
\r
-#include <IndustryStandard/Acpi50.h>\r
#include <PiPei.h>\r
+#include <IndustryStandard/Acpi.h>\r
#include <Ppi/SecPerformance.h>\r
\r
///\r
/// GUID - gEfiFirmwarePerformanceGuid\r
/// Data - FIRMWARE_SEC_PERFORMANCE (defined in <Ppi/SecPerformance.h>)\r
///\r
+/// SMI:\r
+/// GUID - gEfiFirmwarePerformanceGuid\r
+/// Data - SMM_BOOT_RECORD_COMMUNICATE\r
+///\r
+/// StatusCodeData:\r
+/// Type - gEfiFirmwarePerformanceGuid\r
+/// Data - One or more boot record\r
+///\r
#define EFI_FIRMWARE_PERFORMANCE_GUID \\r
{ \\r
0xc095791a, 0x3001, 0x47b2, {0x80, 0xc9, 0xea, 0xc7, 0x31, 0x9f, 0x2f, 0xa4 } \\r
\r
#define EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME L"FirmwarePerformance"\r
\r
+/// LockBox:\r
+/// GUID - gFirmwarePerformanceS3PointerGuid\r
+/// Data - S3 performance table pointer\r
+///\r
+#define FIRMWARE_PERFORMANCE_S3_POINTER_GUID \\r
+ { \\r
+ 0xdc65adc, 0xa973, 0x4130, { 0x8d, 0xf0, 0x2a, 0xdb, 0xeb, 0x9e, 0x4a, 0x31 } \\r
+ }\r
+\r
#pragma pack(1)\r
\r
///\r
typedef struct {\r
EFI_ACPI_5_0_FPDT_PERFORMANCE_TABLE_HEADER Header; ///< Common ACPI table header.\r
EFI_ACPI_5_0_FPDT_FIRMWARE_BASIC_BOOT_RECORD BasicBoot; ///< Basic Boot Resume performance record.\r
+ //\r
+ // one or more boot performance records.\r
+ //\r
} BOOT_PERFORMANCE_TABLE;\r
\r
///\r
\r
///\r
/// Variable defined for FPDT implementation.\r
-/// This Variable is produced by FPDT DXE module and consumed by FPDT PEIM.\r
+/// This Variable is produced by FPDT DXE module.\r
///\r
typedef struct {\r
EFI_PHYSICAL_ADDRESS BootPerformanceTablePointer; ///< Pointer to Boot Performance Table.\r
\r
#pragma pack()\r
\r
+//\r
+// Log BOOT RECORD from SMM driver on boot time.\r
+//\r
+#define SMM_FPDT_FUNCTION_GET_BOOT_RECORD_SIZE 1\r
+#define SMM_FPDT_FUNCTION_GET_BOOT_RECORD_DATA 2\r
+#define SMM_FPDT_FUNCTION_GET_BOOT_RECORD_DATA_BY_OFFSET 3\r
+\r
+typedef struct {\r
+ UINTN Function;\r
+ EFI_STATUS ReturnStatus;\r
+ UINTN BootRecordSize;\r
+ VOID *BootRecordData;\r
+ UINTN BootRecordOffset;\r
+} SMM_BOOT_RECORD_COMMUNICATE;\r
+\r
extern EFI_GUID gEfiFirmwarePerformanceGuid;\r
+extern EFI_GUID gFirmwarePerformanceS3PointerGuid;\r
\r
#endif\r