Zynqmp: Marginal PCIe bringup issue (2 out of 25 boards)
We are currently building up some boards with zynqmp SoC on it, and we use the built-in PCIe RC with a PEX8606 switch, and some PCIe endpoints. 2 of our 25 boards that were built have an issue with the PCIe RC's link coming up (problem is viewable in uboot, and then confirmed when PCIe driver starts in linux boot). On those 2 units which have the issue, it does not happen on every boot. We might have to reboot 5-10 times to see the problem.
In uboot, the issue can be detected by reading the PCIE_STATUS (PCIE_ATTRIB) Register (0xfd480238)
md 0xfd480238: 0x00000003
md 0xfd480238: 0x00000002
If I issue some PCIe resets in uboot before starting the kernel (0xFD1A0100 (CRF_APB)), the link will recover:
Update: Issuing some PCIe resets in uboot before starting the kernel (0xFD1A0100 (CRF_APB)), the link does NOT always recover. However, issuing a uboot 'reset' command, the link always recovers thus far.