From b689671e79d642d9c36c7aa2732acabbbaaf81c3 Mon Sep 17 00:00:00 2001 From: Maximilian Brune Date: Thu, 11 Dec 2025 23:22:33 +0100 Subject: [PATCH] include/acpi/acpi_apei.h: Add MCE APEI structs Signed-off-by: Maximilian Brune Change-Id: I31527048dd5ac12f05f299e3226d8fbde502f626 Reviewed-on: https://review.coreboot.org/c/coreboot/+/90473 Reviewed-by: Matt DeVillier Tested-by: build bot (Jenkins) --- src/include/acpi/acpi_apei.h | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/include/acpi/acpi_apei.h b/src/include/acpi/acpi_apei.h index 08a65552f2..2be8108d27 100644 --- a/src/include/acpi/acpi_apei.h +++ b/src/include/acpi/acpi_apei.h @@ -102,6 +102,51 @@ struct __packed apei_esd_header { u32 max_sections_per_record; }; +struct __packed apei_ia32_mce_bank { + u8 bank_number; + u8 clear_status_on_initialization; + u8 status_data_format; + u8 reserved; + u32 control_reg_msr_addr; + u64 control_init_data; + u32 status_reg_msr_addr; + u32 address_reg_msr_addr; + u32 misc_reg_msr_addr; +}; +_Static_assert(sizeof(struct apei_ia32_mce_bank) == 28, + "wrong acpi_ia32_mce_bank size"); + +struct __packed apei_ia32_mce { + struct apei_esd_header esd; + u64 global_capability_init_data; + u64 global_control_init_data; + u8 number_of_hardware_banks; + u8 reserved[7]; + struct apei_ia32_mce_bank banks[]; +}; +_Static_assert(sizeof(struct apei_ia32_mce) == 40, + "wrong acpi_ia32_mce size"); + +struct __packed apei_ia32_corrected_mce { + struct apei_esd_header esd; + acpi_hest_hen_t notify; + u8 number_of_hardware_banks; + u8 reserved[3]; + struct apei_ia32_mce_bank banks[]; +}; +_Static_assert(sizeof(struct apei_ia32_corrected_mce) == 48, + "wrong acpi_ia32_corrected_mce size"); + +struct __packed apei_ia32_deferred_mce { + struct apei_esd_header esd; + acpi_hest_hen_t notify; + u8 number_of_hardware_banks; + u8 reserved[3]; + struct apei_ia32_mce_bank banks[]; +}; +_Static_assert(sizeof(struct apei_ia32_deferred_mce) == 48, + "wrong acpi_ia32_deferred_mce size"); + struct __packed apei_ia32_nmi { struct apei_esd_header esd; u32 max_raw_data_length;