Jetson AGX Xavier SPE/Cortex-R5 Firmware Update


I’m interested in using the Sensor Processing Engine(SPE)/ARM Cortex R-5 CPU for running some real-time tasks. From the docs and example source code, it seems like the only way to update/flash the firmware on the R5 is by running the flash script on a Host computer while connected to the Xavier over USB.

Is there any plan to provide a method to update the firmware in production? i.e update using Linux on the Xavier

If not, I would probably have to look into something like openAMP to transfer the image over to the R5 from Linux, while also adding bootloader code to the R5. Does anyone have any experience with this, or any ideas on how to proceed?


Link to software sources:

Per my understanding, Nvidia didn’t provide the update method.
Also the flash can be used on SPE is very limited. And the firmware update method is quite different from MCU like STM32.
So far it’s quite difficult to achieve this without Nvidia’s help.

Yes, I couldn’t find a way to update the firmware using the given sources. There seems to be a way to communicate with the Linux cores(ivc-echo-task.c) which seems promising, at least.

With regards to your point about limited flash… I think you mean the TCM/SRAM (256K). The image(I assume) is actually flashed onto internal eMMC and then loaded into TCM by the bootloader on a cold boot. And if you need more memory, DDR could also be carved out for the R5, so I don’t think memory(volatile/non-volatile) is an issue.

Hello, SanjayD:
In current SDK release, spe firmware is located in boot-partition. You can refer to
that provides another method to update bootloader part, and SPE FW is included.


Hi jachen,

Thanks for the information! So, it seems like I can update the SPE firmware over-the-air after all!

I couldn’t find information on selectively updating just the SPE firmware, but this should work, too.

Thank you!

Hello, Sanjay:
Sure. Just have a try. By default, SPE FW is in boot partition, together with MB1/BCT/MB2.
You can check bootloader/flash.xml after flashing the device and you can have a better understanding of EMMC layout.