Hello all, I was wondering if it's possible to load and execute a RAM based, non-XIP image from QSPI NOR Flash on the RT1050. I have been looking at the example bd files in the Flashloader_RT1050_1.x archive and associated documentation but I am still unsure or what is required for the non-XIP image. If it is possible, please suggest the necessary bd file or file changes.
I have seen this post but the suggested solution is for non-XIP out of SD.
Thanks.
Of course, it is possible, you can try this GUI tool Releases · JayHeng/NXP-MCUBootUtility · GitHub
Finally, Is it possible to use QSPI Nor Flash interface to contain code, but execute the code in internal SRAM or external SDRAM?
Hi Ryan
yes this is possible, one can look at AN1208 How to Enable Boot from QSPI Flash
sect.4.3. MFG Boot from QSPI Flash with DCD for SDRAM
https://www.nxp.com/docs/en/application-note/AN12108.pdf
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Igor. The document section you recommended (4.3. MFG Boot from QSPI Flash with DCD for SDRAM) does not appear to produce a non-XIP image. It appears to produce an image where code is executing from Flash but data is placed in SRAM. Did you perhaps mean that the boot from SD card section could be adapted from QSPI?
What I was hoping for was an image that would be loaded from QSPI but would execute entirely from RAM.
Please clarify, thanks.
It appears that the SD example is the one to follow. I had had to modify both my IAR linker script (MIMXRT1052xxxxx_ram.icf) and the imx-itcm-unsigned.bd
The linker script requires the following mods:
define symbol m_interrupts_start = 0x00002000;
define symbol m_interrupts_end = 0x000023FF;
define symbol m_text_start = 0x00002400;
define symbol m_text_end = 0x0001FFFF;
And imx-itcm-unsigned.bd requires the following options section:
options {
flags = 0x00;
startAddress = 0x0;
ivtOffset = 0x1000;
initialLoadSize = 0x8000;
}
I then build the boot image with:
elftosb.exe -f imx -V -c imx-itcm-unsigned.bd -o ivt_itcm_my_image.bin my_image.out
elftosb.exe -f kinetis -V -c program_flexspinor_image_qspinor.bd -o boot_image.sb ivt_itcm_my_image_nopadding.bin