]> 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 c7892f42e7e0c9199cf5c94c38af6ae28897502c..88e3a5874f18a609c9766af575803f9445a8a6cb 100644 (file)
@@ -1,7 +1,8 @@
 /** @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
@@ -11,7 +12,7 @@
   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
@@ -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
@@ -819,6 +853,84 @@ typedef struct {
   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
@@ -1096,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