Flashing failure for jetson orin NX

Hi,

When we tried to flash Jetson Orin NX with BSP version L4TR35.3.1 Flashing failed on the "Step 3: Start the flashing process” step
Its failing at the below point
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Timeout
Cleaning up…

Below is command we have used for flashing
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/t186ref/cfg/flash_t234_qspi.xml” --showlogs --network usb0 jetson-orin-nano-devkit internal

Below attaching the Flash failure log.
Flash_failure_log.txt (251.9 KB)

Please dump the uart log during flash failure.

As indicated by Wayne, we need uart log for further debugging; flashing log is of no use here.
Is it a DevKit or a custom carrier board?

Nvidia OrinNX debug logs during flashing.txt (11.0 KB)

Hi Dave,

It is custom board. Below I am attaching the log.

I don’t think the log you attached really matches to your host side flash log.

Hi Wayne,

Yes, both the above attached logs were captured at different flashing time.

I am attaching the logs(uart log and host log) below which is captured at same time.
host_log.txt (269.2 KB)
uart_log.txt (97.0 KB)

Hi,

It looks like a typical usb device mode does not work on custom board case.

Initrd flash will use rndis connection based on usb device mode of jetson.

Thus, your device tree has to support otg on usb0.

Hi Wayne,

In device tree it is configured as otg only in file source/public/hardware/nvidia/platform/t23x/concord/kernel-dts/cvb/tegra234-p3737-0000-a04.dtsi.
image

Hi,

What you are talking about does not matter…

  1. You don’t need to show a default nvidia device tree to a nvidia engineer. We already knew that.

  2. What you need to care is whether this device tree really matches your hardware or not. I don’t know you or your hardware, so I cannot answer. But based on my experience, most of them do not match…

Hi Wanye,

What do you mean by “nvidia,usb2-companion = <1>” for usb3-0 here.
ports {
usb2-0 {/* Goes to recovery port /
mode = “otg”;
status = “okay”;
vbus-supply = <&p3768_vdd_5v_sys>;
usb-role-switch;
port {
typec_p0: endpoint {
remote-endpoint = <&fusb_p0>;
};
};
};
usb2-1 {/
Goes to hub /
mode = “host”;
vbus-supply = <&p3768_vdd_av10_hub>;
status = “okay”;
};
usb2-2 {/
Goes to M2.E /
mode = “host”;
vbus-supply = <&p3768_vdd_5v_sys>;
status = “okay”;
};
usb3-0 {/
Goes to hub /
nvidia,usb2-companion = <1>;
status = “okay”;
};
usb3-1 {/
Goes to J5 */
nvidia,usb2-companion = <0>;
status = “okay”;
};
};
};

How do I know about which usb2 is companion to which usb3.

You need to ask your hardware engineer who made your carrier board…

The hardware design decides what needs to be written here.

Hi Wayne,

As per the custom board schematic we have the below changes.

USB 2-0 is companion to USB 3-0
USB 2-1 is companion to USB 3-1
USB 2-2 is companion to USB 3-2

When we try to flash with these changes, we are facing flashing issue. We are getting below message.

Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
Timeout
Cleaning up…

The above changes I have made in the file “tegra234-p3509-a02.dtsi” in the path "public/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb/tegra234-p3509-a02.dtsi"as shown below. Is there any other thing I need to change.
ports {
usb2-0 {
mode = “otg”;
status = “okay”;
vbus-supply = <&p3509_vdd_5v_sys>;
#if TEGRA_XUSB_DT_VERSION >= DT_VERSION_3
usb-role-switch;
connector {
compatible = “usb-b-connector”, “gpio-usb-b-connector”;
label = “micro-USB”;
type = “micro”;
vbus-gpio = <&tegra_main_gpio TEGRA234_MAIN_GPIO(Z, 1) GPIO_ACTIVE_LOW>;
};
endif
};
usb2-1 {
mode = “host”;
vbus-supply = <&p3509_vdd_av10_hub>;
status = “okay”;
};
usb2-2 {
mode = “host”;
vbus-supply = <&p3509_vdd_5v_sys>;
status = “okay”;
};
usb3-0 {
nvidia,usb2-companion = <0>;
status = “okay”;
};
usb3-1 {
nvidia,usb2-companion = <1>;
status = “okay”;
};
usb3-2 {
nvidia,usb2-companion = <2>;
status = “okay”;
};

            };
    };

host_log.txt (269.2 KB)
uart_log.txt (97.0 KB)
tegra234-p3509-a02.txt (6.1 KB)

Your log says you are using tegra234-p3767-0001-p3768-0000-a0.dts. This thing totally does not include the device tree you posted …

Hi Wayne,

Below is the attached tegra234-p3768-0000-a0.dts file from the path public/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb which is used. Sorry for the confusion.

tegra234-p3768-0000-a0.txt (8.0 KB)

Are you really the software engineer handling this thing?

I am not sure what you are doing here. You told us you changed file A, and looks like file A is not in use. Then you give me file B but file B seems not have your modification.

Please read the document.
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html?highlight=universal#porting-the-universal-serial-bus

We were trying two things here.

  1. Enabling HDMI 4K
  2. Changing the companion as per the hardware design.

First file “tegra234-p3509-a02.dts” which I shared was used along with enabling HDMI-4k with below configuration in file “jetson-orin-nano-devkit.conf”.
PINMUX_CONFIG=“tegra234-mb1-bct-pinmux-p3767-hdmi-a03.dtsi”;
PMC_CONFIG=“tegra234-mb1-bct-padvoltage-p3767-hdmi-a03.dtsi”;
DTB_FILE=“tegra234-p3767-0000-p3509-a02.dtb”;

Second file “tegra234-p3768-0000-a0.dts” which I shared was used along with configuration file enabling dp with below configuration in file “jetson-orin-nano-devkit.conf”.
DEFAULT_EMC_FUSE=“0”;
PINMUX_CONFIG=“tegra234-mb1-bct-pinmux-p3767-dp-a03.dtsi”;
PMC_CONFIG=“tegra234-mb1-bct-padvoltage-p3767-dp-a03.dtsi”;
DTB_FILE=“tegra234-p3767-0000-p3768-0000-a0.dtb”;

In both case we are facing flashing issue when we change the companion in the respective files. The logs(uart and host log) captured with dp enabled in the config file.

Below are the changes which we have done in tegra234-p3768-0000-a0.dts in the path public/hardware/nvidia/platform/t23x/p3768/kernel-dts/cvb. Below mentioned changes are present in the above attached file “tegra234-p3768-0000-a0”

	ports {
		usb2-0 {/* Goes to recovery port */
			mode = "otg";
			status = "okay";
			vbus-supply = <&p3768_vdd_5v_sys>;
			usb-role-switch;
			port {
				typec_p0: endpoint {
					remote-endpoint = <&fusb_p0>;
				};
			};
		};
		usb2-1 {/* Goes to hub */
			mode = "host";
			vbus-supply = <&p3768_vdd_av10_hub>;
			status = "okay";
		};
		usb2-2 {/* Goes to M2.E */
			mode = "host";
			vbus-supply = <&p3768_vdd_5v_sys>;
			status = "okay";
		};
		usb3-0 {/* Goes to hub */
			nvidia,usb2-companion = <0>;
			status = "okay";
		};
		usb3-1 {/* Goes to J5 */
			nvidia,usb2-companion = <1>;
			status = "okay";
		};
		usb3-2 { 
                            nvidia,usb2-companion = <2>;
                            status = "okay";
                    };

	};
};

Please suggest if any further changes are required as per the hardware design change.

Hi,

You still don’t get the concept.

I don’t know your board.
Your just gave me a device tree which seems just a NVIDIA board configuration.
For example, do you use fusb301 as type C controller here? If not, then why do you leave type C controller configuration inside the device tree?

If you don’t know what I am talking about, that is the problem. Read the document first but not keep asking a stranger like me to fix your device tree.

I totally don’t know your hardware at all. Your info is not sufficient either. The mapping of usb 2 + usb3 is just a small info. You didn’t share any other info to us.

Of course you hit flash issue on both device tree, because none of them matches your board design.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.