Jetson stuck before boot with black screen when PCI-e device is connected

Hello,

I am trying to use https://www.amazon.com/Ableconn-PEX-MP117-Mini-PCI-Adapter/dp/B07JBCL1CJ with my Jetson Xavier AGX devkit. Around 50% of the time the boot gets stuck with a dim black screen before getting to the boot screen (the one with the big NVIDIA logo).

I am powering the adapter separately from the Jetson USB port. If I power it through the PCI-e then the same issue happens. Additionally it turns off sometimes after getting fully into Linux.

Any ideas? Thank you in advance.

You need to learn how to check the device status by using serial console first.

Apologies, I meant to upload the serial log. Here is sample from when it hangs:
serial_output_stall.txt (11.9 KB)

UEFI got stuck. What kind of pcie device is connected?

Do you have any experience in device tree things?

The PCI-e device is the one I linked in my original post. It is an adapter card that supports power over the lane or through an external USB. Connected to the adapter is this card: PCAN-miniPCIe FD: PEAK-System

I have a small amount of experience with the device tree. Back when I was using the onboard CAN controller I modified the device tree to use PLLAON as the source. So I am familiar with updating the DTB files with the dtc tool and know how to reflash them.

If you don’t need this device to work in UEFI stage, a quick workaround is to disable this PCIe controller in UEFI stage and enable it after kernel is up.

Thank you for the insight, I do not need it in UEFI. Only after booting into the kernel. I’m assuming this option is somewhere in the UEFI settings? I thought I combed through all PCI-e options but I will look again.

Please note that I have a NVME SSD as my boot device so I still need access to that.

Hi,

That is why I asked do you have experience in device tree. This configuration needs to be done in device tree but not UEFI setting.

Which PCIe controller are you using for this device? Or you don’t know what I am asking for here?

Oh sorry I see now, I misunderstood. I do not know what you are asking for here sorry. What lines in the device tree would I have to modify?

Which pcie interface are you using for this pcie device on the NV devkit?

It is plugged in here to my Xavier AGX devkit. It is a x1 lane card.

Hi,

It is PCIe C5 controller.

According to above table, it would be pcie@141a0000. Please disable it in your device tree first and see if it can boot.

We can discuss how to disable it in only UEFI later.

Thank you, I modified the device tree to be status="disabled" for pcie@141a0000 and it still got stuck. To be clear this is the DTB file that is pointed to in /boot/extlinux/extlinux.conf right? For me this is /boot/kernel_tegra194-p2888-0001-p2822-0000.dtb

I do not have to modify the BPMPFW device tree right?

Hi,

Your method is wrong. You have to modify it in your host PC L4T directory kernel/dtb and reflash the whole board.

Anything modified in extlinux.conf won’t affect UEFI.
Device tree in extlinux.conf only affects the kernel.

1 Like

Got it, would that be nvidia_sdk/JetPack_5.1.3_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegra194-p2888-0001-p2822-0000.dts ?

No, as I said check your kernel/dtb directory under Linux_for_Tegra.

Ah I see it: nvidia_sdk/JetPack_5.1.3_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/kernel/dtb/tegra194-p2888-0001-p2822-0000.dts

Okay, I modified the .dtb file and ran sudo ./flash.sh -k kernel-dtb jetson-agx-xavier-devkit nvme0n1p1 to no avail. It hung in the same spot.

The freeze seemed to happen as soon as the power LED lit up on the adapter based on my monitoring of the serial port.

Update, I modified this one in the bootloader directory and that fixes the problem. However now the PCI-e never turns on.

Now please go back to your extlinux.conf and enable the pcie controller again.

Hope you understand what we are doing here.