The PCIe interface on Jetson tx2 has two modes,one is Gen1,and the other is Gen2.And how I know which mode I'm using now?

Hi,I have one problem.The PCIe interface on Jetson tx2 has two modes,one is Gen1,and the other is Gen2.But Jetson tx2 has only one PCIe interface with two modes(Gen1 and Gen2).When I use the PCIe interface,how I know which mode I’m using now?Or if there is some ways to appoint one specific mode I need?

When detecting the presence of a PCIe card a kind of “training” is done. The fastest mode possible is automatically chosen. A rev. 2 (gen. 2) card could throttle back to rev. 1 if signal quality is insufficient (and if the card does not show up at all, then perhaps rev. 1 speeds could not be achieved).

To see what devices are present on the PCIe bus use “lspci”. Note that the output of this command starts with a slot location. An example might be “01:00.0”. “lspci” can use the "-s " to pick a single device to explore if you have multiple devices, e.g., “lspci -s 01:00.0”. To see the full verbose information you need to use “sudo” and “-vvv”. Example:

sudo lspci -s 01:00.0 -vvv

Within the verbose output you can search for “GT/s”. A “LnkCap” entry is a “link capability”. A LnkSta” is the actual speed currently being used.

So,if I extend the PCIe interface to several USB3.0 interfaces,how does the bandwidth allocate about the two modes?

In the case of separate users of a single lane I would think they all go PCIe v2 unless the signal is not capable of this, or the end point is not capable of rev. 2. Individual users of a PCIe lane should be able to set their own rates as v1 or v2 (rev. 1 or rev. 2).

Keep in mind that the PCIe controller is told about the configuration, e.g., four lanes or single lane or dual lane…since I’ve never considered what happens if only one lane can’t maintain speed I would assume all lanes of a multi-lane configuration might revert to the slowest lane speed (although I suppose it might depend on the design of the PCIe card). If you are building your own board and putting a USB root HUB on each lane, then you’d configure them as single lane; if you have a PCIe card, and this is not a custom board, then the PCIe interface would be rev. 2 or rev. 1 for all lanes. Someone from NVIDIA would have to comment if a 4-lane configuration could run rev. 2 or rev. 1 independently on each lane…don’t know…definitely if you have four lanes which the controller has labelled as independent those lanes would always be independent.

FYI, the device tree is used to determine lane configuration. The TRM tells you which lane configurations are possible.

Are you speaking of a custom carrier, or are you speaking of a PCIe add-on card going in the multi-lane (x8 on Xavier, I think x4 on TX2) lane slot of the dev kit?