Lane mapping for a PCIe 4x1 Expansion board

I am currently using 4 Intel Realsense cameras but I noticed that there is a bottleneck in data throughput over the USB PCIe expansion card. I can confirm that each USB 3.0 has its own dedicated PCIe lane but the max input of all lanes approaches the 5Gb/s limit of USB 3.0. After learning about lane mapping, I have a few questions. From what I understand, the default lane mapping is set to #2 and the PCIe map is configured to 1x4 (So it merges all of the lanes together if I understand correctly?). It seems that the closest to 4x1 is option #3 with PCIe configured to 3x1 lanes, but I am unsure of how to interpret the USB_SS1 and USB_SS2, and what appears to be USB_SS0 being disabled. If I were to set it to option #3, would I still be able to get all 4 USB 3.0 ports on the PCIe expansion card to send data while also continuing to be able to receive data from the existing USB ports on the carrier board? If this isn’t possible with config #3, is there another way to make it so I can still access the existing carrier board ports without issue and map additional PCIe lanes to the expansion board (In short, still be able to do everything I have now, just with extra PCIe lanes going to the expansion board?) The existing ports on the carrier board are only used for Keyboard/Mouse so they wouldn’t require any significant throughput if it makes a difference.

Hi someguy129,

Need to clarify this uphy lane mapping first.

  1. Our devkit only supports the config #1 and #2. Other configs require you to make your own custom carrier board.

  2. config#3 means your board does not have a 4 lane pcie connector anymore. Instead, the x4 pcie is shared by some usb ports like USB_SS#1 and USB_SS#2 and thus you have lower bandwidth for each PCIe port now. But you can have 2 more usb connectors and one more 1 lane pcie port to use.

  3. PCIe#2_0 in config#3 is using same uphy lane as usb_ss#0. Which means only one of them can be enabled.

As for realsense camera, our team once tried to put 2 on xavier (not TX2) through usb port and it already took out almost all bandwidth, so I doubt the feasibility of 4 realsense.

Thank you for the answer Wayne! So I have a second question then. I am able to operate the four cameras on depth only and get pretty good results, but I still would like to get RGB cameras going with it. (The ones in the RealSense weren’t that great anyway) Do the MIPI CSI-2 lines use any of the PCIe bandwidth and will sending data through them affect the bandwidth available to the PCIe card with the USB expansion board connected to it? (I know normally these are all separate normally, but this PCIe lane setup just seems unique with how USB travels through it as well) Thanks!

No, CSI lines are separate from those pcie/usb lane mapping so they should not be the bottleneck.

So if I use config #0, a PCIe lane will be mapped to M.2, correct? Will this affect the other USB ports directly on the carrier board (not the PCIe expansion)? The x4 Lane with my expansion card will also continue to work? If it does affect the other ports, could you please specify which and how they are affected? SATA is also unaffected, correct? Sorry for all the questions, there is like 5 different pieces of documentation that I am trying to understand and I am more in software than electrical, Thanks!


  1. Yes, if you use the first config, the pcie lane would map to the m.2.
    In such case, you don’t have any super speed usb can be used. Even the usb port on board would be only work in usb2.0.

  2. SATA is standalone in all configs so would not be affected.

This table provides 6 combinations for SATA/PCIe and USB3.0 ports.

For example, in config#2, you could have 1 USB3.0 port and a 4 lane pcie port.

config#5, 1 USB3.0 port, x2 1-lane pcie and x1 2-lane pcie.