Add support for AMPERE CPERs

Support Ampere CPER entries

Change-Id: I607a89209138fa53914c55c07aba8b7d6f382e5e
Signed-off-by: Dung Cao <dung@os.amperecomputing.com>
diff --git a/edk/Cper.c b/edk/Cper.c
index 218589b..a4d5713 100644
--- a/edk/Cper.c
+++ b/edk/Cper.c
@@ -215,3 +215,9 @@
 					0x11ec,
 					{ 0xbe, 0xa7, 0xcb, 0x3f, 0xdb, 0x95,
 					  0xc7, 0x86 } };
+
+EFI_GUID gEfiAmpereErrorSectionGuid = { 0x2826cc9f,
+					0x448c,
+					0x4c2b,
+					{ 0x86, 0xb6, 0xa9, 0x53, 0x94, 0xb7,
+					  0xef, 0x33 } };
diff --git a/edk/Cper.h b/edk/Cper.h
index 57e2657..a982d18 100644
--- a/edk/Cper.h
+++ b/edk/Cper.h
@@ -299,6 +299,13 @@
 			0xa7, 0x9e, 0x57, 0x5f, 0xdf, 0xaa, 0x84, 0xec         \
 		}                                                              \
 	}
+#define EFI_ERROR_SECTION_AMPERE_SPECIFIC_GUID                                 \
+	{                                                                      \
+		0x2826cc9f, 0x448c, 0x4c2b,                                    \
+		{                                                              \
+			0x86, 0xb6, 0xa9, 0x53, 0x94, 0xb7, 0xef, 0x33         \
+		}                                                              \
+	}
 ///@}
 
 ///
@@ -1414,6 +1421,18 @@
 } EFI_NVIDIA_ERROR_DATA;
 
 extern EFI_GUID gEfiNvidiaErrorSectionGuid;
+
+///
+/// Ampere Error Record Section
+///
+typedef struct {
+	UINT16 TypeId;
+	UINT16 SubtypeId;
+	UINT32 InstanceId;
+} __attribute__((packed)) EFI_AMPERE_ERROR_DATA;
+
+extern EFI_GUID gEfiAmpereErrorSectionGuid;
+
 #pragma pack(pop)
 
 #ifdef __cplusplus