AGX Orin flash and boot up on pcie C0

Hi Nvidia,

接續以下topic

目前我們針對type-C connect跳線,vbus接到GPIO22,以下是線路圖

DSC-NV003-WT_R100_Type-C.pdf (291.7 KB)

我依照document在usb2-0加入connector

usb2-0 {
        mode = "peripheral";
        usb-role-switch;
        role-switch-default-mode = "peripheral";
        status = "okay";
        connector {
                compatible = "gpio-usb-b-connector";
                label = "micro-USB";
                type = "micro";
                vbus-gpio = GPIO_ACTIVE_LOW>;
        };
};

但目前還無法燒錄

以下是我的device tree

flash.dts.txt (319.6 KB)

*** Please note that this reply is generated by LLM automatically ***

The issue you’re facing is related to flashing the OS on PCIe C0 on the Jetson AGX Orin module. You’ve mentioned that flashing on PCIe C4 works fine, but when you try to flash on C0, the l4tinitrdflash.sh script times out on Step 3.

Firstly, let’s understand the difference between PCIe C0 and C4 on the Jetson AGX Orin module. PCIe C0 is a PCIe x4 slot, while C4 is a PCIe x1 slot. Both slots can be used for storage, but they have different configurations and requirements.

To flash the OS on PCIe C0, you need to ensure that the storage device is properly configured and connected to the C0 slot. The storage type you’re using is a Type-C device, which requires a specific configuration in the device tree.

The flashdtb.txt file you mentioned is used to configure the device tree for the Jetson AGX Orin module. You need to modify this file to enable the PCIe C0 slot and configure it for your storage device.

Here’s a comparison of the device tree configurations for PCIe C0 and C4:

  • PCIe C4:
    • Device tree configuration: pcie-controller@10003000 { ... }
    • Storage device configuration: nvme@1 { ... }
  • PCIe C0:
    • Device tree configuration: pcie-controller@10000000 { ... }
    • Storage device configuration: nvme@0 { ... }

To enable PCIe C0, you need to modify the flashdtb.txt file to include the following configuration:

pcie-controller@10000000 {
    ...
    num-lanes = <4>;
    pci@0 {
        ...
        nvme@0 {
            ...
        }
    }
}

Additionally, you need to ensure that the storage device is properly connected to the C0 slot and configured in the device tree.

After modifying the flashdtb.txt file, you can try flashing the OS on PCIe C0 again. If you still encounter issues, you may need to check the storage device configuration and the device tree configuration for any errors or inconsistencies.

In summary, to flash the OS on PCIe C0 on the Jetson AGX Orin module, you need to:

  1. Modify the flashdtb.txt file to enable PCIe C0 and configure it for your storage device.
  2. Ensure that the storage device is properly connected to the C0 slot.
  3. Check the device tree configuration for any errors or inconsistencies.

By following these steps, you should be able to flash the OS on PCIe C0 successfully.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Is it possible that you make a design of micro usb port first instead of type C? I feel that type C port has lots of problem here.

Hi Wayne,

Our HW team make a micro usb port right now. How could I test it to flash the cpie C0?

The topic will close. Could I need to open a new topic to countie this issue?

All the procedure is same. You need to write a correct device tree to match your ID pin and vbus det pin for your custom board. Try initrd flash command and check if usb device mode is correctly running.

Basically all the concept is already listed in previous post.

Hi Wayne,

We connect the vbus pin to GPIO22.
And we don’t connect the id pin to gpio.
For the Xaver NX Carrier board. The micro usb id pin doesn’t connect to NX. But it can flash the pcie C0.

I set the usb2-0 to mode = “peripheral”;
But still failed.

This is the dtb.
tegra234-p3737-0000+p3701-0004-nv.dts.txt (319.4 KB)

Why do you remove this from your device tree when you need it…?

        connector {
                compatible = "gpio-usb-b-connector";
                label = "micro-USB";
                type = "micro";
                vbus-gpio = < your_GPIO GPIO_ACTIVE_LOW>;

It is there in your first comment but didn’t appear anymore in your actual dts.

Hi Wayne,

I have added the connector. But still failed.
tegra234-p3737-0000+p3701-0004-nv.dts.txt (319.6 KB)

Hi Wayne,

The PCIE C0 can be flashed.

I edit the nvidia,usb2-companion form 0 to 1.

usb3-1 {
                                        nvidia,usb2-companion = <1>;
                                        status = "okay";
                                };

之前你有解釋說
usb3-1沒有跟usb2-0搭配,需要拿掉
但因為我註解掉
nvidia,usb2-companion = <0>;時,dtb會出錯無法燒錄,
因為我們需要用到USB3-1,所以我就一直放著,沒想到這是主因。

不好意思這問題打擾你很久,真的非常感謝你的解釋問題和幫助,謝謝。