NVIDIA Orin Nano UEFI Device Limit Issue

Forum Friends:

We have observed a limitation in the number of PCIe devices that the Orin Nano UEFI can handle during boot. Specifically, we are trying to expand our PCIe configuration but are encountering a failure when adding a fourth endpoint device.

  • There may be a UEFI limit on the number of PCIe devices it can discover during the initialization phase.

  • The PCIe discovery loop in UEFI might need to be extended to allow for more endpoints.

  • Is there a known limit on the number of PCIe devices that can be enumerated at boot?

  • Are there configuration settings in the device tree, UEFI, or kernel that could allow us to extend this limit?

  • Has anyone successfully used four or more endpoints on Orin Nano, and if so, were any modifications required?

NVIDIA Orin Nano, r36.3
PCIe Switch - Broadcom PEX88048

Thanks
Fred

There is no “known limitation”.

What kind of error did you see there and what test did you conduct?

Please share us logs but not just some description. Those descriptions may not help much. Everyone can give out their own assumptions but those things are precise if lacking of logs to prove.

Wayne, did you get a chance to look at the log? Thanks, Fred

You didn’t share anything here. Did I miss something?

cernis-boot-w-four-ep.txt (106.1 KB)
Wayne, here is the log. I thought I attached it to one of the earlier posts. Please let me know what you think. Thanks Fred

Wayne, have you had a chance to look at the log? Thanks Fred

We are checking this.

BTW, are those 4 PCIe devices there all the same (if so, what are they?)

Wayne,

The 4 PCIe devices are Orin AGX’s configured as PCIe endpoints. Everything is fine if we just have 1, 2 or 3 AGX’s. But if we have 4 AGX endpoints the UEFI bootloader does not see or know to use the M.2 SDD boot device.

Thanks
Fred

Hi,

Are you talking about you connect 5 Orin AGX as a system there?

One Nano with a Broadcom PEX88080 connected to multiple AGX’s with PEX88032’s. Up to three AGX’s is fine but more causes the UEFI to lose it’s reference to the boot device; nvme0n1p1

If a device is not related to boot process, I would suggest trying to disable that in UEFI stage.

UEFI is mainly for booting only. It does not really have the ability to fully enumerate everything there.

This is BAR resources not enough situation.

Wayne

Is there a way to expand the BAR to cover the added topography of our design?

Thanks
Fred

This needs to be checked internally but I feel it may not be possible.

I would suggest you could try to disable them in UEFI first and boot into kernel first. Maybe even kernel won’t work with this design.