Honestly, we have not tried this flow.
In the case of the kernel, the Linux kernel’s generic power domain framework would un-powergate the PCIe power partition before the PCIe platform driver’s probe is called. Are you un-powergating the PCIe partition in your code? If yes, please do so. You can look around for examples of un-powergating APIs usage by talking to BPMP-FW.
In the above sequence, I expect ‘power ungating’ to happen between steps 4 and 5.
Also, after power ungating the respective partition, please follow the Linux kernel driver’s flow and you should be able to get the PCIe link-up.
I found the pcie programming guidelines chapter in Xavier TRM DP09253002.
How can I get the register information about
such as CLK_RST_CONTROLLER_RST_DEV_UPHY_0[SWR_UPHY_RST] or
CLK_RST_CONTROLLER_RST_DEV_PEX_USB_UPHY_0[SWR_PEX_USB_UPHY_RST] which are refered in the document.