]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Guid/Cper.h
MdePkg Base.h: Add add comments on __ prefix in enum VERIFY_UINTXX_ENUM_SIZE
[mirror_edk2.git] / MdePkg / Include / Guid / Cper.h
index a5d91ff031cd692d9f3bb2f87ac37fb024239559..88e3a5874f18a609c9766af575803f9445a8a6cb 100644 (file)
@@ -1,7 +1,8 @@
 /** @file\r
   GUIDs and definitions used for Common Platform Error Record.\r
 \r
-  Copyright (c) 2011 - 2012, 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
@@ -11,7 +12,7 @@
   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
   @par Revision Reference:\r
-  GUIDs introduced from UEFI 2.3.1 Specification.\r
+  GUIDs defined in UEFI 2.6 Specification.\r
 \r
 **/\r
 \r
@@ -23,6 +24,8 @@
 #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
@@ -137,6 +140,8 @@ typedef struct {
   ///\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
@@ -165,10 +170,22 @@ typedef struct {
   { \\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
@@ -329,6 +346,23 @@ typedef struct {
   }\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
@@ -765,6 +799,10 @@ typedef enum {
 #define EFI_PLATFORM_MEMORY_ERROR_RANK_NUM_VALID               BIT15\r
 #define EFI_PLATFORM_MEMORY_ERROR_CARD_HANDLE_VALID            BIT16\r
 #define EFI_PLATFORM_MEMORY_ERROR_MODULE_HANDLE_VALID          BIT17\r
+#define EFI_PLATFORM_MEMORY_ERROR_EXTENDED_ROW_BIT_16_17_VALID BIT18\r
+#define EFI_PLATFORM_MEMORY_ERROR_BANK_GROUP_VALID             BIT19\r
+#define EFI_PLATFORM_MEMORY_ERROR_BANK_ADDRESS_VALID           BIT20\r
+#define EFI_PLATFORM_MEMORY_ERROR_CHIP_IDENTIFICATION_VALID    BIT21\r
 ///@}\r
 \r
 ///\r
@@ -809,12 +847,90 @@ typedef struct {
   UINT64                   ResponderId;\r
   UINT64                   TargetId;\r
   UINT8                    ErrorType;\r
-  UINT8                    Resv1;\r
+  UINT8                    Extended;\r
   UINT16                   RankNum;\r
   UINT16                   CardHandle;\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
@@ -1092,7 +1208,10 @@ extern EFI_GUID gEfiEventNotificationTypeDmarGuid;
 \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