We have a custom carrier board with a Renesas uPD720202 USB3.0 controller connected to pcie0l0, the device is detected and does function be we get a lot of warnings reported:
I initially thought theses errors were due to the PCIe routing/connections but because they are reported at the Data Link Layer I am less inclined to think that, is that correct?
I think these are because of issues with USB3.0 controller’s ASPM working. Please disable ASPM completely. This can be done either by adding ‘pcie_aspm=off’ to kernel command line or by disabling ASPM config.
ASPM is disabled in our kernel, so I don’t think that can be the cause.
I am going to purchase a PCIe card with a uPD720202 USB controller to try in the Jetson TX1 dev kit, I have tried a card with a uPD720200 controller and see no problems.
I am also going to build another set of out hardware to see if the problem is related to this specific board.
We have verified with this particular USB3.0 controller (without ASPM enabled) and didn’t see any issue. To me, it looks mostly likely the carrier board issue. It is worth trying to use Nvidia’s base board once to confirm.
I too have tested this controller with the TX1 dev kit and see no issues.
I also changed the pcie speed to Gen1 on our hardware (cat /sys/kernel/debug/pcie/apply_link_speed) and see no issues, so it’s probably a layout issue with our hardware.
I was seeing the same problem on our custom board and it turned out to be missing DC blocking caps. If you are going to attach a PCIe device directly to the Jetson TX1/TX2, you need to remember to put 0.1uF DC blocking caps on BOTH the TX and RX signal pairs. We put the ones on the TX pairs coming from the Jetson (as shown in the OEM Product Design Guide) but forgot about the other pair being driven by our PCIe device. It’s easy to forget the the caps are normally placed on the add-in card TX lines but when you put the device directly on the carrier board, it can missed.