i.MXRT1064 Firmware Update over Serial

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MXRT1064 Firmware Update over Serial

1,667 Views
Hat
Contributor II

Hi

I'm trying to build a system of being able to update the firmware on the iMXRT1064 through UART. There is a Single Board Computer (SBC) that is running Linux, and I want that to be able to program/update the i.MXRT without having to manually use SWD/JTAG. 

I'm looking at the Serial Downloader functionality, and it looks like that might be sufficient. I did want to confirm whether the system would work before I make the PCBs. 

Am I right in understanding that the only way to update the firmware on the iMXRT1064 through Serial is by having the BOOT_MODE pins to be set to 0b01?

Procedure:

The full procedure would be, the SBC keeps the iMXRT1064 in reset, asserts the GPIO pins for BOOT_MODE[1:0] to be 0b01, releases the reset. And initiates the serial programming over LPUART1. And after the firmware update is finished, the SBC keeps the iMXRT1064 in reset, asserts the GPIO pins for BOOT_MODE[1:0] to be 0b10 and releases the reset. 

Would I be able to save this program into the internal flash as part of the Serial Downloader procedure?

The RM for the iMXRT1064 recommends that the BOOT_MODE[1:0] pins should only be used during development and to use eFuse (permanent) to change the boot modes. In that case, what is the solution for the iMXRT1064 to be updatable on the field, through the use of the SBC. This is similar to OTA updates but with no wireless transceivers and using a Linux SBC instead.

I'm hoping there's another way of doing this, as I would need to spare two GPIO pins on the SBC just to do this, on top of the reset pins, to be a total of 3 GPIO pins.

 

Note: The iMXRT1064 and the SBC are embedded in an instrument, and only the SBC is accessible to the user, hence why we need to be able to update all internal firmware through the SBC.

Labels (1)
0 Kudos
Reply
2 Replies

1,644 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Hat,

    Do you try to use the blhost and the sdphost to download the app to the RT in the serial download mode with the UART interface?

    If your external Linux SBC module can run the blhost and the sdphost, I think you can use it.

    If you are still not familiar with it, I suggest you refer to our MCUBootUtility tool at first, that tool have the detail download log for your reference with the blhost and the sdphost:

https://github.com/JayHeng/NXP-MCUBootUtility/archive/v2.4.0.zip
the related user manual is:
https://github.com/JayHeng/NXP-MCUBootUtility

  Please try it at first.

   If you still have issues about it, please kindly let know.

Wish it helps you!

Best Regards,

Kerry

0 Kudos
Reply

1,662 Views
mjbcswitzerland
Specialist V

Hi

See https://www.utasker.com/docs/uTasker/uTaskerSerialLoader.pdf

This contains out-of-the-box, industrially proven serial loading to the i.MX RT 1064 (to either internal or external QSPI memory) in KBOOT compatible mode, SREC or iHEX formats (as well as some older loader protocols like AN2295 Developer's Serial Bootloader). It supports application mailbox and other configurable features to avoid requiring pins to controls its operation.

See below for complete turn-key i.MX RT 1064 secure loader concept.

Regards

Mark
[uTasker project developer for Kinetis and i.MX RT]
Contact me by personal message or on the uTasker web site to discuss professional training, solutions to problems or rapid product development requirements

For professionals searching for faster, problem-free Kinetis and i.MX RT 10xx developments the uTasker project holds the key: https://www.utasker.com/iMX/RT1064.html

 

- i.MX RT 1060: https://www.utasker.com/iMX/RT1062.html / https://www.utasker.com/iMX/iMX_RT1062_OEM.html
- Boot loader concept including XiP on-the-fly decryption, clone protection or AES256 protected RAM execution.
-- Boot Loader concept flow chart: https://www.utasker.com/docs/iMX/Loader.pdf and usage reference https://www.utasker.com/docs/iMX/uTaskerLoader_TestDrive.pdf
-- Serial Loader features: https://www.utasker.com/docs/uTasker/uTaskerSerialLoader.pdf
-- Building the loader with MCUXpresso: https://www.utasker.com/docs/iMX/MCUXpresso.pdf (and video guide https://youtu.be/p_eUGo6GypY ) - the guide document explains how to use with any application (eg. SDK) and to enabling its operation with On-The-Fly decryption in 5 minutes
-- Building the loader with IAR: https://www.utasker.com/docs/iMX/IAR.pdf (and video guide https://youtu.be/XPCwVndP99s )
-- Building the loader with VisualStudio and GCC: https://www.utasker.com/docs/iMX/GCC.pdf (and video guide https://youtu.be/0UzLLSXABK8 )
Video Guide to encrypting NXP SDK examples to run from XiP memory using on-the-fly decryption and uploading with the µTasker loader: https://www.youtube.com/watch?v=5iT7KP691ls&list=PLWKlVb_MqDQEOCnsNOJO8gd3jDCwiyKKe&index=10
Video Guide to encrypting NXP SDK examples to run at optimal speed in internal RAM and uploading with the µTasker loader:
https://www.youtube.com/watch?v=fnfLQ-nbscI&list=PLWKlVb_MqDQEOCnsNOJO8gd3jDCwiyKKe&index=11
Video Guide for Embedded Artist OEM Module for i.MX RT 1062 showing precise secured application operation analysis: https://youtu.be/o7hQbOqhJoc

 

0 Kudos
Reply