Add support for platform memory 1 records.
diff --git a/edk/Cper.c b/edk/Cper.c
index 6f557d8..d11dfdd 100644
--- a/edk/Cper.c
+++ b/edk/Cper.c
@@ -27,6 +27,7 @@
//EFI_GUID gEfiIpfProcessorErrorSectionGuid = { 0xe429faf1, 0x3cb7, 0x11d4, { 0xb, 0xca, 0x7, 0x00, 0x80, 0xc7, 0x3c, 0x88, 0x81 }};
EFI_GUID gEfiArmProcessorErrorSectionGuid = { 0xe19e3d16, 0xbc11, 0x11e4, { 0x9c, 0xaa, 0xc2, 0x05, 0x1d, 0x5d, 0x46, 0xb0 }};
EFI_GUID gEfiPlatformMemoryErrorSectionGuid = { 0xa5bc1114, 0x6f64, 0x4ede, { 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1 }};
+EFI_GUID gEfiPlatformMemoryError2SectionGuid = { 0x61EC04FC, 0x48E6, 0xD813, { 0x25, 0xC9, 0x8D, 0xAA, 0x44, 0x75, 0x0B, 0x12 }};
EFI_GUID gEfiPcieErrorSectionGuid = { 0xd995e954, 0xbbc1, 0x430f, { 0xad, 0x91, 0xb4, 0x4d, 0xcb, 0x3c, 0x6f, 0x35 }};
EFI_GUID gEfiFirmwareErrorSectionGuid = { 0x81212a96, 0x09ed, 0x4996, { 0x94, 0x71, 0x8d, 0x72, 0x9c, 0x8e, 0x69, 0xed }};
EFI_GUID gEfiPciBusErrorSectionGuid = { 0xc5753963, 0x3b84, 0x4095, { 0xbf, 0x78, 0xed, 0xda, 0xd3, 0xf9, 0xc9, 0xdd }};
diff --git a/edk/Cper.h b/edk/Cper.h
index 6c0014c..a73c6eb 100644
--- a/edk/Cper.h
+++ b/edk/Cper.h
@@ -1021,6 +1021,33 @@
} EFI_GENERIC_ERROR_STATUS;
///
+/// CPER Generic Error Codes
+///
+#define CPER_GENERIC_ERROR_TYPES_KEYS (int []){1, 16, 4, 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26}
+#define CPER_GENERIC_ERROR_TYPES_VALUES (const char*[]){"ERR_INTERNAL", "ERR_BUS", "ERR_MEM", "ERR_TLB", \
+ "ERR_CACHE", "ERR_FUNCTION", "ERR_SELFTEST", "ERR_FLOW", "ERR_MAP", "ERR_IMPROPER", "ERR_UNIMPL", \
+ "ERR_LOL", "ERR_RESPONSE", "ERR_PARITY", "ERR_PROTOCOL", "ERR_ERROR", "ERR_TIMEOUT", "ERR_POISONED"}
+#define CPER_GENERIC_ERROR_TYPES_DESCRIPTIONS (const char*[]){\
+ "Error detected internal to the component.", \
+ "Error detected in the bus.", \
+ "Storage error in memory (DRAM).", \
+ "Storage error in TLB.", \
+ "Storage error in cache.", \
+ "Error in one or more functional units.", \
+ "Component failed self test.", \
+ "Overflow or underflow of internal queue.", \
+ "Virtual address not found on IO-TLB or IO-PDIR.", \
+ "Improper access error.", \
+ "Access to a memory address which is not mapped to any component.", \
+ "Loss of Lockstep error.", \
+ "Response not associated with a request.", \
+ "Bus parity error (must also set the A, C, or D bits).", \
+ "Detection of a protocol error.", \
+ "Detection of a PATH_ERROR.", \
+ "Bus operation timeout.", \
+ "A read was issued to data that has been poisoned."}
+
+///
/// Error Type
///
typedef enum {
@@ -1495,6 +1522,7 @@
//extern EFI_GUID gEfiIpfProcessorErrorSectionGuid;
extern EFI_GUID gEfiArmProcessorErrorSectionGuid;
extern EFI_GUID gEfiPlatformMemoryErrorSectionGuid;
+extern EFI_GUID gEfiPlatformMemoryError2SectionGuid;
extern EFI_GUID gEfiPcieErrorSectionGuid;
extern EFI_GUID gEfiFirmwareErrorSectionGuid;
extern EFI_GUID gEfiPciBusErrorSectionGuid;