Failed to flash spe fw - might be timeout in USB write

Hi, I failed to flash spe firmware on my Jetson AGX Orin devkit. below is some context, would you help to take a look? Thanks!

Linux version: nvidia-l4t-core 35.3.1-20230319081403

  1. compile spe fw
    download spe-freertos-bsp.tbz2 and follow instruction in Jetson Sensor Processing Engine (SPE) Developer Guide: Compiling and Flashing, successfully compiled and generate spe.bin in spe-freertos-bsp/rt-aux-cpu-demo-fsp/out/t23x/

-download Jetson_Linux_R35.3.1_aarch64
-rename spe.bin to spe_t234.bin and copy it into Jetson_Linux_R35.3.1_aarch64/Linux_for_Tegra/bootloader to replace the original spe_t234.bin

3.download Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64 and extract to Jetson_Linux_R35.3.1_aarch64/Linux_for_Tegra/rootfs

  1. run apply_binaries.sh in Linux_for_Tegra, and it’s successful

  2. put AGX Orin devkit into recovery mode, successfully detect it by “lsusb” in host machine and find “Bus 001 Device 012: ID 0955:7023 NVIDIA Corp. APX”

  3. run sudo ./flash.sh -k A_spe-fw jetson-agx-orin-devkit mmcblk0p1 in Linux_for_Tegra folder but failed

there is no serial output while flashing, so I attached the host terminal info and serial output while boot(to understand config of AGX Orin devkit) for your reference.
fail_log.zip (27.5 KB)

Hi, sorry I see no relation between your reply and my issue…
I had provided step by step info and log should contain all info you need, I didn’t customize anything, please help to take a look at my attachment and let me know if anything else I can provide to further debug, thanks!

Hello, tsuchieh.chen:
Some debug suggestions.

  1. For the flash command, if you start from beginning (download/extract/apply_binaries.sh/etc.), my suggestion is to do a full flash first.
    sudo ./flash jetson-agx-orin-devkit mmcblk0p1

Once the full flash works, and next time with SPE FW change, you can flash specific partition as desired (with -k)

  1. The device side log looks weird. It does not look like a flash log from RCM. Instead, it’s just a cold boot. You can try to flash the device with original BSP, and make sure the full flash process is good.

br
Chenjian

Thanks for reply, today I follow the procedure again:
1.Download Jetson_Linux_R35.3.1_aarch64 & Tegra_Linux_Sample-Root-Filesystem_R35.3.1_aarch64
follow these cmd
image
then rename compile spe fw to spe_t234.bin and replace the original one
then follow these cmd


*I can confirm Devkit is in recovery mode and connected to my host via type C port next to the 40 pin
then I tried both below cmd and get the same fail result
sudo ./flash.sh jetson-agx-orin-devkit internal
$ sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

here is the fail log on terminal
log.zip (2.4 KB)

*note that when I flash, there is nothing shown on serial output(minicom) and so I can not provide it.
*would you advise do I need to config my device in anyway to make it ready to be flashed? or just putting it into recovery mode is fine? as it’s a device I took from others and it’s already has a working 35.3.1 Linux, it’s just doesn’t has spe with FreeRTOS enabled so I need to reflash it

Thanks!

So far, it seems unrelated to SPE firmware.
You have to check your environment, if basic flash fails.
From your log, it seems that the host detects the device in RCM.
But it fails when trying to communicate with RCM device.

With correct flash, device will output some messages from debug UART, like MB1, Applet, etc., should still run in device side.

Have you ever flashed the device successfully before?
Is the device still bootable?
If device can boot to kernel, can you check the USB device function works well or not?
How about the USB host in PC side?
Is the USB cable good?

You can sort out the issues and do more tests, to figure out whether it’s hardware issue, or software issue, device issue or host issue.

br
Chenjian

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