How does TX2 PCIE modify the device tree configuration to be a PCIE X4 and a PCIE X1

Hello, we now need to use PCIe x4 and PCIe X1, how do I need to configure the PCIe of TX2 to be a PCIe X4 and a PCIe X1 so that PCIe X4 and PCIe X1 work together?

Hi frank133788,

I don’t get your question. By default, TX2 devkit is using PCIe x4 and x1.

What are you trying to do?

Now on TX2, PCIe X4 can find the device, but PCIe X1 can’t find the device. Is this a configuration problem for PCIe?How do I modify it so that PCIe X4 and PIE X1 work together?

Hi,

Please go to Linux_for_Tegra/

If you are using tx2, then open p2771-0000.conf.common, modify the ODMDATA to

ODMDATA=0x90000

and re-flash your board.

This will make the x1 PCIe works but the usb3.0 (SS#0) will be disabled.

Thank you. I’ll try your solution.

Hi
I tried to use the method you provided to modify ODMDATA=0x90000, but my re-Flash system could not start.Re-flash: Should I use SDKManager or the command line?I need to re-flash on the basis of retaining data from my previous system.Can you provide specific commands and steps?

  1. You need to use the command line tool flash.sh to do this work. It is just in the same path of p2771-0000.conf.common. Please read the quick start guide on dlc to know how to use this tool.

  2. Unfortunately, this would erase the data on your board.

  1. Does the kernel need to be recompiled?

  2. The related device tree does not need to be modified?

  1. Does the kernel need to be recompiled?
  2. The related device tree does not need to be modified?

No, if you are using the nvidia devkit, then these two are not needed to configure.

I modified ODMDATA=0x90000 in p2771-0000.conf.common according to the method you provided.Then use the command sudo. /flash.sh Jetson-tx2i mmcblk0p1 to refresh the tx2i module.However, after refreshing the TX2i module, restart the device using lSPCI command to see that the PCIex1 device is not recognized.

Note: I inserted a wireless module in the M.2 interface of the development board.
If I need to use both PCIEX4 and PCIEX1 interfaces, do I need to modify the related device tree, etc.Please help to provide specific configuration information and steps.

I modified ODMDATA=0x90000 in p2771-0000.conf.common according to the method you provided.Then use the command sudo. /flash.sh Jetson-tx2i mmcblk0p1 to refresh the tx2i module.However, after refreshing the TX2i module, restart the device using lSPCI command to see that the PCIex1 device is not recognized.

Note: I inserted a wireless module in the M.2 interface of the development board.
If I need to use both PCIEX4 and PCIEX1 interfaces, do I need to modify the related device tree, etc.Please help to provide specific configuration information and steps:
[ 6.664521] tegra-pcie 10003000.pcie-controller: 4x1, 1x1 configuration
[ 6.685781] tegra-pcie 10003000.pcie-controller: PCIE: Enable power rails
[ 6.691505] xhci-tegra 3530000.xhci: cannot find firmware…retry after 1 second
[ 6.704823] tegra-pcie 10003000.pcie-controller: probing port 0, using 4 lanes
[ 6.716015] tegra-pcie 10003000.pcie-controller: probing port 2, using 1 lanes
[ 7.004907] cfg80211: World regulatory domain updated:
[ 7.011096] cfg80211: DFS Master region: unset
[ 7.015507] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp), (dfs_cac_time)
[ 7.028352] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[ 7.038730] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm), (N/A)
[ 7.049126] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (N/A, 2000 mBm), (N/A)
[ 7.058974] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (N/A)
[ 7.070071] cfg80211: (5250000 KHz - 5330000 KHz @ 80000 KHz, 160000 KHz AUTO), (N/A, 2000 mBm), (0 s)
[ 7.081222] cfg80211: (5490000 KHz - 5730000 KHz @ 160000 KHz), (N/A, 2000 mBm), (0 s)
[ 7.081253] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (N/A, 2000 mBm), (N/A)
[ 7.081257] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm), (N/A)
[ 7.146286] tegra-pcie 10003000.pcie-controller: link 0 down, retrying

Hi,

Please go to /proc/device-tree/chosen/plugin-manager/odm-data and share the result with us.

The following is the information for /proc/device-tree/chosen/plugin-manager/ odM-data:

nvidia@tegra-ubuntu:~$ ls -l /proc/device-tree/chosen/plugin-manager/odm-data
total 0
-r–r--r-- 1 root root 4 Sep 23 02:08 android-build
-r–r--r-- 1 root root 4 Sep 23 02:08 disable-pmic-wdt
-r–r--r-- 1 root root 4 Sep 23 02:08 disable-sdmmc-hwcq
-r–r--r-- 1 root root 4 Sep 23 02:08 disable-tegra-wdt
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-debug-console
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-denver-wdt
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane1
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane2
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane4
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-sata-on-uphy-lane5
-r–r--r-- 1 root root 4 Sep 23 02:08 enable-xusb-on-uphy-lane0
-r–r--r-- 1 root root 9 Sep 23 02:08 name
-r–r--r-- 1 root root 4 Sep 23 02:08 no-battery
-r–r--r-- 1 root root 4 Sep 23 02:08 normal-flashed

The following is the information for /proc/device-tree/chosen/plugin-manager/ odM-data:

nvidia@tegra-ubuntu:~$ ls -l /proc/device-tree/chosen/plugin-manager/odm-data
total 0
-r–r–r-- 1 root root 4 Sep 23 02:08 android-build
-r–r–r-- 1 root root 4 Sep 23 02:08 disable-pmic-wdt
-r–r–r-- 1 root root 4 Sep 23 02:08 disable-sdmmc-hwcq
-r–r–r-- 1 root root 4 Sep 23 02:08 disable-tegra-wdt
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-debug-console
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-denver-wdt
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane1
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane2
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-pcie-on-uphy-lane4
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-sata-on-uphy-lane5
-r–r–r-- 1 root root 4 Sep 23 02:08 enable-xusb-on-uphy-lane0
-r–r–r-- 1 root root 9 Sep 23 02:08 name
-r–r–r-- 1 root root 4 Sep 23 02:08 no-battery
-r–r–r-- 1 root root 4 Sep 23 02:08 normal-flashed

-r–r–r-- 1 root root 4 Sep 23 02:08 enable-xusb-on-uphy-lane0

Lane 0 is still xusb. Your ODMDATA does not write into it at all.

Where did you modify it? Could you paste a patch to show us?

File directory:64_TX2/Linux_for_Tegra/p2771-0000.conf.common

76 process_board_version()
77 {
78 local board_id="{1}"; 79 local board_version="{2}";
80 local bdv={board_version^^}; 81 local bid={board_id^^};
82 local uboot_build=500;
83 local fromfab="-a00";
84 local tofab="-c03"; # default = C03
85 local pmicfab="-c00"; # default = C00
86 local bpfdtbfab="-c00"; # default = C00
87 local tbcdtbfab="-c03"; # default = C03
88 local kerndtbfab="-c03"; # default = C03
89 #ODMDATA=0x1090000; # default = C0X
90 ODMDATA=0x90000; # default = C0X

Please try to modify it here.

elif [ “${bid}” = “3489” ]; then
123 ODMDATA=0x1090000;
124 tofab="-a00";
125 pmicfab="-a00";

Thank you for your help. The PCIE device has been identified.

Now there is a new problem that needs your help, how to close TX2i’s DDC.Which configuration files need to be modified?

Hi,

What “DDC” is this? If this is not related to PCIe, could you file a new topic?