freebsd-dev/sys/dev/pci
Alexander Motin 855e49f3b0 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.
2020-07-27 21:19:41 +00:00
..
controller Add PCI Express driver for the ARM Neoverse N1 System Development 2020-02-11 15:12:09 +00:00
fixup_pci.c
hostb_pci.c Remove "All rights reserved" phrase from copyright notes. 2019-12-04 08:03:33 +00:00
ignore_pci.c
isa_pci.c
pci_dw_if.m
pci_dw_mv.c Adapt ARMADA8k PCIe driver to newly imported 5.7 DT. 2020-06-19 17:33:54 +00:00
pci_dw.c Improve DesignWare PCIe driver: 2020-06-19 16:15:06 +00:00
pci_dw.h
pci_host_generic_acpi.c Clean up the pci host generic driver 2020-06-17 19:56:17 +00:00
pci_host_generic_acpi.h Add PCI Express driver for the ARM Neoverse N1 System Development 2020-02-11 15:12:09 +00:00
pci_host_generic_fdt.c Add a driver for bcm2838 PCI express controller 2020-07-06 08:51:55 +00:00
pci_host_generic_fdt.h Add a driver for bcm2838 PCI express controller 2020-07-06 08:51:55 +00:00
pci_host_generic.c Translaate the PCI address when activating a resource 2020-06-22 10:49:50 +00:00
pci_host_generic.h Clean up the pci host generic driver 2020-06-17 19:56:17 +00:00
pci_if.m
pci_iov_if.m
pci_iov_private.h
pci_iov_schema.c
pci_iov.c
pci_iov.h
pci_pci.c pci: loosen PCIe hot-plug requirements 2020-06-10 20:12:45 +00:00
pci_private.h
pci_subr.c
pci_user.c Remove "All rights reserved" phrase from copyright notes. 2019-12-04 08:03:33 +00:00
pci.c Add initial driver for ACPI Platform Error Interfaces. 2020-07-27 21:19:41 +00:00
pcib_if.m
pcib_private.h Abstract the locking for PCIe hotplug. It still uses Giant so there's 2019-12-26 21:00:06 +00:00
pcib_support.c
pcireg.h Add more values for PCI capabilities, PCIe extended capabilities, and subclasses. 2020-02-20 17:08:52 +00:00
pcivar.h Add initial driver for ACPI Platform Error Interfaces. 2020-07-27 21:19:41 +00:00
schema_private.h
vga_pci.c