Hello, we have developed a custom board based on the T5000 and are doing development using the R38.4.0 system version. We are currently encountering some issues.
We use PCIe C2 for a B-key interface to connect a 5G module, and use C3 and C5 for M-key interfaces to connect NVMe SSDs. Theoretically, these three signal paths should not interfere with each other, but we are observing strange behavior:
When C3 is enabled in the system, and only the C5 NVMe drive and C2 5G module are connected, the system cannot boot from C5; it keeps rebooting before even entering the system.
When C3 is disabled in the system (with UPHY0 Lane6/7 set to UFS mode by default), and only the C5 NVMe drive and C2 5G module are connected, the system can boot normally from C5.
When all three devices are connected, the system cannot boot from C5, but can boot normally from C3.
When only the two NVMe drives are connected (without the 5G module), both C3 and C5 can boot normally.
It seems that connecting the 5G module affects the C5 interface, yet disabling C3 resolves the issue. The only conclusion we can draw is that mutual interference exists among the three devices. We have not been able to identify the root cause.
Could you please look into this and provide any insights or suggestions?
C5 remains unchanged; it is enabled by default on the devkit and also provides the MKey interface.
The 5G driver has been verified to work properly on both the Thor Devkit and the AGX Orin Devkit (using a module adapter card to expose the BKey interface).
By the way, we found an issue when using the Thor Devkit: the system can boot up stably without an Ethernet cable connected to the RJ45 port, but there is a chance that it fails to boot into the system when powered on with an Ethernet cable plugged in. This does not happen every time, which is similar to our current problem. The reason is that the J85 RJ45 port on the devkit uses PCIe C2, the same PCIe lane we are using for the 5G module on our custom board.
The problem right now is that the three devices interfere with each other, but I cannot pinpoint the exact cause.
I haven’t been able to find any useful information in the serial log either, and I’m not sure what other logs you might need.
A similar issue occurred on the Devkit, so you can try to reproduce it as follows.
[ 11.422614]
[ 11.725256] block nvme0n1: No UUID available providing old NGUID
[ 13.077733] iommu smmu3.0x0000008806000000: IOMMU driver was not able to establish FW requested direct mapping.
??INFO: END TASK:MB??
INFO: enter idle task.
INFO: END TASK:MB??
INFO: enter idle task.