/** @file\r
GUIDs and definitions used for Common Platform Error Record.\r
\r
- Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.<BR>\r
+ Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.<BR>\r
+ (C) Copyright 2016 Hewlett Packard Enterprise Development LP<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
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
@par Revision Reference:\r
- GUIDs defined in UEFI 2.4 Specification.\r
+ GUIDs defined in UEFI 2.6 Specification.\r
\r
**/\r
\r
#define EFI_ERROR_RECORD_SIGNATURE_START SIGNATURE_32('C', 'P', 'E', 'R')\r
#define EFI_ERROR_RECORD_SIGNATURE_END 0xFFFFFFFF\r
\r
+#define EFI_ERROR_RECORD_REVISION 0x0101\r
+\r
///\r
/// Error Severity in Error Record Header and Error Section Descriptor\r
///@{\r
///\r
} EFI_COMMON_ERROR_RECORD_HEADER;\r
\r
+#define EFI_ERROR_SECTION_REVISION 0x0100\r
+\r
///\r
/// Validity Fields in Error Section Descriptor.\r
///\r
{ \\r
0xdc3ea0b0, 0xa144, 0x4797, { 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d } \\r
}\r
+#define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_IA32X64_GUID \\r
+ { \\r
+ 0xdc3ea0b0, 0xa144, 0x4797, { 0xb9, 0x5b, 0x53, 0xfa, 0x24, 0x2b, 0x6e, 0x1d } \\r
+ }\r
+#define EFI_ERROR_SECTION_PROCESSOR_SPECIFIC_ARM_GUID \\r
+ { \\r
+ 0xe19e3d16, 0xbc11, 0x11e4, { 0x9c, 0xaa, 0xc2, 0x05, 0x1d, 0x5d, 0x46, 0xb0 } \\r
+ }\r
#define EFI_ERROR_SECTION_PLATFORM_MEMORY_GUID \\r
{ \\r
0xa5bc1114, 0x6f64, 0x4ede, { 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1 } \\r
}\r
+#define EFI_ERROR_SECTION_PLATFORM_MEMORY2_GUID \\r
+ { \\r
+ 0x61EC04FC, 0x48E6, 0xD813, { 0x25, 0xC9, 0x8D, 0xAA, 0x44, 0x75, 0x0B, 0x12 } \\r
+ }\r
#define EFI_ERROR_SECTION_PCIE_GUID \\r
{ \\r
0xd995e954, 0xbbc1, 0x430f, { 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35 } \\r
}\r
///@}\r
\r
+///\r
+/// The validation bit mask indicates which fields in the IA32/X64 Processor\r
+/// Error Record structure are valid.\r
+///@{\r
+#define EFI_IA32_X64_PROCESSOR_ERROR_APIC_ID_VALID BIT0\r
+#define EFI_IA32_X64_PROCESSOR_ERROR_CPU_ID_INFO_VALID BIT1\r
+///@}\r
+\r
+///\r
+/// IA32/X64 Processor Error Record\r
+///\r
+typedef struct {\r
+ UINT64 ValidFields;\r
+ UINT64 ApicId;\r
+ UINT8 CpuIdInfo[48];\r
+} EFI_IA32_X64_PROCESSOR_ERROR_RECORD;\r
+\r
///\r
/// The validation bit mask indicates which fields in the Cache Check structure\r
/// are valid.\r
UINT16 ModuleHandle;\r
} EFI_PLATFORM_MEMORY_ERROR_DATA;\r
\r
+///\r
+/// Validation bit mask indicates which fields in the memory error record 2 are valid\r
+/// in Memory Error section 2\r
+///@{\r
+#define EFI_PLATFORM_MEMORY2_ERROR_STATUS_VALID BIT0\r
+#define EFI_PLATFORM_MEMORY2_PHY_ADDRESS_VALID BIT1\r
+#define EFI_PLATFORM_MEMORY2_PHY_ADDRESS_MASK_VALID BIT2\r
+#define EFI_PLATFORM_MEMORY2_NODE_VALID BIT3\r
+#define EFI_PLATFORM_MEMORY2_CARD_VALID BIT4\r
+#define EFI_PLATFORM_MEMORY2_MODULE_VALID BIT5\r
+#define EFI_PLATFORM_MEMORY2_BANK_VALID BIT6\r
+#define EFI_PLATFORM_MEMORY2_DEVICE_VALID BIT7\r
+#define EFI_PLATFORM_MEMORY2_ROW_VALID BIT8\r
+#define EFI_PLATFORM_MEMORY2_COLUMN_VALID BIT9\r
+#define EFI_PLATFORM_MEMORY2_RANK_VALID BIT10\r
+#define EFI_PLATFORM_MEMORY2_BIT_POS_VALID BIT11\r
+#define EFI_PLATFORM_MEMORY2_CHIP_ID_VALID BIT12\r
+#define EFI_PLATFORM_MEMORY2_MEMORY_ERROR_TYPE_VALID BIT13\r
+#define EFI_PLATFORM_MEMORY2_STATUS_VALID BIT14\r
+#define EFI_PLATFORM_MEMORY2_REQUESTOR_ID_VALID BIT15\r
+#define EFI_PLATFORM_MEMORY2_RESPONDER_ID_VALID BIT16\r
+#define EFI_PLATFORM_MEMORY2_TARGET_ID_VALID BIT17\r
+#define EFI_PLATFORM_MEMORY2_CARD_HANDLE_VALID BIT18\r
+#define EFI_PLATFORM_MEMORY2_MODULE_HANDLE_VALID BIT19\r
+#define EFI_PLATFORM_MEMORY2_BANK_GROUP_VALID BIT20\r
+#define EFI_PLATFORM_MEMORY2_BANK_ADDRESS_VALID BIT21\r
+///@}\r
+\r
+///\r
+/// Memory Error Type identifies the type of error that occurred in Memory\r
+/// Error section 2\r
+///@{\r
+#define EFI_PLATFORM_MEMORY2_ERROR_UNKNOWN 0x00\r
+#define EFI_PLATFORM_MEMORY2_ERROR_NONE 0x01\r
+#define EFI_PLATFORM_MEMORY2_ERROR_SINGLEBIT_ECC 0x02\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MLTIBIT_ECC 0x03\r
+#define EFI_PLATFORM_MEMORY2_ERROR_SINGLESYMBOL_CHIPKILL 0x04\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MULTISYMBOL_CHIPKILL 0x05\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MASTER_ABORT 0x06\r
+#define EFI_PLATFORM_MEMORY2_ERROR_TARGET_ABORT 0x07\r
+#define EFI_PLATFORM_MEMORY2_ERROR_PARITY 0x08\r
+#define EFI_PLATFORM_MEMORY2_ERROR_WDT 0x09\r
+#define EFI_PLATFORM_MEMORY2_ERROR_INVALID_ADDRESS 0x0A\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MIRROR_BROKEN 0x0B\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MEMORY_SPARING 0x0C\r
+#define EFI_PLATFORM_MEMORY2_ERROR_SCRUB_CORRECTED 0x0D\r
+#define EFI_PLATFORM_MEMORY2_ERROR_SCRUB_UNCORRECTED 0x0E\r
+#define EFI_PLATFORM_MEMORY2_ERROR_MEMORY_MAP_EVENT 0x0F\r
+///@}\r
+\r
+///\r
+/// Memory Error Section 2\r
+///\r
+typedef struct {\r
+ UINT64 ValidFields;\r
+ EFI_GENERIC_ERROR_STATUS ErrorStatus;\r
+ UINT64 PhysicalAddress; // Error physical address\r
+ UINT64 PhysicalAddressMask; // Grnaularity\r
+ UINT16 Node; // Node #\r
+ UINT16 Card;\r
+ UINT16 Module; // Module or Rank#\r
+ UINT16 Bank;\r
+ UINT32 Device;\r
+ UINT32 Row;\r
+ UINT32 Column;\r
+ UINT32 Rank;\r
+ UINT32 BitPosition;\r
+ UINT8 ChipId;\r
+ UINT8 MemErrorType;\r
+ UINT8 Status;\r
+ UINT8 Reserved;\r
+ UINT64 RequestorId;\r
+ UINT64 ResponderId;\r
+ UINT64 TargetId;\r
+ UINT32 CardHandle;\r
+ UINT32 ModuleHandle;\r
+} EFI_PLATFORM_MEMORY2_ERROR_DATA;\r
+\r
///\r
/// Validation bits mask indicates which of the following fields is valid\r
/// in PCI Express Error Record.\r
\r
extern EFI_GUID gEfiProcessorGenericErrorSectionGuid;\r
extern EFI_GUID gEfiProcessorSpecificErrorSectionGuid;\r
+extern EFI_GUID gEfiIa32X64ProcessorErrorSectionGuid;\r
+extern EFI_GUID gEfiArmProcessorErrorSectionGuid ;\r
extern EFI_GUID gEfiPlatformMemoryErrorSectionGuid;\r
+extern EFI_GUID gEfiPlatformMemory2ErrorSectionGuid;\r
extern EFI_GUID gEfiPcieErrorSectionGuid;\r
extern EFI_GUID gEfiFirmwareErrorSectionGuid;\r
extern EFI_GUID gEfiPciBusErrorSectionGuid;\r