Hello,
My company just started the IMXRT development, in the Migration Guide from i.MX RT1060 to i.MX RT1064 I found the following message:
"Do not try the XIP boot by FlexSPI with external XIP flash, but you can still connect the external flash
through the FlexSPI interface, which can be used to save data or other functions except boot."
I have the following questions:
Thanks in advance, best regards,
Alberto.
Hi
The i.MX RT 1064 boots from its internal QSPI flash at address 0x70000000 (serial NOR boot). External QSPI flash boot is not supported.
It can boot from an SD card (eMMC/MMC) - see section 9.6.4 of 1064 user's manual.
Once booted the i.MX RT 1064 can run code also from external QSPI flash.
If your code size (without images) is less that 4MBytes you can locate the code in the internal QSPI flash and then use a file system in external QSPI flash to load your images to, where they an also be accessed from.
The uTasker project includes options to do this and also to install a boot loader in the internal QSPI flash which then allows loading and running complete applications in external QSPI flash (XiP or on-the-fly decrypted XiP). Therefore if you require an immediate and complete solution to keep all code and images in external QSPI flash (including clone and IP protection) this is available. See references below:
- i.MX RT 1064: https://www.utasker.com/iMX/RT1064.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 MCUXpress: 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
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 product development requirements
Hi,
First of all thanks in advance for all the information is much clearer now.
My problem is that I'm using eiq with tensorflow lite with a big model .h file of around 100Mbytes.
How can store this file in the SD card and load the model from there while running in the flash?
Is better if I run everything in the SDcard? If you have any documents feel free to share.
Best redards,
Alberto.
Hi
SD card boot/operation is limited to 32MByte according to the documentation.
If you have a 100MByte file you can still store it on the SD card and read it from your code (via FAT) when needed. If you have 100MByte QSPI flash you can still put your complete code there: QSPI will be faster than SD card.
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 product development requirements