Problem
Devices flashed with JetPack 5 are unable to boot past UEFI when booting off NVMe.
Solution
The NVMe should be wiped with dd and then reflashed with the desired JetPack version.
Procedure (NVMe Connected to Host)
- Connect the NVMe to the Linux host machine used to flash the Jetson. This may be done through a M.2 slot on the motherboard or an external USB breakout
- Run
lsblkto determine the block device name of the NVMe. On your host machine, this can be determined by runninglsblkbefore and after connecting the NVMe. The NVMe will be the newly added block device - Wipe the NVMe by running
sudo dd if=/dev/zero of=/dev/<device-file> bs=4M count=3000 status=progresswhere<device-file>is the name of the block device determined in step 2 - Connect the NVMe to the CTI carrier board and reflash with the desired L4T and CTI BSP
Procedure (NVMe Connected to CTI Carrier)
- Connect both the USB OTG port and serial UART to the Linux host machine used to flash the Jetson.
- Boot the carrier into force recovery mode. Ensure the carrier enumerates on the host with
lsusb - Navigate to the
Linux_for_Tegradirectory on your host machine and run./flash.sh --rcm-boot cti/<orin_som>/<cti_carrier>/base nvme0n1p1. You can browse the various flash configurations by exploring theLinux_for_Tegra/ctidirectory. Ensure you omit the.conffrom the configuration file path - After the command in step 3 completes, connect to your CTI carrier via the serial debug
- Once connected over serial you may be prompted through the Jetson L4T setup, please follow the setup instructions. Afterwards you should be able to login over serial
- Once logged in over serial, run
lsblkto determine the block device name of the NVMe - Wipe the NVMe by running
sudo dd if=/dev/zero of=/dev/<device-file> bs=4M count=3000 status=progresswhere<device-file>is the name of the block device determined in step 6 - Power down the carrier and reflash with the desired L4T and CTI BSP