[PATCH v2 2/6] cper: add Memory Error Section 2 structures
From: Pierre Gondois
Date: Mon Oct 19 2026 - 16:50:19 EST
Add CPER Memory Error Section 2 definitions to the CPER headers.
Reviewed-by: Jonathan Cameron <jonathan.cameron@xxxxxxxxxxxxxxxx>
Signed-off-by: Pierre Gondois <pierre.gondois@xxxxxxx>
---
include/linux/cper.h | 54 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/include/linux/cper.h b/include/linux/cper.h
index 81cda9874b25..ed355b240685 100644
--- a/include/linux/cper.h
+++ b/include/linux/cper.h
@@ -198,6 +198,10 @@ enum {
#define CPER_SEC_PLATFORM_MEM \
GUID_INIT(0xA5BC1114, 0x6F64, 0x4EDE, 0xB8, 0x63, 0x3E, 0x83, \
0xED, 0x7C, 0x83, 0xB1)
+/* Platform Memory 2 */
+#define CPER_SEC_PLATFORM_MEM2 \
+ GUID_INIT(0x61EC04FC, 0x48E6, 0xD813, 0x25, 0xC9, 0x8D, 0xAA, \
+ 0x44, 0x75, 0x0B, 0x12)
#define CPER_SEC_PCIE \
GUID_INIT(0xD995E954, 0xBBC1, 0x430F, 0xAD, 0x91, 0xB4, 0x4D, \
0xCB, 0x3C, 0x6F, 0x35)
@@ -262,6 +266,30 @@ enum {
#define CPER_MEM_VALID_BANK_ADDRESS BIT_ULL(20)
#define CPER_MEM_VALID_CHIP_ID BIT_ULL(21)
+/* Memory Error Section 2 validation bits, UEFI v2.11 sec N.2.6. */
+#define CPER_MEM2_VALID_ERROR_STATUS BIT_ULL(0)
+#define CPER_MEM2_VALID_PA BIT_ULL(1)
+#define CPER_MEM2_VALID_PA_MASK BIT_ULL(2)
+#define CPER_MEM2_VALID_NODE BIT_ULL(3)
+#define CPER_MEM2_VALID_CARD BIT_ULL(4)
+#define CPER_MEM2_VALID_MODULE BIT_ULL(5)
+#define CPER_MEM2_VALID_BANK BIT_ULL(6)
+#define CPER_MEM2_VALID_DEVICE BIT_ULL(7)
+#define CPER_MEM2_VALID_ROW BIT_ULL(8)
+#define CPER_MEM2_VALID_COLUMN BIT_ULL(9)
+#define CPER_MEM2_VALID_RANK_NUMBER BIT_ULL(10)
+#define CPER_MEM2_VALID_BIT_POSITION BIT_ULL(11)
+#define CPER_MEM2_VALID_CHIP_ID BIT_ULL(12)
+#define CPER_MEM2_VALID_ERROR_TYPE BIT_ULL(13)
+#define CPER_MEM2_VALID_STATUS BIT_ULL(14)
+#define CPER_MEM2_VALID_REQUESTOR_ID BIT_ULL(15)
+#define CPER_MEM2_VALID_RESPONDER_ID BIT_ULL(16)
+#define CPER_MEM2_VALID_TARGET_ID BIT_ULL(17)
+#define CPER_MEM2_VALID_CARD_HANDLE BIT_ULL(18)
+#define CPER_MEM2_VALID_MODULE_HANDLE BIT_ULL(19)
+#define CPER_MEM2_VALID_BANK_GROUP BIT_ULL(20)
+#define CPER_MEM2_VALID_BANK_ADDRESS BIT_ULL(21)
+
#define CPER_MEM_EXT_ROW_MASK 0x3
#define CPER_MEM_EXT_ROW_SHIFT 16
@@ -506,6 +534,32 @@ struct cper_sec_mem_err {
u16 mem_dev_handle; /* "module handle" in UEFI 2.4 */
};
+/* Memory Error Section 2, UEFI v2.11 sec N.2.6 */
+struct cper_sec_mem_err2 {
+ u64 validation_bits;
+ u64 error_status;
+ u64 physical_addr;
+ u64 physical_addr_mask;
+ u16 node;
+ u16 card;
+ u16 module;
+ u16 bank;
+ u32 device;
+ u32 row;
+ u32 column;
+ u32 rank;
+ u32 bit_pos;
+ u8 chip_id;
+ u8 error_type;
+ u8 status;
+ u8 reserved;
+ u64 requestor_id;
+ u64 responder_id;
+ u64 target_id;
+ u32 mem_array_handle; /* "card handle" */
+ u32 mem_dev_handle; /* "module handle" */
+};
+
struct cper_mem_err_compact {
u64 validation_bits;
u16 node;
--
2.43.0