Orin NX 16GB,Jetpack5.1.2 when enable PCI'e C9(VL805) , the board can't bring up

hi when we enable the PCIe C9
modify the following item:
1、Linux_for_Tegra/p3767.conf.common
ODMDATA=“gbe-uphy-config-8,hsstp-lane-map-3,hsio-uphy-config-0”;
to
ODMDATA=“gbe-uphy-config-9,hsstp-lane-map-3,hsio-uphy-config-0”;
2. modify /hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-p3768-0000-a0-pcie.dtsi

 pcie@141e0000 {
                /*
                 * C7 - M2 Key M, default config, other config possible as
                 * below:
                 * C7 x2 - default
                 * C7 x1 or C9 x1
                 */
                status = "okay";
                phys = <&p2u_gbe_0>;
                phy-names = "p2u-0";
                //phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
                //phy-names = "p2u-0", "p2u-1";
        };

        pcie@140c0000 { /* C9 x1 mode  */
                status = "okay";
                phys = <&p2u_gbe_1>;
                phy-names = "p2u-0";
        };

rebuild and flash the image, dtb.

the board can’t bring up.
the error UART log as follows:
cpu error log VL805 enable can’t bring up.txt (75.7 KB)

when remove the VL805, the system is ok and PCIe devices run ok
nvidia@ubuntu:~$ lspci
0001:00:00.0 PCI bridge: NVIDIA Corporation Device 229e (rev a1)
0001:01:00.0 Network controller: Intel Corporation Wireless 7260 (rev c3)
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
0004:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd Device a809
0007:00:00.0 PCI bridge: NVIDIA Corporation Device 229a (rev a1)
0007:01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
0008:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
0008:01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

why enable the VL805, the system can’t bring up?

the schematic :

Please disable C9 in your UEFI dtb and enable it only in kernel dtb.

any User guide?
do you mean don’t modify Linux_for_Tegra/p3767.conf.common file?
ODMDATA=“gbe-uphy-config-8,hsstp-lane-map-3,hsio-uphy-config-0”;

You still need to modify ODMDATA…

The error here seems to be your “usb to pcie” triggers something in UEFI and that leads to problem. Thus, to check if that is true, we disable that thing in UEFI first and enable it only in kernel.

Check your board config.

DTB_FILE=“tegra234-p3767-0000-p3768-0000-a0.dtb”;
TBCDTB_FILE=“${DTB_FILE}”;

TBCDTB_FILE is dtb for UEFI. DTB_FILE is for kernel dtb.

where is this file “tegra234-p3767-0000-p3768-0000-a0.dtb” come from ?

I have del /bootloader/tegra234-p3767-0000-p3768-0000-a0.dtb, and then flash board, tegra234-p3767-0000-p3768-0000-a0.dtb can be autogeneration

Your Linux_for_Tegra/kernel/dtb.

hi wayne
when I enable the ODMDATA=“gbe-uphy-config-9,hsstp-lane-map-3,hsio-uphy-config-0”, and don’t modify the hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-p3768-0000-a0-pcie.dtsi file.
I can’t flash the devices.
no VL805 device on the PCIe bus. I keep the VL805 in reset status all the time.
here’s the SDK log and ttyTCU UART log:
flash_1-1_0_20240704-143113.log (7.5 KB)
flash orin nx fail log 2407041432.txt (49.9 KB)

ERROR: Exception reason=0 syndrome=0xbe000011
ERROR: **************************************
ERROR: RAS Uncorrectable Error in IOB, base=0xe010000:
ERROR: Status = 0xec000612
ERROR: SERR = Error response from slave: 0x12
ERROR: IERR = CBB Interface Error: 0x6
ERROR: Overflow (there may be more errors) - Uncorrectable
ERROR: MISC0 = 0xc44e0040
ERROR: MISC1 = 0x1d4c860000000000
ERROR: MISC2 = 0x0
ERROR: MISC3 = 0x0
ERROR: ADDR = 0x8000000003f300c0
ERROR: **************************************
ERROR: sdei_dispatch_event returned -1
Unhandled Exception in EL3.

我的意思不是叫你不要改dtsi… 我的意思是你要做一份UEFI dtb是沒有開C9的…
C7的設定一樣要寫對, 如果C7開了沒事就繼續開著

可以正常烧录和启动。VL805设备也是使能的。
step:

  1. Linux_for_Tegra/p3767.conf.common
    ODMDATA=“gbe-uphy-config-9,hsstp-lane-map-3,hsio-uphy-config-0”;
  2. /hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-p3768-0000-a0-pcie.dtsi
pcie@141e0000 {
                /*
                 * C7 - M2 Key M, default config, other config possible as
                 * below:
                 * C7 x2 - default
                 * C7 x1 or C9 x1
                 */
                status = "okay";
                phys = <&p2u_gbe_0>;
                phy-names = "p2u-0";
                //phys = <&p2u_gbe_0>, <&p2u_gbe_1>;
                //phy-names = "p2u-0", "p2u-1";
        };

        pcie@140a0000 {/* C8 - Ethernet */
                status = "okay";

                nvidia,pex-wake-gpios = <&tegra_main_gpio TEGRA234_MAIN_GPIO(L, 2) GPIO_ACTIVE_LOW>;
        };

        /*
        pcie@140c0000 { // C9 x1 mode
                status = "okay";
                phys = <&p2u_gbe_1>;
                phy-names = "p2u-0";
        };
        */
  1. compile and copy new dtb dtbo files to /Linux_for_Tegra/kernel/dtb.
  2. re-flash the devices with SDK tool.
    here’s the uart log and sdk log
    flash_1-1_0_20240704-152646.log (41.4 KB)
    flash orin nx ok log 2407041534.txt (13.6 KB)
    进入系统后lspci,还是已有的pci设备。
1 Like

同事用jetpack6.0 Rev2同样的修改方案,无法烧录
6.0对比5.1.2不一样?我也下载个6.0的源码。

你在jetpack5跟jetapck6的情況大概是不一樣的
請你開新的topic.

可以,到时新开6.0的topic
这个5.1.2是什么问题呢?可以解决嘛?

基本上我們只幫到你可以workaround. 沒有同樣的設備我們沒辦法分析這個問題.
也有可能是UEFI本身的問題, 因為出問題的那一段code並不是我們提供的driver code.

那这个topic就结束了?在5.1.2环境下也要可以识别到这个设备呀?否则我们的工作也无法继续呀?
看到vl805才能继续我们的工作呀
我之前用VL805 PCIe板卡+AGX orin开发板,是可以识别和工作的。

…請問你到底有沒有聽懂上面要做的意思…? 看起來上面說明了老半天結果你只做了一半?

最前面一開始就說明了…

Please disable C9 in your UEFI dtb and enable it only in kernel dtb.

如果現在UEFI沒卡住了, 但C9還是沒出來就請你給出完整的dmesg…

  1. Linux_for_Tegra/p3767.conf.common ODMDATA=“gbe-uphy-config-9,hsstp-lane-map-3,hsio-uphy-config-0”;
    基于Jetpack6.0
    1:只要修改gbe-uphy-config-8 to gbe-uphy-config-9, 无论C9 是否enable,都无法正常刷机
    2:只要不修改gbe-uphy-config-8 to gbe-uphy-config-9,无论C9 是否enable,都可以正常刷机

Hi,

麻煩事情一步一步來. 你在jetpack6的狀況我現在先不管
先弄好你的jeptack5 kernel. 請問可以理解狀況嗎?

wayne
新开了topic,Orin NX 16GB,Jetpack6.0(Rev.2) when enable PCI’e C9(VL805) , the board can’t bring up

所以你jetpack5的kernel能偵測到你的PCIe device了?

没有,如果在5.1.2上可以,说明整个硬件链路是OK的,6.0上也一定可以。
所以新开了个6.0的topic