Orin Nano doesn't boot after flashing

Hi.

My flashing procedure isn’t working. I am working with a Orin Nano on a custom board with an NVMe/SSD (512GB) on the PCIe bus. The flashing procedure is not completing.

I programming the nano with the following command:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml” --showlogs --network usb0 jetson-orin-nano-devkit external

I have attached the log of the flash procedure. and the debug console output.

debug_console_log.txt (88.6 KB)

flash_log_from_host.txt (193.0 KB)

Is there anything in the logs that may point to the error? Is this the correct command and process to flash the Orin?

Malcolm

Hi malcolm12,

What’s the Jetpack version in use?

From the flash log, it fails at Step 3: Start the flashing process, which is waiting for your board to boot up.
In serial console log, you hit the following error which blocks the boot.

E> I2C: slave not found in slaves.
E> I2C: Could not write 0 bytes to slave: 0x00ae with repeat start true.
E> I2C_DEV: Failed to send register address 0x00000000.
E> I2C_DEV: Could not read 256 registers of size 1 from slave 0xae at 0x0000000.
E> eeprom: Failed to read I2C slave device
C> Task 0x0 failed (err: 0x1f1e050d)
E> Top caller module: I2C_DEV, error module: I2C, reason: 0x0d, aux_info: 0x05
I> Busy Spin

It is trying to read the EEPROM(address: 0xae) on the carrier board.
Do you have the EEPROM on your custom carrier board?
If not, please refer to EEPROM Modifications to update the device tree.

Hi KevinFFF,

Yes that change to the eeprom allowed me to move forward.

I have attached the logs from my last test. For some reason, at the end of the flash cycle I see:

[ 5.0514 ] End sector for APP, expected at: 122159070, actual: 0

The Orin is still not booting.

Malcolm

Aug_8_minicom_log.txt (9.8 KB)

Aug_8_flash_log.txt (154.1 KB)

Okay, it seems you have size related issue during flash.

From original post, it seems you are using a 512 GB NVMe SSD.

Please use flash_l4t_t234_nvme.xml instead as partition layout for external NVMe SSD.
You can simply use the following command to flash.

$ sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit internal

If you still failed to flash at the similar line, please share flash_l4t_t234_nvme.xml for further check.

It looks as though the flash is completing. I see the following printed on the console:

“Please complete system configuration setup on the serial port”

However, I do not see /etc/ttyACM0 enumerated. I shared the flash file.

Aug_19_flash_log.txt (277.7 KB)

Aug_19_1_debug_log.txt (182.7 KB)

flash_l4t_t234_nvme.xml.txt (8.8 KB)

[ 400]: l4t_flash_from_kernel: Successfully flash the external device
[ 400]: l4t_flash_from_kernel: Flashing success
[ 400]: l4t_flash_from_kernel: The device size indicated in the partition layout xml is smaller than the actual size. This utility will try to fix the GPT.
Flash is successful
Reboot device
Cleaning up...
Log is saved to Linux_for_Tegra/initrdlog/flash_1-2_0_20250819-151950.log 

Okay, it seems the flash process is successful.

[   20.146432] Please complete system configuration setup on the serial port provided by Jetson's USB device mode connection. e.g. /dev/ttyACMx where x can 0, 1, 2 etc.

And your board has booted up and waited you to perform system configurations in first boot.

Please simply connect a monitor and keyboard to proceed.

Alternative, you can also refer to Skipping oem-config before flash to pre-configure them and skip this step.

Boot_Capture.txt (90.8 KB)

Hi KevinFFF,

Thanks for your help. The board is booting and I ran l4t_create_default_user.sh. However, I don’t have a login console. When I worked with the NX, the console was on ttyACM0, but when booting the nano there is no ttyACM0. Is there another tty port? I see the login on the debug console outout, which is attached.

Malcolm

I do see the jetson login: prompt in the latest log you shared.

Since you are using the custom carrier board, I’m not clear how you design for the serial console.
For Orin NX/Nano on the devkit, we would use a serial console cable as the following instruction to access serial console.
Jetson Nano & NX Style - Serial Debug Console - JetsonHacks

I see in the jetson-orin-nano-devkit.conf there are DTB file settings at line 63:
elif [ “${board_sku}” = “0003” ] || [ “${board_sku}” = “0005” ]; then
BPFDTB_FILE=“tegra234-bpmp-3767-0003-3509-a02.dtb”;
DTB_FILE=“tegra234-p3767-0003-p3768-0000-a0.dtb”;

and then another at line 95

DTB_FILE=“tegra234-p3767-0000-p3768-0000-a0.dtb”;

Which one should be used the 0003 or the 0000?

Malcolm

This is the default DTB specified in board config.

This is included in update_flash_args_common, which is called during the flashing process to update the correct DTB based on the Board SKU read from your module.

I’d suggest checking the flash log to determine the exact DTB used in your case.

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