Xavier NX Jetpack 5.x boot issue with PCIE devices

Transitioning from Jetpack 4 to 5 has caused my custom carrier board to no long boot. I found that with no NVME drive i can get it to boot with the kernel option “pcie_ports=compat” however, once an NVME drive is installed this work around does not work. On Jetpack 5.0.2 if i select next boot as the SD card the system boots fine, but this only work for that next boot (This same work around did not work on Jetpack 5.1 BIOS). i have tried enabling fast UEFI boot and removing all boot devices with the exception of the SD card but the other devices still auto populate and seem to cause boot issues. It does seem like there is an interaction with the PCIE devices on our carrier, specifically the Diodes/Pericom PI7C9X440SLBFDE however it does seem to be made worse by the new UEFI BIOS and the interaction with the PCIE devices. Is there any way to disable PCIE support in the BIOS or disable NVME booting?

You can try to disable pcie controller in the bootloader device tree.

how do i modify the bootloader device tree?

Found a work around to get the system to boot, but it does not power off currently.

Work around to boot:

  • In device tree for kernel modify the PCIE link speed for the x4 link that we have connected to a Pericom PCIE hub to Gen 2 link speed.
  • Change order of the PCIE devices in the device tree (Unsure why this made an impact but it does). IE move pcie@14160000 to the last pcie device (This is the x1 link) move pcie@141a0000 (the x4 link) to be defined ahead of pcie@14160000. Note on our board we have the x4 go to the PCIE hub and the x1 goes to an NVME drive.
  • This allowed the board to boot without any modification to the kernel boot flags or bootloader, previously with the x1 link marked disabled kernel flags to were required to support booting with just the PCIE hub IC.

Power off issue

  • this looks similar to this issue Xavier NX can not boot after shut down in J5.0.2
  • on shutdown or reboot the system continuously prints WARNING @ [platform/drivers/mailbox/tmo_link_provider/mail_tmo.c]: mail tmo TX timeout
  • I have not tried the work around for this yet.

how do i modify the bootloader device tree?

  1. In your bsp, modify the dtb inside Linux_for_Tegra/kernel/dtb. Disable the pcie controller you need.

  2. Flash the board, after boot up, PCIe device shall not be enumerated and also not crash.

  3. Prepare another dtb which enables the pcie controller, replace the old one on your /boot/dtb on jetson.

  4. Reboot, the device tree in kernel will be different from bootloader now.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.