On Sun, 19 Feb 2023, Lukas Wunner wrote: > > > This is v6 of the change to work around a PCIe link training phenomenon > > > where a pair of devices both capable of operating at a link speed above > > > 2.5GT/s seems unable to negotiate the link speed and continues training > > > indefinitely with the Link Training bit switching on and off repeatedly > > > and the data link layer never reaching the active state. > > > > Ping for: > > <https://lore.kernel.org/linux-pci/alpine.DEB.2.21.2302022022230.45310@xxxxxxxxxxxxxxxxx/>. > > Philipp is witnessing similar issues with a Pericom PI7C9X2G404EL > switch below a Broadcom STB host controller: On some rare occasions, > when booting the system the link trains correctly at 5 GT/s and the > switch is accessible without any issues. But most of the time, > the switch is inaccessible on boot. The Broadcom STB host controller > claims not to support Link Active Reporting, but in reality has a > link status indicator in a custom register. It indicates that the > link is up, the link trains to 2.5 GT/s but the switch is inaccessible. Thank you for chiming in. Note that the U-Boot variant of this workaround referred to by the link in the change description does not rely on Link Active Reporting, but busy-loops polling on Link Training status instead and verifies training remains stable off long enough. We can't do this in Linux of course, but I guess a variant using link status reported in a vendor-specific register could be made. > The switch is the same as yours, only with 4 instead of 3 ports. > Perhaps the issue you're seeing isn't specific to the ASMedia switch, > but is due to an oddity of the Pericom switch, that happens to be > triggered by the Broadcom STB host controller as well? I have seen two reports from people claiming their devices to be absent from `lspci' output, an Intel and a Realtek NIC respectively, when plugged into a slot behing the ASMedia switch, while working just fine in another system. Neither replied to my request for further information, so it's not clear to me if it's the same issue, but it may or may not be limited to Pericom hardware. As I mentioned in previous iterations of the change there is an option card available with the ASM2824 switch onboard and dual M.2 slots behind, which could be used for experimenting. Sold under the StarTech brand as PEX8M2E2 and under the Ableconn brand as PEXM2-130. And M.2 M-Key to PCIe slot adapters are widely available. I just can't be persuaded to buy such an option card, especially as ASMedia have been unhelpful and ignored my enquiry. > I've cooked up a modified version of patch 7 in your series which > performs the link retraining in the pci-brcmstb.c driver before > performing the first access to the switch. Unfortunately it > didn't result in any kind of improvement. Next step is to hook up > a Teledyne T28 analyzer to see what's going on. That would be most helpful, although given your lack of success with my workaround it might be a different issue here after all. Let me know if I could help anyhow. I have a few of these Pericom-based riser card adapters as spares, though I'm short on high-speed (5GT/s+) PCIe slots to try them with. Delock has claimed, back in Jul 2021, I'm the only one to report them the device not to work. Maciej