]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Guid/Cper.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / Guid / Cper.h
index a5d91ff031cd692d9f3bb2f87ac37fb024239559..0cacd30f0196b069a02d0b4574b3f82dae1acdff 100644 (file)
@@ -1,17 +1,12 @@
 /** @file\r
   GUIDs and definitions used for Common Platform Error Record.\r
 \r
-  Copyright (c) 2011 - 2012, 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
-  http://opensource.org/licenses/bsd-license.php\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>\r
+  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
   @par Revision Reference:\r
-  GUIDs introduced from UEFI 2.3.1 Specification.\r
+  GUIDs defined in UEFI 2.7 Specification.\r
 \r
 **/\r
 \r
@@ -23,6 +18,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 +134,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 +164,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
@@ -239,6 +250,7 @@ typedef struct {
 ///@{\r
 #define EFI_GENERIC_ERROR_PROC_TYPE_IA32_X64         0x00\r
 #define EFI_GENERIC_ERROR_PROC_TYPE_IA64             0x01\r
+#define EFI_GENERIC_ERROR_PROC_TYPE_ARM              0x02\r
 ///@}\r
 \r
 ///\r
@@ -248,6 +260,8 @@ typedef struct {
 #define EFI_GENERIC_ERROR_PROC_ISA_IA32              0x00\r
 #define EFI_GENERIC_ERROR_PROC_ISA_IA64              0x01\r
 #define EFI_GENERIC_ERROR_PROC_ISA_X64               0x02\r
+#define EFI_GENERIC_ERROR_PROC_ISA_ARM_A32_T32       0x03\r
+#define EFI_GENERIC_ERROR_PROC_ISA_ARM_A64           0x04\r
 ///@}\r
 \r
 ///\r
@@ -329,6 +343,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 +796,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 +844,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
@@ -972,16 +1085,21 @@ typedef struct {
 \r
 ///\r
 /// Identifies the type of firmware error record\r
-///\r
+///@{\r
 #define EFI_FIRMWARE_ERROR_TYPE_IPF_SAL              0x00\r
+#define EFI_FIRMWARE_ERROR_TYPE_SOC_TYPE1            0x01\r
+#define EFI_FIRMWARE_ERROR_TYPE_SOC_TYPE2            0x02\r
+///@}\r
 \r
 ///\r
 /// Firmware Error Record Section\r
 ///\r
 typedef struct {\r
   UINT8       ErrorType;\r
-  UINT8       Resv1[7];\r
+  UINT8       Revision;\r
+  UINT8       Resv1[6];\r
   UINT64      RecordId;\r
+  EFI_GUID    RecordIdGuid;\r
 } EFI_FIRMWARE_ERROR_DATA;\r
 \r
 ///\r
@@ -1092,7 +1210,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