Amfeltec mPCIe splitter works on TX2, not on AGX

Greetings -

We use three AMP AVC8000nano video capture devices ( https://www.ampltd.com/products/mini-pcie-video-avc8000nano/ ), one on an M.2 E adapter and two plugged into the full-size PCIe slot on the TX2 and AGX dev kits, via an Amfeltec mPCIe splitter ( https://www.amfeltec.com/flexible-minipci-express-2way-splitter/ ). Everything works beautifully on the TX2, but on the AGX the splitter does not appear to initialize properly. Any idea why this would happen? (A single AMP card, not connected via the splitter, works fine on the AGX.) Enclosed, please find kernel logs and output from ‘sudo lspci -vvvxxx’.

Thanks for any clues here!

Best,
Kerrytx2_Nano8000WithSplitter.txt (217.3 KB)
agx_Nano8000WithSplitter.txt (131.3 KB)
agx_Nano8000NoSplitter.txt (144.0 KB)

Could you please share the BSP version (Ex:- R32.5) being used here?

Following log seems to be the culprit.


Sep  7 16:40:42 canis-agx kernel: [    5.584217] pci 0005:00:00.0: BAR 14: assigned [mem 0x1f40000000-0x1f400fffff]
Sep  7 16:40:42 canis-agx kernel: [    5.584224] pci 0005:01:00.0: BAR 0: assigned [mem 0x1f40000000-0x1f40003fff]
Sep  7 16:40:42 canis-agx kernel: [    5.584231] pci 0005:01:00.0: BAR 0: error updating (0x40000000 != 0xffffffff)
Sep  7 16:40:42 canis-agx kernel: [    5.584433] pci 0005:00:00.0: PCI bridge to [bus 01-ff]
Sep  7 16:40:42 canis-agx kernel: [    5.584442] pci 0005:00:00.0:   bridge window [mem 0x1f40000000-0x1f400fffff]
Sep  7 16:40:42 canis-agx kernel: [    5.584457] pci 0005:00:00.0: Max Payload Size set to  256/ 256 (was  256), Max Read Rq  512
Sep  7 16:40:42 canis-agx kernel: [    5.584463] pci 0005:01:00.0: Failed attempting to set the MPS
Sep  7 16:40:42 canis-agx kernel: [    5.584592] pci 0005:01:00.0: Max Payload Size set to  128/ 256 (was  128), Max Read

This could be caused by the PCIe switch’s upstream port (which is there as part of the splitter) not being to update its configuration space registers. If you could tell us the BSP version, may be we can suggest few experiments to try out.

Thank you for your quick and insightful reply!

On the AGX (dev kit), we’d been using out-of-the-box JetPack 4.5.1, so I believe L4T 32.5.

I just tried re-flashing with (out-of-the-box) JetPack 4.6, so L4T 32.6.1, and I see the same result (additional logs enclosed, just in case they matter).

I note that on the TX2 (dev kit) that works with our PCIe devices, we are running JetPack 4.3 (so L4T 32.3.1, I believe) - this is out-of-the box except of course for the requisite ODMDATA mod to enable the PCIe slot. (And of course the installation of the nano8000’s drivers that we perform in all cases.)

We’d rather avoid downgrading to JP 4.3 on the AGX, naturally, but we could probably make that work if we have to.

Look forward to hearing what might make sense to try next. Thanks again for your help!

Best,
Kerry

agx_4_6_kernel_log_with_splitter.txt (107.9 KB)
agx_4_6_lspci_with_splitter.txt (17.3 KB)

Just a ping on this. We’re a little short on time, so absent ideas for experiments in 4.6, I will at some point go ahead and try the downgrade to 4.3 or 4.4…

Thanks! Best,
Kerry

I broke down and tried to downgrade to 4.3, to match the (working) TX2 - but the earliest version SDK Manager seems to offer for the AGX is 4.4, so I went with that. -And, sadly, saw the same result. So now I have more questions:

Why does SDK Manager not offer 4.3 for the AGX?

Does the fact that the PCIe device works on one system but not the other seem like a 4.3 vs. 4.4 (OS) issue, or a TX2 vs. AGX (hardware) issue?

Do you have any ideas for how to address the malfunction in 4.6?

Thanks for any additional ideas you might have!

Best,
Kerry