We have custom carrier board with a 4 lane PCIe bus between an Xavier Jetson GPU and a Gen3 PCIe switch (PM8573). We have not been successful to meet our goal to have the link train to Gen3. When both the GPU and the PCIe switch are set to a maximum rate of Gen3, the link training reverts back to Gen1. If we set the maximum rate on the PCIe switch to Gen2, the link will train to Gen2. The link is very short and we have ruled out any signal integrity problems.
Questions:
What capabilities can we utilize on the GPU to trouble shoot our problem?
Can we force the GPU to send a compliance pattern at Gen3?
Are there registers other than listed in the TRM that would be useful?
Do you have any documentation you could provide on the Synopsys DesignWare PCIe Dual-Mode Controller?
The link is very short and we have ruled out any signal integrity problems.
The ‘link’ means your PCIe link, and ‘we have ruled out any signal integrity problems’ means that you’ve confirmed the signal integrity with your analyzer?
The PCB PCIe x4 lanes have been simulated to meet the requirements for Gen4. We are unable to connect a MP1900a type instrument due to the x4 lanes are directly from the GPU to the PCIe switch. We have been able to capture the Gen3 eye during link training and as you can see the eye looks good.
I strongly recommend you to check the signal integrity once more especially in the return path from PCIe switch PM8573 to Xavier. And also check the power line of PM8573 if it has enough low impedance.