Hello, I’ve been searching through the forums and found several topics related to PCIe compatibility issues with the Nano and the M.2 connection, but I have not been able to pinpoint our issue.
We are using the Jetson Nano development kit with this M.2 key-E to mini-PCIe adapter:
Capture card that DOES work, AVerMedia DarkCrystal HD Capture Mini-PCIe:
Capture card that is NOT working, AVerMedia CM313B:
Here are the different hardware configurations and their results:
Boot with nothing plugged into the M.2 slot, no issues :)
Boot with only the M.2 > PCIe adapter, no issues :)
Boot with DarkCrystal HD plugged into PCIe adapter, no issues :)
Boot with CM313B plugged into PCIe adapter, issues :(
i2c boot errors
no UART debug output
PCIe card is not detected with lspci
HDMI only outputs lowest resolution of 640x480 for a few minutes, turns off, then turns back on at 1280x720 as highest option
Edit:
Attached are the logs for configurations 1 (no pcie card), 3 (darkCrystal), and 4 (cm313b).
Oh, I’ve also tried masking the i2c pins on the cm313b card but it did not help.
Is the log “dmesg-cm313b.log” taken after masking I2C lanes?
This seems to be the issue with I2C lanes interfering.
Can you please confirm if you masked lines B-5 and B-6? and please share the log after masking I2C lanes.
Thank you for your assistance, the “dmesg-cm313b.log” was without the masking of the I2C lines. I think I may have masked the wrong pins when I tried it before.
I tried masking the pins on the capture card itself which I thought were the I2C lines, not the M.2 connector on the adapter. Is there a pinout diagram or table somewhere that tells me which lines are B-5 and B-6?
I just tried again after masking lines 8-9 on the bottom of the M.2 adapter and still get the i2c errors. Is there a way to disable those pins on the M.2 connector in the device tree or am I misunderstanding the problem?
You can find B-5 and B-6 easily on CEM connector (male connector). You can put a tape on them so that they don’t make any electrical connections. Refer: PCI Express - Wikipedia
I’m afraid, it can’t be done through DT as the I2C controller (along with its lanes) needs to be enabled for the system to work. We just want that card’s I2C lanes are disconnected. So, the only way to achieve this is to electrically disconnect them.