The setup I’m troubleshooting consists of a Xavier AGX device and a PCX42000 Microchip switch connected to the x16 PCIe socket of the Xavier device as a custom made evaluation board. The Xavier device is flashed with the newest L4T kernel for Xavier AGX and is working fine when the PCX42000 device (PCIe switch) is not powered. However, if the PCX42000 board has it’s power supply supplied via independent PC power supply and the Xavier turned on after the PCX42000 board has it’s power supply active, the Xavier is stuck in the boot process with a black screen. However if the PCX42000 board is plugged into PCIe slot but it’s power not activated before or during the Xavier boot process, the Xavier boots normally.
I’m almost certain this is not an Xavier related issue. The problem seems to be that the Xavier doesn’t control the enabling of power supply of the external PCIe device - like this would regularly be done in a PC if PCIe device is powered by the same power supply as the CPU. Yet, I’m unable to figure out what could be done from my end given the Xavier doesn’t control the PCX42000 board’s power supply.
Note, the PCX42000 board could have it’s power activated after successful boot and would still properly operate. However, it seems the lspci
wouldn’t detect the PCX42000 board. Additionally, any attempts to re-scan the PCIe fabric during kernel runtime would not result in lspci
listing the PCX42000 device. And when operating this device using vendor provided software, it would detect the port that connects to the Xavier device as LTSSM quiet state, meaning there was no link training at initial PCIe fabric scan. Which likely occurs only once the Linux-based device is booted.
Otherwise, if the PCX42000 device would be connected to a PC and it’s power delivered from the same power supply as for the rest of the PC, the lspci
would list this device and the vendor-specific software would detect the port it connects to the Xavier device as LTSSM active (L0) state, meaning link was successfully established.
As mentioned, I’m pretty sure this is not strictly Jetson Xavier device-related issue. But then again, I have no idea how to “sync” the power-up and boot process between Xavier and external PCIe device. Per my understanding, any PCIe device connected to Xavier’s x16 PCIe socket is intended to be powered via Xavier-independent power supply (e.g. another ATX PC power supply for the PCX42000 device exclusively).
Any tips how to manage this situation would be well appreciated!