JetPack 7.2 - Flashing fails for module 699-13701-0005-502, works for module 699-13701-0005-501

Based on Gemini:

NVIDIA implemented a global supply chain adjustment across the Jetson AGX Orin 64GB lineups (notably marked via Product Change Notification PCN210100). As a result, older modules used SanDisk storage (DG4064), while newer batches transitioned to Micron (G1M15M) and Kingston (TY2964) components. [1, 2]

Why the “TY2964” Kingston Chip Causes Issues

1. Image Size Mismatches (Flashing Failures)

The primary issue with mixing these eMMC suppliers is that they do not have identical byte capacities. [1]

  • The SanDisk DG4064 chip is slightly larger.
  • The Kingston TY2964 chip has a slightly smaller exact sector layout. [1]

If your team is attempting to take a raw sector-by-sector system image backup (system.img) created on an older SanDisk board and flash/clone it directly onto a new Kingston board, the flash script will fail or hang because the target partition boundary physically overflows the Kingston storage bounds. [1]

2. Device Tree Timing Errors (I/O Timeouts)

The Linux kernel uses specialized clock signaling parameters inside the Device Tree (mmc@3460000 node) to communicate with the flash storage. Because the Kingston TY2964 has different electrical parameters and bus response behaviors compared to the SanDisk module, unpatched/older NVIDIA JetPack software configurations can throw severe I/O errors: [1]

  • You may see kernel panic strings like mmcblk0: error -110 regardless... or timeout happened in your dmesg history. [1]

How to Fix the Problems

Step 1: Force a Partition Shrink During Restore

If you are running into clone/flash deployment failures via NVIDIA’s CLI, you must explicitly tell the flash system to calculate partition allocations based on the exact drive geometry of the device instead of relying on a hardcoded image size limit. Add the -r flag to reuse the image, but adjust the sizing array: [1]

bash

# Force the system to adapt the base layout down to the connected eMMC target
sudo ./flash.sh -r jetson-agx-orin-devkit internal

Use code with caution.

Step 2: Use File-Based System Backups Instead of Raw Backups

Avoid flashing raw sector bitstreams (system.img) across varying Orin modules. Instead, build your fleet software using NVIDIA’s file-based system management tools, or generate a customized rootfs archive via the nvbackup_tar.sh workflow. This method ignores physical block sector counts and simply extracts files safely onto the underlying filesystem layout. [1]

Step 3: Upgrade Your JetPack BSP Version

NVIDIA introduced necessary timing updates to their Linux for Tegra (L4T) driver configurations to seamlessly accommodate the Kingston TY2964 profile. Ensure you are deploying your system using a stable, up-to-date JetPack BSP package to resolve driver-level timeout bugs. [1]