From 991467da4d42fd5c66a1bb693d5ecaacd651204a Mon Sep 17 00:00:00 2001 From: Marshall Dawson Date: Tue, 4 Sep 2018 12:32:56 -0600 Subject: arch/x86: Add BERT region support functions Add code for generating the region pointed to in an ACPI Boot Error Record Table. The BERT region must be reported as Reserved to the OSPM, so this code calls out to a system-specific region locator. cbmem is reported as type 16 and is not usable for the BERT region. Events reported via BERT are Generic Error Data, and are constructed as follows (see ACPI and UEFI specs for reference): * Each event begins with a Generic Error Status Block, which may contain zero or more Generic Data Entries * Each Generic Data Entry is identifiable by its Section Type field, and the data structures associated are also in the UEFI spec. * The GUIDs are listed in the Section Type field of the CPER Section Descriptor structure. BERT doesn't use this structure but simply uses its GUIDs. * Data structures used in the Generic Data Entry are named as Error Sections in the UEFI spec. * Some sections may optionally include a variable number of additional structures, e.g. an IA32/X64 processor error can report error information as well as machine contexts. It is worth noting that the Linux kernel (as of v4.4) does not attempt to parse IA32/X64 sections, and opts to hexdump them instead. BUG=b:65446699 TEST=inspect BERT region, and dmesg, on full patch stack. Use test data plus a failing Grunt system. Change-Id: I54826981639b5647a8ca33b8b55ff097681402b9 Signed-off-by: Marshall Dawson Reviewed-on: https://review.coreboot.org/28470 Reviewed-by: Martin Roth Tested-by: build bot (Jenkins) --- src/Kconfig | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/Kconfig') diff --git a/src/Kconfig b/src/Kconfig index bce3e32884..ca75c0b4f0 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -586,6 +586,12 @@ config ACPI_NHLT help Build support for NHLT (non HD Audio) ACPI table generation. +config ACPI_BERT + bool + depends on HAVE_ACPI_TABLES + help + Build an ACPI Boot Error Record Table. + #These Options are here to avoid "undefined" warnings. #The actual selection and help texts are in the following menu. -- cgit v1.2.3