Has anyone attempted to re-establish a PCIe link to an endpoint after the link dropped? In my case I have a Gen2 PCIe link established to a single endpoint when Linux comes up. I take the endpoint down either by resetting it or performing a PCIe "hot reset". In all cases the PCIe link comes back as a Gen1 link. However, as soon as any traffic is sent over the link (reading the Vendor ID via a config-read, for example) the i.MX6Q hangs.
The LTSSM on the i.MX6Q seems to get to the final "L0" state. I've looked at the link re-establishment using a PCIe protocol analyzer. I don't think the i.MX6Q ever initiates a "speed change" to Gen2 the way it does on the initial bring-up.
Anyone else see this?