]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Implement resets for PCI buses and PCIe bridges.
authorkib <kib@FreeBSD.org>
Fri, 5 Apr 2019 19:25:26 +0000 (19:25 +0000)
committerkib <kib@FreeBSD.org>
Fri, 5 Apr 2019 19:25:26 +0000 (19:25 +0000)
commit1f83f13cf3c8c3922c7a8119f707ad7c992cbec8
tree19fccb14ccfdb87e4ca88d84ec35f0466d3944ae
parent3298fbd5b27eb1ef8c333d03e37b5cb5a78fb25e
Implement resets for PCI buses and PCIe bridges.

For PCI device (i.e. child of a PCI bus), reset tries FLR if
implemented and worked, and falls to power reset otherwise.

For PCIe bus (child of a PCIe bridge or root port), reset
disables PCIe link and then re-trains it, performing what is known as
link-level reset.

Reviewed by: imp (previous version), jhb (previous version)
Sponsored by: Mellanox Technologies
MFC after: 2 weeks
Differential revision: https://reviews.freebsd.org/D19646
sys/amd64/vmm/io/ppt.c
sys/dev/pci/pci.c
sys/dev/pci/pci_pci.c
sys/dev/pci/pcivar.h