coreboot-kgpe-d16/src
Marshall Dawson 991467da4d 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 <marshalldawson3rd@gmail.com>
Reviewed-on: https://review.coreboot.org/28470
Reviewed-by: Martin Roth <martinroth@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2018-09-07 14:50:02 +00:00
..
acpi
arch arch/x86: Add BERT region support functions 2018-09-07 14:50:02 +00:00
commonlib cbtable: remove chromeos_acpi from cbtable 2018-08-22 15:33:50 +00:00
console
cpu qemu-q35: Use the TSC for udelay 2018-09-06 16:31:10 +00:00
device nb/intel/sandybridge/raminit: Move fill_smbios17 to ddr3.c 2018-08-21 23:04:08 +00:00
drivers intel/fsp2_0: Add fsp2.1 shared stack feature support 2018-09-06 04:33:00 +00:00
ec mb/lenovo: Support dual graphics for xx20/xx30 ThinkPads 2018-09-05 10:04:20 +00:00
include include/cper.h: Add max of enum 2018-09-07 14:49:51 +00:00
lib lib/gpio.c: Validate num_gpio 2018-08-28 15:36:51 +00:00
mainboard wedge100s: Add TPM support 2018-09-07 10:59:58 +00:00
northbridge nb/intel/x4x/gma.c: fix skipping of native graphics init 2018-09-05 13:08:21 +00:00
security security/tpm: Fix TPM 1.2 state machine issues 2018-08-21 15:45:15 +00:00
soc fsp_broadwell_de: enable spi console 2018-09-07 10:25:52 +00:00
southbridge chromeos/gnvs: remove function and naming cleanup 2018-09-06 10:26:50 +00:00
superio superio/ite/it8721f: Add SuperIO ACPI declarations 2018-08-21 14:45:36 +00:00
vendorcode acpi/gnvs: delay setting chromeos_apci_t.vdat until depthcharge 2018-09-06 10:27:53 +00:00
Kconfig arch/x86: Add BERT region support functions 2018-09-07 14:50:02 +00:00