On Thu, 17 Aug 2023, Bjorn Helgaas wrote: > [+cc Maciej, smells similar to a89c82249c37 ("PCI: Work around PCIe > link training failures") ] Quite so indeed. > > [ 0.499660] imx6q-pcie 33800000.pcie: host bridge /soc@0/pcie@33800000 ranges: > > [ 0.500276] clk: Not disabling unused clocks > > [ 0.506960] imx6q-pcie 33800000.pcie: IO 0x001ff80000..0x001ff8ffff -> > > 0x0000000000 > > [ 0.519401] imx6q-pcie 33800000.pcie: MEM 0x0018000000..0x001fefffff > > -> 0x0018000000 > > [ 0.743554] imx6q-pcie 33800000.pcie: iATU: unroll T, 4 ob, 4 ib, > > align 64K, limit 16G > > [ 0.851578] imx6q-pcie 33800000.pcie: PCIe Gen.1 x1 link up > > ^^^ hang at this point until watchdog resets So I think it's important to figure out where exactly in the kernel code the hang happens; this is presumably in host-bridge-specific link bring-up code polling link status, which may have to be updated according to or otherwise make use of a89c82249c37. It may also be something completely different of course. Can you see if you can bump the link up beyond 2.5GT/s by poking at host bridge registers by hand with `setpci' once the link been successfully established at 2.5GT/s? Maciej