Flash to NX devkit error, ended with "Failed flashing t186ref"

Hi, I try to flash BSP to a NX Devkit with the following command on a x86 Ubuntu host:

sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1

The flash process exited with the following error:

[ 8.8611 ] Flashing the device
[ 8.8626 ] tegraparser_v2 --storageinfo storage_info.bin --generategpt --pt flash.xml.bin
[ 8.8639 ] End sector for APP, expected at: 15278046, actual: 30222119
[ 8.8643 ]
Error: Return value 4
Command tegraparser_v2 --storageinfo storage_info.bin --generategpt --pt flash.xml.bin
Failed flashing t186ref.

I am attaching the output from the terminal, flash_output, for your reference.

Please let me know how to fix the problem. Thanks a lot.flash_output (42.9 KB)

hello stuart.xu,

had you refer to Getting Started With Jetson Xavier NX Developer Kit to prepare your microSD card?

Yes. We followed the instruction to created the SD with the default image from Nvidia. This time I try to flash the system with a customized CBoot (cboot_t194.bin) and a customized kernel. I am using BSP r32.4.4 (JetPack 4.4.1) which is installed with sdkmanager.
Thanks.

hello stuart.xu,

please check Flash Script Usage. you may enable -k options for updating specified partition.
for example,
it’s -k cpu-bootloader for cboot partition; and -k kernel for kernel partition.
thanks

For the CBoot, I created the cboot_t194.bin in the bootloader directory. I tried both

sudo ./flash.sh -k cpu-bootloader --image ./bootloader/cboot_t194.bin jetson-xavier-nx-devkit mmcblk0p1
and
sudo ./flash.sh -r -k cpu-bootloader --image ./bootloader/cboot_t194.bin jetson-xavier-nx-devkit mmcblk0p1

It does not work, though I see some new files are created, such as cboot_t194_sigheader.bin.encrypt.

For the kernel Image, I tried

sudo ./flash.sh -k kernel --image ./kernel/Image jetson-xavier-nx-devkit mmcblk0p1
and
sudo ./flash.sh -k kernel --image ./kernel/Image jetson-xavier-nx-devkit mmcblk0p0

They do not work. I also manually copy the Image to /boot on the SD card. It does not work either.
I think the flash.sh -k option does not work.

But for other NX DevKit (we have 4 DevKits), the “sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1” works for flashing the CBoot and the kernel.

Though there is other way to flash CBoot and kernel, in this case, the flash.sh does not work and returned a error. What is the problem?

If you think I missed something, please let me know.
Thanks.

hello stuart.xu,

could you please exclude --image options for flashing a specific partition,
by default, -k options choosing the binary under /bootloader/ for flashing.
thanks

Hi JerryChang, I understand that we live in different time zones. Every message exchange costs the other day. So could you tell me the plan that enables me to collect as nuch information as possible? If “flash -k” succeeded, what should I do next, and if it fails, what to try?
My goal is to get the whole system flash “sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1” work.
I will get the data ready tomorrow when I go back to office.
Thanks.

Are you trying to say this issue only happens to one module/devkit but other boards are fine?

Yes. Only this module is failed for the flash process.
Thanks.

If you don’t change anything (kernel/cboot), will it pass the flash process with pure jetpack software?

I will give a try and get the back to you. BTW, the customized CBoot and kernel Image are flashed to other modules successfully and boot up well.
Thanks.

If even the pure jetpack cannot pass the flash process then

  1. Please check if you are using latest jetpack4.4.1. If you are not, move to jetpack4.4.1 and see if it can flash your module.
    This it to prevent the PCN change mentioned here.
    https://developer.nvidia.com/embedded/downloads#?search=pcn

  2. If even the latest jetpack cannot flash, then it is probably defect module. However, you can still dump the UART log during flash.sh is running.
    https://elinux.org/Jetson/General_debug

UART log should spew log to you when you use command flash.sh, because flash process requires both host and device side to cooperate. You already shared the host side log. What we need to check is the device side log (UART).

I am using the Jetpack4.4.1. But I will re-load the package, finish these two steps and get the results to you.
Thanks.

1 Like

@WayneWWW and @JerryChang,
I got a work around.
For the two DevKits:

DevKit A: NX module A on carrier board A, this is the DevKit with flashing problem.
DevKit B: NX module B on carrier board B, this DeviKit has no problem with flashing.

DevKit A is attached to other development devices, it is hard for me to access its carrier board. So I swapped the two NX modules. This results in two new DevKits:

DevKit A’: NX module B on carrier board A. It boots up with customized CBoot and kernel, which comes with the NX.
DevKit B’: NX module A on carrier board B.

Before proceeding to the two steps advised by @WayneWWW, I wanted to reproduce the problem on DevKit B’. Surprisingly, the flashing process succeeded.

sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1

Now the DevKit B’ is booting up with the customized CBoot and kernel.
So, do you think the carrier board A is defective? Do yo think the device side log is still needed for debug this issue? If so I can do further debug and come back to this thread when the carrier board A is accessible to me.
Thanks for the help.

Hello,

Then it sounds board A has defect. If you have concern, please RMA it along with module A.
I guess the RMA requires a pair.

I think the problem was caused by SD card, Its size maybe is not big enough.
The DevKit B’ was succeeded of flashing with a 128GB SD card. I flashed it again with a 8GB SD card. The pre-created SD image is 6GB. It failed with the same error. I will report to you if I can find more information related to this failure.
Thanks.

1 Like