Hardware: Radxa Orion O6, 64GB. Three NVIDIA RTX 3060 (12GB) connected via the x16/x8 slot through a PCIe switch.
OS: Ubuntu 26.04, kernel 7.0.0-22-generic (aarch64), NVIDIA driver 595.71.05, booting via ACPI.
Problem: Only two of the three GPUs initialize. The third (bus c6) fails with BAR0 is 0M @ 0x0 and probe with driver nvidia failed with error -1. All three GPUs were working previously on this same hardware; the problem appeared after a fresh OS install.
Root cause (as far as I can tell): It’s not the NVIDIA driver and not a per-bridge _CRS problem. The PCIe root bridge’s 64-bit prefetchable window is too small to hold three large-BAR cards. From dmesg:
pci 0000:c0:00.0: bridge window [mem 0x1800000000-0x1851ffffff 64bit pref]
That root window is ~1.28GB total, shared by all three GPUs under it. Each RTX 3060 requests a ~256MB prefetchable BAR (Resizable BAR). Two cards fit; the third is refused:
pci 0000:c2:07.0: bridge window [mem size 0x12000000 64bit pref]: can't assign; no space
pci 0000:c6:00.0: BAR 1 [mem size 0x10000000 64bit pref]: can't assign; no space
pci 0000:c6:00.0: BAR 0 [mem size 0x01000000]: can't assign; no space
The DSDT QWordMemory descriptors advertise large per-segment ranges (16GB each), but the programmed root-port window above is only ~1.28GB, which is the actual constraint. pci=realloc=on is already set and cannot help, since it can only redistribute within the existing root window, not enlarge it.
Questions:
-
Is there a BIOS setting to enlarge the PCIe root 64-bit MMIO window (an “Above 4G Decoding” / aperture-size equivalent)? I haven’t found one in the menus.
-
Failing that, is the root window size fixed in the EDK2 platform source, and can it be increased in a firmware rebuild?
-
Is there a way to disable Resizable BAR (in firmware) so each card requests a smaller BAR and three fit in the current window?
-
Since this worked before a reinstall — did a firmware version or default change affect the root MMIO window sizing?
I can provide the full dmesg PCI enumeration log and the decompiled DSDT on request.