PCI device becomes unresponsive and can't reset it.
I have a PCI device that is sitting behind a bridge.
Under certain circumstances the PCI device will become inactive. Reading the PCI config space returns all 0xFFFFFFFF.
The bridge appears to still be functional. Reading the status from the bridge I see a Fatal Error due to a Surprise Down event.
I am trying to figure out how to bring the device back online.
I tried toggling the secondary bus reset bit of the Bridge Control Register but it doesn't appear to make any difference. I still see 0xFFFFFFFF in the device config space.
I provided a pci_error_handler but the error_detected() function is not getting called.
Given that these two methods are not helping me out what other choices do I have to either reset the PCI device or hot-plug the device from a kernel driver. Or some other method of bring the device back to life.
Note that I am running Linux 4.8 in dom0 on Xen (if that makes a difference).
Thanks,
Kelly
|