]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add initial driver for ACPI Platform Error Interfaces.
authorAlexander Motin <mav@FreeBSD.org>
Mon, 27 Jul 2020 21:19:41 +0000 (21:19 +0000)
committerAlexander Motin <mav@FreeBSD.org>
Mon, 27 Jul 2020 21:19:41 +0000 (21:19 +0000)
commit855e49f3b0adf4f47d2fa2a9cf92c83d9e700705
tree2653c95a6f33d633cadeefa394f0778ff90c0b8f
parent5822a14c4318d3b80aa1d5816ef89339449d0b8b
Add initial driver for ACPI Platform Error Interfaces.

APEI allows platform to report different kinds of errors to OS in several
ways.  We've found that Supermicro X10/X11 motherboards report PCIe errors
appearing on hot-unplug via this interface using NMI.  Without respective
driver it ended up in kernel panic without any additional information.

This driver introduces support for the APEI Generic Hardware Error Source
reporting via NMI, SCI or polling.  It decodes the reported errors and
either pass them to pci(4) for processing or just logs otherwise.  Errors
marked as fatal still end up in kernel panic, but some more informative.

When somebody get to native PCIe AER support implementation both of the
reporting mechanisms should get common error recovery code.  Since in our
case errors happen when the device is already gone, there is nothing to
recover, so the code just clears the error statuses, practically ignoring
the otherwise destructive NMIs in nicer way.

MFC after: 2 weeks
Relnotes: yes
Sponsored by: iXsystems, Inc.
sys/arm64/arm64/machdep.c
sys/arm64/include/acpica_machdep.h
sys/conf/files
sys/dev/acpica/acpi.c
sys/dev/acpica/acpi_apei.c [new file with mode: 0644]
sys/dev/pci/pci.c
sys/dev/pci/pcivar.h
sys/x86/include/acpica_machdep.h
sys/x86/x86/cpu_machdep.c