I have a custom board based on a Xilix Zynq Ultrascale+ SoC configured as PCIe endpoint (PS-PCIe Gen2x4) and I have to communicate with an Orin IGX (on PCIe slot 0).
The custom board boots regularly when PCIe 12V is stable but on IGX side the O.S. doesn’t enumerate the endpoint, on Zynq side I can see the boot process stuck on “wait for PCIe link up” status.
Rescan of PCI in the IGX has no effect.
If I program the Zynq after the IGX boot (blanking its flash memory) and after a PCI rescan then lspci shows the endpoint but a reboot command will freeze the IGX.
I also mounted the custom board on a PC and in this case the endpoint is enumerated by BIOS only when I force PCIe to “Gen2” instead of “auto” (in the BIOS) but after this setup all works fine, in my experience some chipset needs this setup with Xilinx PCIe.
Has anyone ever managed to connect an IGX with a PS-PCIe of a Zynq ?
Any suggestion about how to investigate this issue will be very appreciated :)
Tnx
Gianmarco
thanks for your reply.
On the IGX side I’m quite new, which of the many logs do you refer?
I have a doubt about max-link-speed, do this option reduce all the pcie nodes performance ? Can I specify this option for only PCIe slot 0 in device tree?
unfortunately the max-link-speed doesn’t solve the problem.
The only way I found to enumarate my custom board is boot up IGX then program the SoC on the board and finally rescan pcie from Ubuntu.
Regarding the serial console, witch 12-pin header do you refer to?
Here: Connector Definitions - NVIDIA Docs there is only one 12-pin (J43 TPM Header ) in wich PIN11 is not connected, did you mean PIN6? Or one of the UARTs on J16/J33/J35 ?
For serial console…
Do you have J65 on your board?
Or could you access BMC console now? Serial console could also be accessed through BMC console with port 2200.
on Zynq side the System have to restart itself (a complete reboot) if linkup doesn’t occur after a timeout, then it can configure its bridge and wait for a first interaction with O.S. running on Tegra (a simple check on a flag set by HOST in EP DDR) and only at this point the Zynq can complete BAR configuration. Any other combination produces UEFI or Kernel to stuck and\or Zynq driver to go in exception condition.